【あるごろーるあうつ】

Argo Rollouts とは?

公開:
💡 新バージョンを「こっそり少しずつ」本番に送り込む安全なデプロイの職人
📌 このページのポイント
Argo Rollouts:カナリアリリースの段階的トラフィック移行 ユーザー リクエスト ロードバランサー トラフィック分配 (Argo Rollouts制御) Stable(旧版) v1.0 90% のトラフィック Canary(新版) v2.0 10% のトラフィック Analysis Run メトリクス評価 90% 10% 段階的移行ステップ 5% → 10% 10% → 25% 25% → 50% 100% 完了 NG→ロールバック
Argo Rollouts がカナリアリリースのトラフィック比率を段階的に制御する
ひよこ ひよこ
ペンギン先生、Argo Rolloutsって何が「Argo CD」と違うの?
ペンギン先生 ペンギン先生
Argo CDGitのコードをKubernetesに反映するのが仕事で、Argo Rolloutsは「どう段階的に展開するか」を担当するんだよ。
ひよこ ひよこ
段階的に展開って、カナリアリリースのこと?
ペンギン先生 ペンギン先生
そうだよ。最初は5%のトラフィックだけ新バージョンに流して、問題なければ10%、25%と増やしていく制御を自動でやってくれるんだよ。
ひよこ ひよこ
問題があったときはどうなるの?
ペンギン先生 ペンギン先生
PrometheusなどのメトリクスをAnalysis Runという機能で定期評価して、エラー率が閾値を超えたら自動でロールバックするんだよ。人が気づかなくても大丈夫なんだ。
ひよこ ひよこ
普通のKubernetesの `Deployment` と何が違うの?
ペンギン先生 ペンギン先生
標準の `Deployment` はローリングアップデートしかできないけど、Argo Rolloutsは `Rollout` という独自リソースでカナリアやブルーグリーンをコードで宣言的に管理できるんだよ。
ひよこ ひよこ
GitOpsと一緒に使うと最強な感じがするんだね!
ペンギン先生 ペンギン先生
まさにそうだよ。Argo CDGitの状態を適用しつつ、Argo Rolloutsで安全に段階展開するのが今のKubernetes運用のベストプラクティスになってきているんだよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Argo Rollouts」って出てきたら「Kubernetesで段階的デプロイを自動管理するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Argo Rollouts」 = アルゴ ロールアウツ
💬 Argoはギリシャ神話の船「アルゴ号」に由来するCNCFプロジェクト群の名前で、Rolloutsはソフトウェアのリリース展開を意味するよ
← 用語集にもどる