アジャイル開発が新しい通常の開発になったので、改善されたサービスの頻繁な提供は、ビジネス プロセス モデルを変えました。問題はなぜですか?まあ、簡単な答えは、顧客の急速に進化するニーズを満たすために、高品質の製品やサービスのタイムリーな提供による顧客の獲得と保持です。次の質問は、品質を損なうのでしょうか?短い答えは「パフォーマンステスト」です。繰り返しますが、ビルドリリースを遅らせることができるのに、なぜテストに投資するのですか?テストはアジャイルの目的全体が崩壊することなく品質のバックボーンであるため、これは大きなトレードオフではありません。これが、よりスマートなテストツールと技術が導入されている理由です。最近、パフォーマンステストのためのカナリアテストが牽引力を得ています。

今日、ユーザーは、ウェブ サイトの読み込み時間と応答時間が8秒を超えて5秒遅れても大きな損失を引き起こす可能性があるアプリケーションで、このようなレベルの多様性を提供されています。 例えば、2013年には、Googleのダウンタイムはわずか5分で、同社はほぼ545,000ドルを失いました。 同様に、2016年1月、ソフトウェアアップデートによりNestサーモスタットが機能しなくなり、多くのユーザーが冷たく放置され、後にソーシャルメディア上でこの問題について暴言を吐きました。 また、アマゾンウェブサービスの停止が企業の毎秒1100ドル相当の売上損失を引き起こしたのは、少し前のことです。

カナリアテスト、その意味、利点、欠点を見てみましょう。

ロードビューによるJMeterロードテスト

セットアップからテスト実行までわずか数分で実行できます。

カナリアテストとは何ですか?

カナリア テスト、カナリア リリース、およびカナリア展開は、リスクを最小限に抑えながら継続的な配信を可能にする手法の代わりに使用される用語です。 このプロセスでは、テストのために選択したユーザーグループにソフトウェア更新プログラムを展開します。 この方法は、過去に炭鉱で有毒ガス検出器として使用されたカナリア鳥からその名前を得ました。 カナリアは人間よりも有毒ガスに敏感であるため、すぐに病気になったり、低暴露レベルで死亡したりします。 これは、鉱山労働者が鉱山を避難させ、遅すぎる前に危険から逃れるのを助けました。

 

ロールアウト戦略

同様に、カナリア テストでは、カナリアは最新のソフトウェア更新プログラムを経験する少数のユーザー グループであり、そのフィードバックは、開発チームが新しいリリースをすべてのユーザーに対して使用できるようにするか、変更を迅速にロールバックするかを決定するのに役立ちます。 Canaryテストは、選択した少数のユーザーだけがルーティングされる別の本番環境で実行される並行変更のアプリケーションであり、大部分は古い実稼働環境に保持されます。 このユーザーの移行は、すべてのユーザーが新しいバージョンに移行するまで続けられます。 これは、イノベーションをサポートし、大量のレベルでの混乱のリスクを軽減する段階的なアプローチです。

 

ロールバック戦略

新しいバージョンが非常に誤りであることが判明し、運用環境の変更を元に戻す代わりに、ユーザー エクスペリエンスに大きな脅威を与える場合。ユーザーは安定した古いバージョンにリダイレクトされます。 一方、開発チームはバグ修正に努めています。

 

選択したユーザーは誰ですか?

次の質問は、ソフトウェアの更新の影響を受けるユーザーは誰かということです。 カナリア ユーザーを決定する方法はいくつかあります。

  • 社内またはリモートで分散したテスト チームである可能性があります。
  • 地理的に分散したユーザーの場合は、特定の地域から
  • 複数のブランドの場合、最初に単一のブランド

 

引用できるカナリアテストの最良のアプリケーションはFacebookです。 Facebookは「複数のカナリア」戦略で動作します。 すべての機能切り替えを有効にして問題を早期に検出した場合は、内部の従業員だけが最初に新しい変更に公開されます。

 

カナリアテストのメリットは何ですか?

他に何か比較するものがない限り、何かの利点を測定することはできません。 したがって、カナリアテストは、A / Bテストや青緑色のテストと混同されることがよくあります。 しかし、それは両方の世界の中で最高です。 その理由を見てみましょう。

 

A/B テスト

実装により、A/B テストはカナリア テストと似ています。ユーザーの 50% には、新しい機能 “B” を備えたアップグレード版のアプリケーションが提供されます。残りの 50% のユーザーは、ベースライン機能 「A」を引き続き使用しています。次に、機能リリースの結果を監視して、期待に反して結果を観察します。ただし、A/B の焦点は、機能が顧客にとってどれほど役立つかを確認することです。カナリアテストはリスク軽減のために実施されています。

 

ブルーグリーン展開

Blue-Green 展開は、エンド ユーザーのダウンタイムと中断を排除することに重点を置いて行われます。 変更は、テストが完了すると、すべてのユーザーが古い実稼働環境から移行されるアイドル状態の運用環境で行われます。 ただし、カナリア テストでは、影響を受けたユーザーの量は最初は最小限に抑えられます。

カナリア テストは、A/B テストと青緑色の展開の両方の長所であると結論付けることができます。 カナリア展開アプローチの利点は、以下の項目にまで記載できます。

  • イノベーションを支援し、アジャイル開発を促進し、新機能を簡単に展開できます。
  • ダウンタイムをゼロにします。
  • これは、否定的な結果の場合に変更の迅速なロールバックを可能にします。
  • これにより、ユーザーベース全体にリリースする前に、新しいリリースに送信されるトラフィックを決定する条件の高レベルの設定が可能になります。
  • これにより、複数のチームが同時に個々のマイクロサービスを本番環境でテストできます。
  • 青緑色の展開とは異なり、追加の環境をテストするためにリソースの拡張は必要ありません。 なぜなら、マイクロサービスごとのリソース戦略は、テストのために採用されるからです。
  • 新しいバージョンの動作は、新しい容量テスト環境を設定する代わりに、運用環境の負荷を徐々に増やすことで監視できます。
  • これにより、実稼働環境で複数のバージョンを展開できます。 これにより、新しいリリースをテストするための、希望する自由度、柔軟性、速度がチームに提供されます。

 

カナリアの展開とロードビュー

大量のユーザー エクスペリエンスを損なうことなく、パフォーマンス テストに最適な結果を得ることができます。 必要なのは、カナリア展開の実践と、パフォーマンス テストのメトリックをサポートする優れたテスト ツールです。 カナリア アプローチを使用すると 、LoadViewのような高度なソリューションを使用して、パフォーマンス テスト ケースの実行を自動化できます。 これは混乱し、複雑に聞こえるかもしれません。 しかし、例の助けを借りてそれを理解してみましょう。 たとえば、シングルページアプリケーション(SPA)のNetflixは、新機能を開発し、カナリアユーザーにリリースします(7,50,000、1,500万人の5%、2020年の統計に基づく)。

今、DevOpsチームは、このような膨大な数のユーザーを手動で監視することはできません。 したがって、LoadView は、DevOps とテスト チームがアプリケーションに対してロードテストとストレス テストを行う数百から数千人の同時ユーザーをスピンアップし、その適用された負荷の下でアプリケーションがどのように実行するかを確認できるように、魔法の杖のように機能します。

さらに、 その EveryStep Web レコーダー スクリプト ツールを使用して LoadView を作る、説得力のある選択肢は、それは負荷テストの SP をサポートすることです。 SPAロジックは、例えばJMeterのような多くのツールではサポートされていないJavaScript技術に依存しています。 JMeterは、ブラウザではなくプロトコルレベルでのみ動作するため、クライアント側のパフォーマンスの多くは、パフォーマンステストの結果から取り残されています。 EveryStep レコーダーを使用すると、ユーザー シナリオとパスを簡単に作成でき、実際のブラウザーを利用できます。 パスを記録してテスト シナリオを設定するだけです。 それは本当に簡単です。

 

カナリア展開/テストの課題

すべてのコインには2つの側面があります。 カナリア展開/テスト方法には短所があると言う人もいますが、次の点を課題として述べた方が適切です。

  • DevOps チームは、複数のバージョンのソフトウェアを並行して管理する必要があります。 したがって、同時バージョンの数を最小限に抑えることをお勧めします。
  • ソリューション ソフトウェアがユーザーのデバイスにインストールされている場合、アップグレード時に新しいバージョンを完全に制御することはできません。
  • カナリア・リリースでは、データベース管理が困難になります。
  • カナリア テストの実装には、インフラストラクチャとアプリケーションの効果的かつ堅牢な監視に相当な労力が必要です。
  • 各増分リリースのモニターには時間がかかり、ターゲット・リリース日に影響を与える可能性があります。 カナリアテストには数時間かかることがあります。

 

結論:カナリアテスト

すべてを結論づけるために、ダウンタイムなしで実際のユーザーとソフトウェアの新しいバージョンのパフォーマンス テストを行う場合、カナリア展開/テスト アプローチはリスク軽減の次の親友になることを推測できます。 Ian Molyneauが著書「
アプリケーションパフォーマンステストの芸術:戦略からツールへ
」で 述べたように、「エンドユーザーがあなたのウェブサイトから悪いパフォーマンスを認識した場合、彼女の次のクリックは your-competition.com になる可能性があります。それを起こさせてはいけません。 クライアントと顧客が優れたユーザー エクスペリエンスを得ていることを確認します。

ロード ビュー を使用して、今すぐロード テストエクスペリエンスを開始します。