7 ポイント 投稿者 lqez001 2021-04-05 | まだコメントはありません。 | WhatsAppで共有
  • タダを運営するVCNCのキム・テホ氏が執筆した、Kubernetes環境におけるカナリアデプロイの体験談。

  • カナリアデプロイは、炭鉱で鉱夫たちがガス漏れを検知するために鳥かごにカナリアを入れて持ち歩いていたことに由来する名称。

  • Spring Bootのメジャーバージョンを上げる際、依存ライブラリのバージョンも強制的に変わるため、それによって起こる性能問題や未検証の障害を最小化するためにカナリアデプロイを試みた。

  • KubernetesにはHelmパッケージマネージャーを使ってデプロイしており、Helmのパッケージ単位を「チャート」と呼び、チャートをKubernetesクラスターにインストールするとリリースが作成される。

  • カナリア用のチャート/リリースを作成し、Ingressコントローラーにアノテーションを追加して、指定した割合のリクエストだけがカナリアIngressに向かうよう設定した。

今後の課題

  • カナリアリリースに問題が発生したとき、その原因がカナリアの変更によるものなのか、もともと発生していた問題なのかを把握するのが難しいため、同じ比率で対照群を立ち上げてメトリクスを比較する方法が必要。

  • ユーザーとは無関係にリクエストの一部をカナリアへ送るため、カナリアに問題があってもリクエストを再試行するうちに既存バージョンが処理して成功することもあるが、全体で見るとカナリアの問題を体験するユーザーの割合が増える可能性があるため、(LBでスティッキー処理をするように)ユーザーグループごとにカナリアへルーティングすれば制御しやすくなりそう。

まだコメントはありません。

まだコメントはありません。