バージョンアップ情報
Argo Rollouts情報
Argo Rolloutsとは
Argo Rollouts(アルゴロールアウト) は、Kubernetes 環境にデプロイメントのための機能を提供するGo言語で書かれたオープンソースのツールセットです。
Argo Rolloutsは、Argoプロジェクトの一部として2019年より開発が始められました。Argo プロジェクトでは、Kubernetes 上でのワークフローやジョブを管理するためのいくつかのツールセットが開発されており、Argo Rollouts以外ではArgo CD、Argo Workflows、Argo Events などがあります。
Argo Rollouts を導入することにより、ブルー/グリーンデプロイメント、カナリアデプロイメント、Experiment CRD、プログレッシブデリバリーなどの高度なデプロイメント機能が利用できるようになります。
主な特徴
Argo Rollouts には主に以下のような機能があります。
デプロイメント戦略
ブルー/グリーンデプロイメント
新旧2つのバージョンのアプリケーション(ブルー/グリーン)を同時にデプロイし、トラフィックシフトにより、新しいバージョンへの切り替えと、旧バージョンへの差し戻しを簡単に行えるようにするデプロイメント戦略です。
カナリアデプロイメント
新しいバージョンのアプリケーションを少数のユーザーに公開し、問題が無いことを確認した上で全体に公開するデプロイメント戦略です。
Experiment CRD
Experiment CRD (Custom Resource Definitions) を使用すると1つ以上の ReplicaSet を一時的に実行することができます。
Experiment CRD はReplicaSet が期待どおりに実行されていることを確認するために使用する AnalysisRun を同時に起動することも可能です。
プログレッシブデリバリー
プログレッシブデリバリーは、段階的にアップデートをリリースする方式です。
自動化とメトリクス分析を組み合わせ、アップデートの自動プロモーションやロールバックにより、発生するリスクを軽減します。
トラフィックマネージメント
異なるバージョンのアプリケーションに対するトラフィックを制御します。
割合によるトラフィックの分割、ヘッダーを使用したルーティング、トラフィックのミラーリングなどの細かい制御が可能です。
UIダッシュボード
Argo Rollouts Kubectl プラグインによるローカル UI ダッシュボードがArgo Rollouts の動作を可視化します。
Argo Rolloutsのアーキテクチャ
下記はArgo Rollouts によって管理される各コンポーネントの概要図です。
ロールアウトコントローラー
Kubernetes 上での高度なデプロイメント戦略を管理するためのコントローラーであり、以下のような機能を提供します。
- ブルー/グリーンデプロイメント
- カナリアデプロイメント
- 詳細な設定が可能なトラフィックシフト
- 自動ロールバックとプロモーション
- 手動判定
- カスタマイズ可能なメトリクス クエリとビジネス KPI の分析
- Ingress コントローラー(NGINX、ALB)の統合
- サービスメッシュ(Istio、Linkerd、SM)の統合
- メトリクスプロバイダー(Prometheus、Wavefront、Kayenta、Web、Kubernetes Job)の統合
Argo Rollouts に似た機能を持つ製品としてFlagger、Spinnakerなどが挙げられます。
導入事例
Argo Rolloutsは、Kubernetes 環境でのアプリケーションデリバリーの改善を目指す多くの組織に使用されています。
Argo Rolloutsを正式に使用している組織の一覧がgithubに公開されています。
動作環境
Argo Rollouts はKubernetes上で動作します。
対応するバージョン等は下記の公式ドキュメントをご確認ください。
Argo Rolloutsのライセンス
Argo Rolloutsのライセンスは、 「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、 誰でも自由かつ無償で利用・改変・再配布できるようになっています。
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
Argo Events
Argo Events(アルゴイベンツ)は、Kubernetes上でイベント駆動型のワークフローを構築するためのオープンソースソフトウェアです。
-
サポート対象
Argo Workflows
Argo Workflows(アルゴ ワークフローズ)とはKubernetes上で並列実行するジョブの管理をするオープンソースのコンテナネイティブワークフローエンジンです。
-
サポート対象
Kubernetes
クーバネティス。Dockerをはじめとするコンテナ化されたアプリケーションの展開、スケーリング、管理を行うオープンソースのプラットフォームです。
-
サポート対象
Argo CD
アルゴシーディー。KubernetesのためのGitOpsに則ったCD(Continuous Delivery)ツールです。