カナリアメトリクスとは?安全なロールアウトのシグナル解説
カナリアメトリクスとは、canaryリリース中に、新バージョンを旧バージョンと比較しながら注意深く見守り、ロールアウトを続行するかrollbackするかを判断するためのシグナルです。
canaryリリースは、まず新バージョンを少量のトラフィックに送るもので、炭鉱のカナリアに由来する名前です。戦略全体は、そのスライスで何を測定するか、すなわちカナリアメトリクスにかかっています。それらは、新バージョンをさらにロールアウトして安全か、それとも撤回すべきかを決める証拠です。
canaryリリースの概要
canary deployでは、新バージョンがトラフィックのごく一部を受け取り、旧バージョンが残りを処理します。狙いは影響範囲を限定することです。新バージョンが不良でも、影響を受けるのは少数のユーザーだけで、完全なロールアウトの前に気づけます。カナリアメトリクスは、それに気づく手段です。
良いカナリアメトリクスとは
良いカナリアメトリクスは、何かがおかしいときに確実に動くシグナルです。エラー率、レイテンシのパーセンタイル、重要なビジネス成果などです。実際のリグレッションを素早く捉えるのに十分な感度を持ちつつ、ノイズで発火しないほど安定している必要があります。これはあらゆる良いアラートを定義するのと同じバランスです。
canaryとベースラインの比較
canary分析の力は、同じ時間に同じ条件下で稼働している安定バージョンと、canaryを直接比較することから生まれます。両者が同時にライブトラフィックを処理するため、両者の差は新バージョンの効果を外部の変化から切り分けます。これは前後比較だけよりも明瞭なシグナルです。
自動化されたcanary分析
成熟した構成は判断を自動化します。システムがカナリアメトリクスをベースラインと継続的に比較し、canaryが著しく悪ければ自動的にrollbackします。持ちこたえれば、canaryへのトラフィックが徐々に増やされます。この自動化された昇格またはrollbackが、プログレッシブデリバリーの実践です。
CI/CDにおけるカナリアメトリクス
カナリアメトリクスは、リリース監視をpipelineに直接結びつけます。deploy jobが少量のトラフィックを移し、一定時間カナリアメトリクスを見守り、その結果に残りのロールアウトをゲートさせられます。ヘルシーなメトリクスなら自動的に続行し、不良なら元に戻します。人間は不要です。
重要なポイント
- カナリアメトリクスは、少量のトラフィックのスライスで新バージョンを判定します。
- 良いカナリアメトリクスは、感度が高くノイズに強いものです。
- canaryを稼働中のベースラインと比較することで、変更の効果を切り分けます。
- 自動化されたcanary分析は、ロールアウトをゲートしたりrollbackしたりできます。