カナリアリリース

Canary Release

カナリアリリースとは

カナリアリリース(Canary Release)とは、新しいバージョンのモデルやソフトウェアを少数のユーザーまたはトラフィックに対してのみ展開し、問題がないことを確認してから段階的に全ユーザーに拡大するデプロイ手法です。名前は炭鉱のカナリア(ガスの検知に使われた鳥)に由来します。

表:カナリアリリースの要点まとめ
ひとことで言うと新版をまず少数の利用者だけに出して、様子を見ながら広げる公開方法。
何がうれしいか問題があっても影響範囲が小さく、すぐ止められる。
注意点少数では統計的に差が出にくい。判断に必要な件数を見込んでおく。

カナリアリリースの仕組み

まず新しいモデルをトラフィックの1〜5%程度に対して展開します。エラー率、レイテンシ、予測品質などの指標を監視し、問題がなければ徐々にトラフィックの割合を10%、25%、50%、100%と増加させます。異常を検出した場合は即座に元のバージョンにロールバックします。

図:カナリアリリースの進め方
1新版を用意旧版と並行稼働
▶
25%に配信まず少数で試す
▶
3指標を比較エラーや精度を確認
▶
4段階的に拡大25%→50%→100%
▶
5異常なら即停止旧版に戻す

MLモデルでのカナリアリリース

MLモデルのカナリアリリースでは、推論精度やビジネスKPIの変化を慎重に監視します。新しいモデルが特定のユーザーセグメントで予期しない挙動を示す場合や、パフォーマンス(レイテンシ・メモリ使用量)が悪化する場合に、早期に問題を発見できます。

実装方法

Kubernetes上ではIstioやLinkerdなどのサービスメッシュを使ったトラフィック分割が一般的です。AWS App Mesh、Google Cloud Traffic Director、Azure Traffic Managerなどのマネージドサービスも利用できます。Argo Rolloutsは Kubernetes上でのカナリアリリースとブルーグリーンデプロイメントを自動化するツールです。