Cloud Deploy の用語

このドキュメントで使用する用語は、Cloud Deploy での使用方法に従って定義されています。

破棄

リリースを完全に無効にすること。

Application(アプリケーション)

Cloud Deploy を使用してデプロイするソフトウェア。

アプリケーションの配信

アプリケーションを目的の環境環境にデプロイするために必要なアセットを提供する。Cloud Deploy では、アプリケーションの配信は、アプリケーションの Kubernetes マニフェストの生成、昇格、クラスタへの配信で構成されます。

アーティファクト

デプロイされるコンテナ イメージ(ビルド アーティファクト)と、デプロイに使用されるマニフェストや Skaffold 構成などの構成ファイル(ターゲット アーティファクト)。

カナリア デプロイ

変更を一部のユーザーのサブセットにロールアウトするデプロイ戦略。まず、テストを行い信頼性を確保してから、完全にロールアウトします。

子ロールアウト

並行デプロイで、子ターゲットへのデプロイ用に生成されるロールアウト。

コントローラのロールアウトもご覧ください。

子ターゲット

並行デプロイで、同時にデプロイする複数の GKE、Anthos、Cloud Run の個々のターゲットのいずれかを表すターゲット。

マルチターゲット並行デプロイ子ロールアウトもご覧ください。

継続的デリバリー

変更を安全かつ頻繁かつほぼ自動的にユーザーにリリースするソフトウェア エンジニアリング手法

継続的デプロイ

デプロイされるコードと構成が自動的に変更されるソフトウェア エンジニアリング プラクティス。

継続的デリバリーでは 1 つ以上のステージで手動の承認が必要ですが、継続的デプロイは自動的に行われ、手動の承認は必要ありません。

コントローラのロールアウト

並行デプロイ用に生成されたロールアウト。コントローラのロールアウトは、単一のターゲット クラスタまたはサービスへのデプロイには使用されません。代わりに、子ターゲットごとに 1 つの子ロールアウトがあります。

並行デプロイマルチターゲットもご覧ください。

宣言型

目的の状態を説明し、その状態を実現するためにそのシステムに依存する Kubernetes クラスタなどのシステムの構成。命令型構成の場合は、その状態を達成するための具体的な手順を記述します。

宣言型 Kubernetes マニフェストのレンダリングとデプロイに加えて、Cloud Deploy では宣言型リソース定義を使用してレンダリングと配信のプロセスを定義します。skaffold.yamlclouddeploy.yaml は、Skaffold 定義とデリバリー パイプライン定義の一般的なファイル名です。

デリバリー パイプライン

デプロイの進行中に各ターゲットにアプリケーションを配信するワークフローを表します。

Cloud Deploy のドキュメントでは、「デリバリーパイプライン」という用語を使用して、CI パイプラインなど、使用する他のパイプラインと区別しています。

Cloud Deploy では、デリバリー パイプラインは YAML 構成ファイル(通常は clouddeploy.yaml)で定義されており、その定義は次の要素で構成されています。

  • デプロイ ターゲット
  • これらのターゲット間の昇格シーケンス

パイプライン インスタンスもご覧ください。

デプロイフック

デプロイの前後に実行できる任意のアクション詳細

パラメータをデプロイする

マニフェストに追加できるものの、レンダリングの一環として解決されないプレースホルダ。代替措置として、これらのプレースホルダの値は、各ターゲット固有のマニフェストがレンダリングされた後に割り当てられます。詳細

デプロイ戦略

ユーザーへの影響を最小限に抑えながら、アプリケーションへの変更を安全にデプロイするための手法です。

実行環境

Cloud Deploy が実行される一連の Google Cloud リソース。次の要素で構成されています。

  • Cloud Deploy がレンダリング アクションとデプロイ アクションを実行するデフォルトまたはプライベートのワーカープール

  • デフォルトまたは代替の実行環境サービス アカウント。Cloud Deploy を呼び出して、レンダリングとデプロイを実行します

  • レンダリングされたマニフェストのデフォルトの保存場所または代替の保存場所。

ハイドレート

レンダリングをご覧ください。

Job

デプロイ時に実行される特定のオペレーション(デプロイ、検証など)。 詳細

ジョブ実行

ロールアウトの子リソースで、ジョブ実行はジョブのインスタンスです。つまり、デプロイや検証などのジョブの実行を表します。 詳細

マニフェスト

Pod、Deployment、Service、Ingress などの Kubernetes リソースの作成、変更、削除に使用される Kubernetes 構成オブジェクト。

Cloud Deploy のマニフェストは、レンダリングとレンダリングの 2 つの状態のいずれかになります。レンダリングされていないマニフェストは、ターゲットにデプロイする準備ができていません。多くの場合、マニフェストへの特定の値の入力などを行うレンダリング プロセスは、Helm、Kustomize、kpt などのツールによって実行されます。Cloud Deploy では、Skaffold を使用して構成のレンダリングをオーケストレートします(skaffold render コマンド)。

レンダリングもご覧ください。

マルチターゲット

並行デプロイを構成または実施する場合、マルチターゲットは単一のパイプライン ステージですが、複数のターゲット ランタイムを含めることができます。

子ターゲット並行デプロイコントローラのロールアウトもご覧ください。

並行デプロイ

同じデリバリー パイプライン ステージで同時に複数のターゲットにアプリケーションをデプロイすること。この手法で、たとえば本番環境内の複数のクラスタやサービスにデプロイできます。

フェーズ

論理的にはグループ化された、ロールアウト内のオペレーション(ジョブ)のコレクション(デプロイ、デプロイ、検証など)。詳細

Pipeline(パイプライン)

デリバリー パイプラインをご覧ください。

パイプライン インスタンス

release の作成時に取得されるデリバリー パイプラインのスナップショット。Cloud Deploy は、このスナップショットを保持して、release の作成時に定義されたパイプラインを使用してリリースのすべてのデプロイが一貫して管理されるようにします。

詳細については、リリースあたりのパイプライン インスタンスをご覧ください。

パイプラインの不一致

リリースの作成後にデリバリー パイプラインまたはターゲットが変更された場合、release に関連付けられたパイプライン インスタンスはパイプラインの定義とは異なります。

パイプラインの不一致がある場合、Cloud Deploy は、リリースを昇格するか、ロールバックする前に、定義を調べるように促します。

詳細については、リリースあたりのパイプライン インスタンスをご覧ください。

育成

デリバリー パイプライン構成ファイル内の、あるターゲットから別のターゲットへのプロモーション シーケンスを記述する構成。例: test から stagingprod

Promotion

デリバリー パイプラインで定義された進行状況に従って、あるターゲットから別のターゲットにリリースを進めるプロセス。

登録

アプリケーションを Cloud Deploy サービスにデリバリー パイプラインの形式で提供して、アプリケーションの配信がサービスによって管理されるようにします。

リリース

デプロイされる変更(コード、構成、またはその両方)を表す Cloud Deploy リソース。

リリース ライフサイクルについては、Cloud Deploy サービス アーキテクチャのドキュメントをご覧ください。

レンダリング

ターゲットにデプロイするマニフェストを準備すること。マニフェストのレンダリングは、主にマニフェスト内の変数の値で構成されます。Cloud Deploy では、skaffold render を使用してこれを行います。

その際に deploy パラメータの値の入力は行われません。

リリース

リリースをデプロイ ターゲットに関連付けるリソース。rollout は各ターゲットのリリースごとに作成されるため、デリバリー パイプライン内の 3 つのターゲットにまたがって簡単に進行すると、リリースに 3 つの rollout リソース(ターゲットごとに 1 つ)があります。

カナリア デプロイ戦略など、より複雑なデプロイの場合、rollout はより複雑になる可能性があります。詳細

標準のデプロイ戦略

標準のデプロイ戦略は、アプリケーションをターゲットにデプロイするデフォルトの方法です。デリバリー パイプラインで定義されたステージごとに、アプリケーションはターゲットに完全にデプロイされ、毎回、以前にデプロイされたアプリケーションに置き換えられます。

ステージ

デリバリー パイプライン内の 1 つのターゲットまたはマルチ ターゲット。たとえば、以下のステージを持つシンプルなデリバリー パイプライン内です。

  • dev
  • staging
  • prod

それぞれが 1 つのステージです。

並行デプロイを行う場合、マルチターゲットは単一のステージですが、子ターゲットは個別のステージではありません。

(デリバリー パイプラインの)停止

特定のデリバリー パイプラインからのリリースの作成と昇格を止めること。詳細については、配信パイプラインの一時停止をご覧ください。

ターゲット

アプリケーションをデプロイする、特定のランタイム環境(Kubernetes クラスタ、Cloud Run サービス、その他のサポートされているランタイム)。また、その環境の構成も示します。

ターゲットは、デリバリー パイプラインの構成ファイルまたは別のファイルで定義できます。

ターゲットは並行デプロイをサポートするマルチターゲットまたは子ターゲットになることもあります。

ターゲット アーティファクト

ターゲットでのアプリケーションのレンダリングとデプロイに使用する構成ファイル。これには、Kubernetes マニフェストまたは Cloud Run サービス定義、Skaffold 構成ファイル、およびこれらの作成に使用されるレンダリング ソースが含まれます。

検証

任意のコンテナを実行してテストを行うことで、デプロイが成功したことを確認する機能。デプロイ検証の詳細を学習する