カナリアリリース

少数のユーザーへ新バージョンを公開する
Contributed by

Val Yonchev

Published December 18, 2018
Collection
2

概要

ソフトウェア開発において、このカナリアリリースは、継続的デリバリーのプラクティスであり、製品の実ユーザーのごく一部だけに新しいバージョンを公開するものです。チームは、レグレッションやパフォーマンスの問題、その他の悪影響を監視し、問題が見つかった場合は、ユーザーを簡単に正常動作する旧バージョンへ戻すことができます。

この言葉は、炭鉱で危険なガスの蓄積を早期に発見するために、かごに入れた鳥を使ったことに由来しています。有毒ガスによって炭鉱労働者の生命を脅かすよりも前に、鳥が先に死ぬことになります。炭鉱のカナリアと同じように、このリリース方法は、より大きな問題を避けるための早期警告メカニズムを提供します。

メリット

これはフィードバックループの実践であり、チームは自分たちの変更が実際に使用されることで迅速なフィードバックを得ることができるようになります。継続的デリバリーを実現するプラクティスです。

カナリアリリースは、段階的なロールアウトを可能にすることで、継続的デリバリーを行うチームに安全性を提供しながら、製品の新バージョンを使うユーザー数を徐々に増加させることができます。新バージョンのロールアウト中、チームはプラットフォームのパフォーマンスを注意深く監視し、新バージョンの影響を把握し、リグレッション、パフォーマンス、さらにはダウンタイムといった悪影響のリスクを評価します。このようなアプローチにより、悪影響が確認された場合、チームはすぐにリリースを「ロールバック」することができ、たとえ限られた時間であっても、大多数の顧客に影響を与えることはありません。

実施方法

カナリアリリースは、新機能を一部の人にだけ公開するという意味ではA/Bテストと似ていますが、A/Bテストとは違って、新機能は既存の機能を少し調整するだけでなく、完全に新しい機能であることが可能であり、一般的にはそのような機能です。また、目的も違います。A/Bテストは、ビジネス上の成果を得るという観点から製品性能を向上させようとしていますが、カナリアリリースは、技術的な性能に完全に焦点を合わせています。

カナリアリリースは、ダーク ローンチとも似ていて、どちらもユーザーの一部だけに機能を公開するものです。ダーク ローンチは、ユーザーが新しい機能にどのように反応し、使用するかを理解することに焦点を当てます。一方、カナリアリリースは、変更したプロダクトや個々の機能(アーキテクチャで分離して使用できる場合)の技術性能に本来はフォーカスします。

フィーチャートグルは、既存の製品にカナリアリリースを実装することを可能にする手法です。

フィーチャートグル

ダーク ローンチ

Blue/Green デプロイメント

継続的デリバリー

実施例

参考

カナリアリリース をチームや顧客、ステークホルダーと実施するにあたりより詳細にお知りになりたい場合は、以下のリンクを参照してください。


Except where noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license. This site is graciously hosted by Netlify