BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Kayenta:NetflixとGoogleからオープンソースのカナリア分析ツール

Kayenta:NetflixとGoogleからオープンソースのカナリア分析ツール

原文(投稿日:2018/04/11)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

Kayentaは、オープンソースのカナリア自動分析ツールで、新しいバージョンのソフトウェア本番環境の準備状況を評価するために使われる。Kayentaは、Netflix内で開発されたツールをベースとしており、Googleの支援によりSpinnakerに統合され、複数のクラウドにまたがって自動的にカナリアリリースを実施する。準備が整ったかどうか分析される新しいソフトウェアバージョンには、コード変更や構成変更が含まれている可能性がある。

カナリアリリースは、新しいバージョンのソフトウェアを本番環境にデプロイするときのリスクを軽減するための手法である。カナリアと呼ばれる新しいバージョンのソフトウェアは、安定した実行バージョンの横に、少人数のユーザに向けてデプロイされる。トラフィックはこれらの2つのバージョン間で分割され、入力されたリクエストの一部がカナリアに転送される。

カナリアのリリースを分析するために、Kayentaはそれを探査し、その結果を本番環境のベースラインからの結果と比較する必要がある。理論的には、Kayentaは実際の本番システムとカナリアを比較することができたが、本番システムがしばらく実行されていたため統計的に歪んだ結果が得られる。まったく新しいベースラインクラスタを作成することで、メトリクスは長時間実行されるプロセスによる影響から解放される。

Spinnakerは、顧客がアクセスする本番システムに加えて、カナリアと新しいベースラインクラスタを並行して実行する。これらのクラスタには通常、それぞれ3つのインスタンスが含まれるが、3つは固定ではない。その後、実際の顧客からのリクエストのうち、わずか(1%まで)がこれらのクラスタに向けられる。そして、一連のパフォーマンスと機能メトリクスが収集され、時系列データベースにログとして記録される。そして、後ほど、カナリアがベースラインに対してどうであるかが自動的に比較される。プロセスのうち、このステップは判定と呼ばれ、0~100の範囲の全体スコアを出力して終了する。このステップは、一度だけでなく、複数回実行できる。

Netflix Kayenta traffic routing
Netflixカナリアリリースプロセス (Netflix技術ブログからの画像)

 

判定スコアは3つのカテゴリのいずれかに分類される。success - カナリアはデプロイに昇格する。marginal - おそらく、リリース対象に関して何をすべきかを決定するために、人の介入が求められる。failure - パイプライン全体が停止してロールバックされ、入力トラフィックは本番システムに転送される。

Kayentaは、Stackdriver、Prometheus、Datadog、Netflix Atlasなどのさまざまな監視ツールと統合される。システム全体がプラガブルに設計されているため、メトリックソース、判定システム、結果のストレージなどの、他のツールを使用することができる。

Spinnakerとの統合により、KayentaはAWS、GCP、Azure、Openstack、Kubernetes、ハイブリッド環境など、サポートされているプラットフォームでカナリアを分析およびデプロイすることができる。

Netflixは、カナリアのデプロイシステム全体をKayentaに移行するプロセスを進めている。これは、Netflixによると、今後数ヶ月にわたって行われる予定である。Kayentaは現在、1日に約200の判定を出しており、全負荷の約30%を占めている。Netflixは「Kayentaはデプロイに関してエンジニアに高い信頼性を提供することで開発者の生産性を向上させました」と付け加えた。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT