カナリアリリースとは
カナリアリリース(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上でのカナリアリリースとブルーグリーンデプロイメントを自動化するツールです。