カナリアデプロイメント

カナリアデプロイメントは、2つの環境から始まるデプロイメント戦略です。 一つはライブトラフィックがある環境で、もう一つは更新されたコードを含む、ライブトラフィックがない環境です。 トラフィックは徐々にアプリケーションの元のバージョンから更新されたバージョンへ移行します。 最初にライブトラフィックの1%を移行し、次に10%、25%と続け、すべてのトラフィックが更新されたバージョンを流れるまで続けます。 組織は本番環境で新しいバージョンのソフトウェアをテストし、フィードバックを得て、エラーを診断し、必要に応じて安定したバージョンに迅速にロールバックすることができます。

「カナリア」という用語は、「炭鉱のカナリア」という慣習に由来します。 この慣習では、カナリア鳥を炭鉱に連れて行き、鉱夫の安全を確保していました。 無臭の有害ガスが存在すると、鳥は死んでしまい鉱夫は迅速に避難する必要があることを知りました。 同様に、更新されたコードに何か問題が発生した場合、ライブトラフィックは元のバージョンに「避難」されます。

解決すべき問題はなんですか

テスト戦略をいかに徹底していても、本番環境では常にいくつかのバグが発見されます。 アプリの100%のトラフィックをあるバージョンから別のバージョンに移行することは、より影響力のある障害につながる可能性があります。

どのように役に立つのでしょうか

カナリアデプロイメントにより、組織は新しいソフトウェアが実際のシナリオでどのように振る舞うかを、新しいバージョンに大量のトラフィックを移行する前に確認することができます。 この戦略により、組織はダウンタイムを最小限に抑え、新しいデプロイメントに問題がある場合に迅速にロールバックすることができます。 また、全体的なユーザーエクスペリエンスに大きな影響を与えることなく、徹底的な本番アプリケーションのテストを可能にします。