このドキュメントでは、モニタリング システムとして 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 つ以上のチェックを設定できます。
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 構成リファレンスをご覧ください。
デプロイの自動化について学習する。
デプロイ戦略の詳細を確認する。