このドキュメントでは、モニタリング システムとして Google Cloud Observability を使用する場合に、デリバリー パイプラインで分析を構成する方法について説明します。
別のモニタリング プロバイダを使用する場合は、カスタム分析を定義する必要があります。これには、プロバイダから指標やその他のデータを取り込んで評価するコンテナの作成が含まれます。
始める前に
-
Google アカウントにログインします。
Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。
-
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init Compute Engine API と Cloud Deploy API が有効になっていない場合は、有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法を確認する。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Google Cloud CLI をインストールします。
-
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init Compute Engine API と Cloud Deploy API が有効になっていない場合は、有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法を確認する。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
必要なロール
分析ジョブの作成と使用に必要な権限を取得するには、プロジェクトのアカウントに対する次の IAM ロールを付与するよう管理者に依頼してください。
- Cloud Deploy ランナー (
roles/clouddeploy.jobRunner) - モニタリング アラート閲覧者 (
roles/monitoring.alertPolicyViewer) - Service Usage コンシューマー (
roles/serviceusage.serviceUsageConsumer)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud Deploy サービス アカウントに自動化の作成と使用に必要な権限があることを確認するには、プロジェクトに対する次の IAM ロールを Cloud Deploy サービス アカウントに付与するよう管理者に依頼します。
- IAM サービス アカウント ユーザー (
roles/iam.serviceAccountUser) - Cloud Deploy リリーサー (
roles/clouddeploy.releaser) - Cloud Deploy オペレーター (
roles/clouddeploy.operator)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、Cloud Deploy サービス アカウントに必要な権限を付与することもできます。
Cloud Deploy で分析を設定する
デプロイ分析の構成は、次の手順で行います。
デリバリー パイプラインで分析ジョブを構成します。
パイプラインを実行して分析を実行します。
アラート ポリシーを定義する
アラート ポリシーを定義して、Google Cloud Observability から指標を受け取ります。Google Cloud Observability アラート ポリシーは、モニタリング データが指定された条件を満たしたときに通知を受け取るタイミングと方法を記述します。
Cloud Deploy 分析では、これらのアラートを使用して、アラートが示す状況に基づいて実践します。
たとえば、本番環境のアプリケーションにアラート ポリシーを設定して、HTTP レスポンスのレイテンシが高すぎる場合にアラートを送信できます。そのアラートに基づいて、分析ジョブが repairRolloutRule 自動化をトリガーしてリリースをロールバックできます。
別の例として、ステージング環境にデプロイされたアプリケーションに同様のアラート ポリシーを作成できます。分析ジョブの実行中にアラートが発生しなかった場合、そのジョブは promoteReleaseRule 自動化をトリガーして、リリースを本番環境に昇格させることができます。
分析を作成する
アプリケーションのデリバリー パイプラインの分析ジョブを作成するには、パイプラインの構成内でその分析を構成し、その構成ファイルを適用します。
分析ジョブを構成する
このセクションでは、Google Cloud Observability で使用する Cloud Deploy 分析ジョブを構成する方法について説明します。
分析ジョブは、strategy スタンザ内のデリバリー パイプライン定義の一部として構成されます。これは、canary または standard の任意の戦略内に配置できます。フェーズごとに分析を構成する場合は、カスタム カナリア(strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)を使用します。
分析ジョブは、次の要素で構成されます。
期間
この期間は、分析ジョブの実行期間を指定します。期間が終了し、Google Cloud Observability からアラートが検出されない場合、分析は成功と見なされ、ロールアウトが続行されます。
1 つ以上のチェック(モニタリング システムのアラート ポリシーに対応)
各チェックには次のものが含まれます。
ID
1 つ以上のアラート ポリシー
つまり、1 つ以上の Google Cloud Observability アラート ポリシーへの参照です。
- 特定のアラート ポリシーを識別するために使用される 1 つ以上のラベル。Google Cloud Observability のアラート ポリシーは多くのアプリケーションをモニタリングできるため、これらのラベルを使用すると、1 つ以上の特定のアプリケーションにチェックを制限できます。
ここでは、システム パラメータをラベルのキーとして使用できます。
standard デプロイ戦略を使用する場合の分析ジョブの構成構文は次のとおりです。
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
ここで
DURATION分析ジョブを実行する時間(秒単位)。期間が経過すると、ジョブは終了します。分析が失敗した場合(コンテナがゼロ以外の終了コードを返した場合)、ジョブは期間が終了する前に終了します(
FAILED)。CHECK_ID分析の個々のチェックの ID。各 ID は、この分析ジョブ内で一意である必要があります。1 つの分析ジョブに 1 つ以上のチェックを含めることができます。
ALERT_POLICY_IDチェックに使用している Google Cloud Observability アラート ポリシーのポリシー ID です。アラート ポリシー ID を確認するには、
gcloud monitoring policies listを実行します。完全修飾 ID が必要です。これは次のようになります。projects/project-redacted/alertPolicies/01234567890123456789返される識別子には、ポリシー ID の後に
/conditions/13842666848149128276が含まれる場合があります。これはポリシー ID の一部として含めないでください。KEYとVALUE特定の警告のみを考慮するために使用されるラベルの Key-Value ペアです。たとえば、特定のワークロードのアラートのみをチェックで考慮するようにラベルを使用できます。
ここでは、システム パラメータを値として使用できます。
システム パラメータを使用する例を次に示します。
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
この構成により、分析ジョブが作成されます。複数のチェックがありますが、この構成では 1 つのジョブのみが作成されます。
構成されたアラート ポリシーのいずれもアラートを送信しない場合、このジョブは成功し、ロールアウトが続行されます。ポリシーがアラートをトリガーすると、ジョブは FAILED 状態で停止し、ロールアウトは失敗します(ジョブの失敗を無視することを選択しない限り、FAILED 状態になります)。
デリバリー パイプライン構成ファイルを適用する
分析ジョブを含む配信パイプラインを作成するには、次のコマンドを使用して構成ファイルを適用します。
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
次のように置き換えます。
FILEデリバリー パイプライン構成ファイルの名前(
clouddeploy.yamlなど)を指定します。REGIONデリバリー パイプラインを作成するリージョン。
PROJECT_IDこのデリバリー パイプラインを作成するプロジェクトの ID。
これで、プロジェクトにデリバリー パイプラインと分析ジョブが作成されました。これらは、リリースを作成するときにパイプラインの一部になります。
次のステップ
クイックスタート: 指標を使用してアプリケーションを分析するを試す。
分析の構成スキーマについては、Cloud Deploy 構成リファレンスをご覧ください。
デプロイの自動化について学習する。
デプロイ戦略の詳細を確認する。