Cloud Deploy で分析ジョブを実行する

Cloud Deploy を使用すると、選択したモニタリング プラットフォームと指標を使用して、デプロイされたアプリケーションのパフォーマンスを分析できます。これらの分析の結果を使用して、デプロイの自動ロールバックなどのアクションを実行できます。

Cloud Deploy は Google Cloud Observability をサポートしており、DatadogPrometheus などの他のモニタリング プラットフォームをサポートするように拡張できます。

Cloud Deploy には、デプロイの検証に使用できる任意のコンテナを実行するデプロイ検証が用意されていますが、分析では、Google Cloud Observability または選択したモニタリング サービスから取得したテレメトリー データを使用して、アプリケーションのパフォーマンスを長期にわたって評価できます。

分析ジョブは、任意のターゲット環境(ステージングや本番環境など)で実行できます。

サポートされている指標プロバイダ

Cloud Deploy は、次のいずれかの方法で提供される指標を使用した分析をサポートしています。

  • Google Cloud Observability のテレメトリーとログに基づく、Google Cloud Observability のアラート ポリシーとの直接統合

  • Google 以外の指標システム(Prometheus や Datadog など)との統合

    このタイプのカスタム分析では、特定の指標システムをサポートする機能を含むコンテナを組織が提供する必要があります。

    Google Cloud は、Datadog との統合のサンプルを提供しています。

Cloud Deploy 分析の仕組み

このセクションでは、Google Cloud Observability アラート ポリシーを使用して Cloud Deploy 分析がどのように機能するかについて説明します。組織で別の指標プロバイダを使用するカスタム コンテナを作成する場合、この機能の一部はカスタム コンテナによって処理されます。

  • 任意の指標システムで指標を構成します。

    Cloud Deploy は、カスタマイズなしで Google Cloud Observability をサポートしています。テレメトリーを処理するカスタム コンテナを作成して、任意の指標プロバイダを使用することもできます。

    詳細

  • アラート ポリシーを構成する

    Google Cloud Observability を使用してテレメトリーを収集している場合は、アラート ポリシーを使用して、テレメトリーが問題を示しているかどうかを検出できます。

    別の指標プロバイダを使用している場合、アラートは、そのツールまたはカスタム コンテナのいずれかの責任となります。

  • 分析ジョブを構成する

    これは、配信パイプラインの構成ファイルanalysis スタンザで構成されます。

    分析ジョブは 1 つ以上の分析チェックで構成されます。各チェックでは、Google Cloud Observability または指標プロバイダのログや指標に基づいて、デプロイされたアプリケーションの動作を評価します。分析ジョブは指定された期間実行されます。

  • アプリケーションのデプロイ

    分析ジョブは、デプロイジョブの後、リリースに検証ジョブが含まれている場合は検証ジョブの後に実行されます。リリースにデプロイ後のジョブが含まれている場合は、その前に実行されます。

  • 分析ジョブの実行

    アプリケーションがデプロイされると(検証ジョブがある場合は、検証ジョブが完了した後)、指標プロバイダは実行中のアプリケーションのテレメトリーを収集します。分析ジョブは、構成した時間(duration)待機します。アラートがトリガーされた場合(指標プロバイダとして Google Cloud Observability を使用している場合)、またはカスタム コンテナがゼロ以外の終了コードを返した場合、分析ジョブは失敗し、ロールアウトも失敗します。

    どのチェックでも問題が検出されなかった場合、分析は期間の経過後に終了し、ロールアウトは成功します。

自動化で分析を使用する

分析ジョブで使用する自動化を指定できます。

たとえば、アプリケーションを staging にデプロイした後で分析を実行し、分析がアラートなしで完了した場合はリリースを prod に自動的にプロモートする場合は、promoteReleaseRule 自動化を使用できます。

また、分析ジョブで prod の問題が検出された場合にリリースを自動的にロールバックする場合は、repairRolloutRule 自動化を使用できます。

分析ジョブを使用し、そのメリットを享受するために自動化は必要ありません。

カスタム分析

Cloud Deploy 分析は、Google Cloud Observability のアラートと指標をサポートしています。ただし、Google Cloud以外の指標プロバイダで Cloud Deploy 分析を使用することもできます。

カスタム分析の構成は、標準分析の構成と似ています。ただし、分析の各チェックには、ユーザーが提供するコンテナを参照するタスク、そのコンテナで実行するコマンド、そのコンテナに渡す適用可能な環境変数が含まれます。このカスタム分析の各チェックには、チェックの実行頻度も含まれています。

詳細

カナリアを使用した分析

Cloud Deploy 分析の一般的な用途は、カナリア デプロイ戦略です。カナリアでは、Google Cloud Observability または選択したプロバイダの指標を使用して、ロールアウトを次のフェーズに進めるかどうかを判断できます。

また、分析で advanceRolloutRule 自動化を使用することもできます。たとえば、カナリア フェーズの stableに、分析ジョブを含めて稼働時間を確保し、その分析の結果に応じて、自動化を使用してロールアウトを stable に進めるかどうかを決定できます。

カスタムまたはカスタム自動カナリア デプロイを使用する場合は、分析する各フェーズの構成内で分析ジョブを構成します。

カナリア デプロイの詳細を確認する。

分析ジョブの実行状態

分析のジョブ実行のステータスは次のいずれかになります。

  • IN_PROGRESS

    分析は開始され、まだ実行中です。ロールアウトは、キャンセルしない限り IN_PROGRESS のままです。

  • FAILED

    分析ジョブで Google Cloud Observability からのアラートが検出されたか、カスタム コンテナからゼロ以外の終了コードが返されました。ロールアウトの状態が FAILED になりました。ただし、分析ジョブを無視または再試行すると、ロールアウトの状態が IN_PROGRESS に更新されます。

  • SUCCEEDED

    分析が終了し(duration の有効期限が切れた)、不利な指標は検出されませんでした。他のすべてのフェーズとジョブが完了すると、ロールアウトの状態が SUCCEEDED に変わります。

次のステップ