Cloud Deploy の用語

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

破棄

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

Application(アプリケーション)

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

アプリケーションの配信

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

アーティファクト

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

自動化

自動化を使用すると、デリバリー パイプラインとターゲットを構成して、そのパイプラインのリリースとロールアウトに対して、人手を介さずに一部のアクションを実行できます。たとえば、適切な状況下で特定のターゲットへのプロモーションが自動的に行われるように、デリバリー パイプラインを設定できます。詳細

自動化ルール

自動化の動作は、自動化ルールの一部で定義されます。自動化ルールでは、リリースをプロモートさせるなど、自動化の内容を定義します。

利用可能な自動化ルールについては、自動化ルールの使用のドキュメントをご覧ください。

自動化の実行

自動化のインスタンス。

カナリア デプロイ

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

子ロールアウト

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

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

子ターゲット

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

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

継続的デリバリー

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

継続的デプロイ

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

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

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

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

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

カスタム ターゲット

サポートされているターゲット タイプのいずれかでもなく、ユーザー定義のカスタム ターゲット タイプを使用するターゲット。

宣言型

意図した状態を記述し、その状態を実現するためにシステムに依存する、Kubernetes クラスタなどのシステムの構成。この状態を実現するための具体的な手順を記述する命令型構成とは対照的です。

Cloud Deploy は、宣言型の Kubernetes マニフェストのレンダリングとデプロイに加えて、宣言型リソース定義を使用してレンダリングと配信のプロセスを定義します。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 のマニフェストは、レンダリングされているか、レンダリングされていないかのいずれかの状態になります。レンダリングされていないマニフェストは、ターゲットにデプロイする準備ができていません。多くの場合、マニフェストへの特定の値の入力などを行うレンダリング プロセスは、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 を使用してこれを行います。

リリース

リリースをデプロイ ターゲットに関連付けるリソース。rollout は各ターゲットのリリースごとに作成されるため、デリバリー パイプラインの 3 つのターゲットを単純な構成にすると、リリースに対して 3 つの rollout リソース(ターゲットごとに 1 つ)が作成されます。

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

標準のデプロイ戦略

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

ステージ

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

  • dev
  • staging
  • prod

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

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

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

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

ターゲット

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

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

ターゲットは、デリバリー パイプラインと同じプロジェクトとリージョンで定義する必要があります。ただし、ターゲットのデプロイ先となるランタイムは、異なるプロジェクトとリージョンに存在できます。

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

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

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

検証

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