検索
ニュース

GoogleとNetflix、オープンソースのカナリア分析自動化サービス「Kayenta」をリリース本番環境への変更の反映を迅速、適切に判断できる

GoogleとNetflixは、本番環境へのデプロイのロールアウトを迅速に行う際のリスクを軽減できるカナリア分析自動化サービス「Kayenta」をオープンソースで公開した。

Share
Tweet
LINE
Hatena

 GoogleとNetflixは2018年4月10日(米国時間)、本番環境へのデプロイのロールアウトを迅速に行う際のリスクを軽減できるオープンソースのカナリア分析自動化サービス「Kayenta」を発表した。

 Kayentaは、Netflixの社内カナリアシステムをオープン化し、拡張可能にして、高度なユースケースに対応できるように進化させたもので、GoogleとNetflixが共同で開発した。Kayentaを使用すれば、エラーが発生しやすく、面倒で時間のかかる、手動またはアドホックのカナリア分析を減らせることができ、本番環境に対する変更の迅速な反映を、自信を持って進められる。

 またKayentaは、オープンソースのマルチクラウド継続的デリバリープラットフォーム「Spinnaker」と統合されているため、自動化されたカナリア分析をSpinnakerのパイプラインにセットアップできる。Kayentaは、ユーザーが設定したメトリクスをソースからフェッチして、統計テストを実行し、カナリアの集計スコアを提供する。このスコアと設定された基準に基づいて、カナリアの動作結果を自動的に合格、不合格と判断するか、人間による判断をトリガーする。

 カナリア分析は、統計的に不正確な方法で、手動やアドホックで行われることが多い。手動やアドホックのカナリア分析は、スピードやスケーラビリティのボトルネック、人的エラー、判断ミスのリスク、高度なユースケースのサポート不足など、さまざまな問題を引き起こすことがある。

 これに対し、Kayentaは、ユーザーが指定した指標に関する統計テストを自動的に行い、成功、中間、失敗に分類して集計スコアを返す。この厳密な分析は、ロールアウト、ロールバックの適切な判断や、従来のカナリア分析では見逃された悪いデプロイの特定に役立つ。またKayentaは、オープン性、ハイブリッドおよびマルチクラウド対応、拡張性、分析速度、低いオーバーヘッドなどのメリットを提供する。


Kayentaの実行結果の要約画面(出典:Google)

 Netflixのシニアリラビリティエンジニアを務めるグレッグ・バレル氏は、次のようにコメントしている。

 「自動カナリア分析は、Netflixの本番デプロイプロセスの基本的な部分だ。Kayentaに関するGoogleとのパートナーシップにより、アプリケーション、構成、データの変更など、幅広いデプロイシナリオで、自動カナリア分析を行うのに役立つ柔軟なアーキテクチャを実現できた。さらに、KayentaとSpinnakerの統合により、チームはカナリア分析のために異なるツールに切り替えることなく、パイプラインやデプロイを集中的に手掛けることができる。年末までに、Kayentaは1日に数千回、カナリアに関する判断を行うようになるだろう。SpinnakerとKayentaは、デプロイのリスクを最小限に抑えながら、高いリリーススピードを大規模環境で実現する、高速、高信頼で使いやすいツールだ」

 また、Spinnakerを早くから利用して渋滞情報のクラウドサービスを提供してきたWazeのシステムオペレーションエンジニアを務めるトム・フェイナー氏は、次のように述べている。

 「カナリア分析とSpinnakerのデプロイパイプラインを組み合わせれば、悪いデプロイを自動的に特定できる。だが、本番環境で1000以上のパイプラインが実行されている場合、カナリア分析の一環として何らかの形で人間が介在すると、継続的デリバリーが大きく阻害されてしまう。Kayentaで可能になるような自動カナリアデプロイにより、われわれのチームはいち早く異常を検出し、開発スピードを向上させてきた。また、Kayentaはオープンソースなので、ベンダーロックインのリスクも低い。われわれは、Kayentaを開発ライフサイクルに統合することを楽しみにしている」

 カナリア分析は、かつて炭鉱夫が一酸化炭素を検出するために、カナリアを入れたカゴを持って炭鉱に入ったことにちなんで名付けられており、本番環境への新しい変更の反映に伴うリスクを軽減する効果的な方法だ。

 カナリア分析の基本的な考え方は、本番トラフィックのごく一部(1%など)を、変更を反映したインスタンス(カナリア)と、コードと構成を本番環境と同じにして新しくデプロイされたインスタンス(ベースライン)に通過させるというものだ。その際、本番インスタンスには全く変更を加えない。一般的に、ベースラインとカナリアは、それぞれ3つのインスタンスが作成され、本番環境では多数のインスタンスが稼働する。新しいベースラインの作成は、スタートアップ効果を最小化し、ベースラインとカナリアのシステムの違いを抑えるのに役立つ。

 システムは、カナリアとベースラインとで、システムオーナーが選択した主要なパフォーマンス指標と機能指標を比較する。デプロイを継続するには、カナリアの指標がベースラインと同等以上でなければならない。


カナリア分析の仕組み(出典:Google)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る