デプロイメント・パイプラインの管理
デプロイメント・パイプラインには、アーティファクトのセットをターゲット環境にデリバリするために満たす必要がある要件が保持されます。
デプロイメント・パイプラインには、自動デプロイメント用の様々なステージが含まれます。各ステージは、パイプラインの特定のアクションに関連付けられます。デプロイメント・パイプラインは、次のいずれかのリリース戦略に基づいて実行できます:
- ブルー/グリーン戦略: 2つの同一の本番環境(ブルーとグリーン)を実行して、ダウンタイムとリスクを軽減します。どの時点においてもいずれか一方の環境のみがアクティブであり、アクティブ環境で本番トラフィックが実行されています。たとえば、ブルーがアクティブ(本番)の場合、グリーンはスタンバイ(ステージング)であり、その逆も同様です。連続したデプロイメント中には、アクティブ環境がブルーの環境とグリーンの環境の間で切り替わります。新しいバージョンのアプリケーションのデプロイメント中に、新しいバージョンのテストがスタンバイ環境(グリーン)で実行されます。テストが成功すると、トラフィックはアクティブ環境(ブルー)からスタンバイ環境にシフトされます。検証されたバージョンのソフトウェアが正常にデプロイされ、今度はグリーンの環境がアクティブになり、ブルーはスタンバイになります。ブルー/グリーン・デプロイメント戦略では、現在の本番環境に影響を及ぼすことなく、新しいリリースの検証がスタンバイ環境で行われるため、継続的なデリバリ・モデルにおける停止時間が大幅に短縮されます。また、この戦略では、本番トラフィックをシフトするだけで以前の正常なバージョンにロールバックできるため、デプロイメント中の失敗のリスクが軽減されます。
- カナリア戦略: 新しいバージョンのソフトウェアをカナリア環境に最初にリリースします。リリースが正常に検証されると、ソフトウェアは本番環境にリリースされます。この戦略もブルー/グリーンと同様に、デプロイメントに関連するダウンタイムとリスクを軽減します。初期リリースが失敗しても、本番環境には影響しません。正常なリリースと承認済のリリースのみが本番環境にプッシュされます。
- ローリング戦略: 一連のホストを一度に更新することで、新しいバージョンがターゲット環境に増分的にデプロイされます。更新は、次の一連のホストを更新する前に検証されます。新しいバージョンのロールアウトが完了するまでこのプロセスが繰り返されます。
アーティファクトは、可変でも不変でもかまいません。アーティファクト・レジストリで、可変アーティファクトを置き換えることができます。これを行うには、可変リポジトリにアーティファクトをアップロードして、削除されたアーティファクトの名前を割り当てます。または、同じ名前のアーティファクトが存在する場合は、新しいアーティファクトによって古いアーティファクトが削除され、置き換えられます。DevOpsデプロイメント・パイプラインは、アーティファクトのパスとバージョンに基づいてアーティファクトをフェッチします。可変アーティファクトの場合、これはリポジトリで検出された最新のアーティファクトである可能性があります。
ステージは、デプロイメント・パイプラインでのアクションです。DevOpsサービスには、デプロイメント・パイプラインで簡単に使用できる事前定義済のステージが含まれます。それらは次のとおりです:
- Kubernetesクラスタへのデプロイ: ビルトインのKubernetesローリング更新戦略を使用します。
- インスタンス・グループへのデプロイ: インスタンス・グループに更新を増分的にリリースします。一度にオフラインにできる最大インスタンスを指定できます。このタイプでは、自動ロールバックがサポートされます。
- ブルー/グリーン戦略に基づいたデプロイ: Container Engine for Kubernetes (OKE)およびインスタンス・グループ・デプロイメントのブルー/グリーン・リリース戦略を使用します。
- カナリア戦略に基づいたデプロイ: OKEおよびインスタンス・グループ・デプロイメントのカナリア・リリース戦略を使用します。
- ファンクションへのデプロイ: ビルトインのファンクション更新戦略を使用します。
- Helmチャートのデプロイ: OKEクラスタにHelmチャートをインストールします。
- 制御:
- 承認: デプロイメントを一時停止し、手動決定を待機します。
- トラフィック・シフト: 2つの環境間でトラフィックをルーティングします。
- 待機: 特定の期間のデプロイメントを一時停止します。
- 統合:
- ファンクションの呼出し: カスタム・ロジックを実行するファンクションを呼び出します。
- シェル: デプロイメント・パイプラインのコマンド仕様で定義されたカスタム・ステップを実行します。
パイプラインには複数のステージを追加できます。ステージは、順次またはパラレルに追加できます。パイプラインから任意のステージを削除できます。実行すると、ステージとそれに関連付けられたリソースが削除されます。