第1章 Argo Rollouts の概要
GitOps のコンテキストでは、プログレッシブ配信は、制御された段階的な方法でアプリケーションの更新をリリースするプロセスです。プログレッシブ配信では、アプリケーション更新の新しいバージョンを最初は一部のユーザーにのみ公開することで、リリースのリスクを軽減します。このプロセスには、この新しいアプリケーションバージョンを継続的に観察および分析して、その動作が設定された要件および期待と一致するかどうかを検証することが含まれます。このプロセスによりてアプリケーションの更新が徐々に幅広いユーザーに公開されるにつれて、検証は継続されます。
OpenShift Container Platform は、ルートを使用して異なるサービス間でトラフィックを分割することにより、ある程度の段階的な配信機能を提供しますが、これには通常、手動による介入と管理が必要です。
Argo Rollouts を使用すると、クラスター管理者はプログレッシブデプロイメントの配信を自動化し、Kubernetes および OpenShift Container Platform クラスターでホストされているアプリケーションのプログレッシブデプロイメントを管理できます。Argo Rollouts は、ブルーグリーン、カナリア、カナリア分析、実験などの高度なデプロイメント機能を提供するカスタムリソース定義 (CRD) を備えたコントローラーです。
1.1. Argo Rollouts を使用する理由
クラスター管理者として、従来のインフラストラクチャーにおける高度なデプロイメントストラテジーの管理と調整には、メンテナンス期間が長くなる可能性があります。OpenShift Container Platform や Red Hat OpenShift GitOps などのツールを使用した自動化により、これらの期間を短縮できますが、これらの戦略を設定するのは依然として困難な場合があります。
Argo Rollouts を使用すると、アプリケーションチームがロールアウトストラテジーを宣言的に定義できるようになり、プログレッシブ配信が簡素化されます。チームは、複数のデプロイメントやサービスを定義したり、トラフィックシェーピングやテストの統合のための自動化を作成したりする必要がなくなりました。
以下を理由に、Argo Rollouts を使用できます。
- エンドユーザー環境でのプログレッシブ配信をより簡単に導入できます。
- Argo Rollouts の構造とガイドラインを利用すれば、チームはトラフィックマネージャーや複雑なインフラストラクチャーについて学習する必要がなくなります。
- 更新中、デプロイメントストラテジーに応じて、トラフィックを新しいバージョンに徐々に移行することで、デプロイされたアプリケーションバージョンの既存のトラフィックシェーピング機能を最適化できます。
- Argo Rollouts を Prometheus などのメトリックプロバイダーと組み合わせて、パラメーターセットに基づいてメトリックベースおよびポリシー駆動のロールアウトとロールバックを実行できます。
- エンドユーザー環境は、Red Hat OpenShift GitOps Operator のセキュリティーを取得し、リソース、コスト、および時間を効果的に管理するのに役立ちます。
- セキュリティーと自動デプロイメントを備えた Argo CD を使用している既存のユーザーは、プロセスの早い段階でフィードバックを受け取り、それを使用して影響のある問題を回避できます。
1.1.1. Argo Rollouts の利点
Argo Rollouts を Red Hat OpenShift GitOps のデフォルトのワークロードとして使用すると、次の利点があります。
- GitOps ワークフローの一部として自動化されたプログレッシブ配信
- 高度なデプロイメント機能
- Blue-Green や Canary などの既存の高度なデプロイメント戦略を最適化
- デプロイメント時のダウンタイムがない更新
- きめ細かく重み付けされたトラフィックのシフト
- 実稼働環境に新しいトラフィックが到達することなくテスト可能
- 自動化されたロールバックとプロモーション
- 手動判定
- カスタマイズ可能な指標クエリーとビジネス主要業績評価指標 (KPI) の分析
- 高度なトラフィックルーティングのための Ingress コントローラーおよび Red Hat OpenShift Service Mesh との統合
- デプロイメント戦略分析のためのメトリックプロバイダーとの統合
- 複数のプロバイダーの使用