デベロッパー プラットフォームとアプリケーションの両方の運用

Last reviewed 2024-04-19 UTC

デベロッパー プラットフォームとコンテナ化されたアプリケーションを運用するには、さまざまな管理タスクを継続的に行う必要があります。このようなタスクには、テンプレートからの新しいアプリケーションの作成、新しいデベロッパー グループによるデベロッパー プラットフォームの使用の承認、容量のニーズの計画、ランタイムの問題のデバッグなどがあります。

運用は自動化することも、手動で実行することもできます。

一般的な自動運用

このブループリントは、単純な API タイプである Webhook トリガーの形式での最も一般的なタスクの自動化を示します。トリガーは、ソース コントロール リポジトリの 1 つで生じた Webhook イベントに自動的に接続されます。デベロッパー プラットフォーム開発者は、他のトリガーを接続できます。通常は、デベロッパー プラットフォーム開発者がデベロッパー ポータルを作成します。デベロッパー ポータルは、フォームの送信時に Webhook トリガーを呼び出す単純なウェブフォームにすることができます。

次の表に、ブループリントが Webhook トリガーを使用して自動化する一般的なタスクを示します。タスクの頻度はさまざまな要因に左右されるため、ここでの説明は一例にすぎません。タスクは必ずしも正確な間隔で繰り返されるわけではありません。

タスク ユーザー 説明 タスクの頻度

テナントを追加する。

デベロッパー プラットフォーム管理者

管理者がデベロッパー ポータルでフォームを送信します。新しいテナント フォーム フィールドには、テナント名とチームメンバーが含まれます。自動トリガーにより、新しいテナントのリソースが作成されます。

年に数回

既存のアプリケーション テンプレートに基づいてアプリケーションを追加する。

アプリケーション デベロッパー

デベロッパーがデベロッパー ポータルでフォームを送信します。新しいアプリケーション フォーム フィールドには、テナント名、アプリケーション名、ベース アプリケーション テンプレートが含まれます。自動トリガーにより、新しいアプリケーションのリソースが作成されます。

年に数回

アプリケーションのソースコードの変更をビルドして、開発環境にデプロイする。

アプリケーション デベロッパー

デベロッパーがソースコードを編集し、ローカルでコードを実行してテストしてから、コードを commit します。ブループリントはローカル デベロッパー ワークフローには関与しませんが、Skaffold ツールはローカルビルド ステップをサポートします。

アプリケーションごとに 1 日に数回

アプリケーションの YAML 構成の変更を開発環境にデプロイする。YAML 構成の変更の例として、デプロイ リソースの CPU の追加があります。

アプリケーション デベロッパー

デベロッパーがアプリケーション構成を編集して、変更を commit します。

アプリケーションごとに週に数回

アプリケーション インフラストラクチャの変更を開発環境にデプロイする。アプリケーション インフラストラクチャは、アプリケーションのプロジェクト内のクラウド リソースです。変更の例として、AlloyDB for PostgreSQL インスタンスの CPU 数の追加があります。

アプリケーション デベロッパー

デベロッパーがアプリケーション リソースの Terraform プロジェクトを編集して、変更を commit します。デベロッパーがデベロッパー ポータルでフォームを送信します。自動トリガーにより、プランが開始され、パイプラインが適用されます。

年に何度も

アプリケーションの変更を開発環境から非本番環境に(または非本番環境から本番環境に)昇格させる。アプリケーションの変更には、新しいアプリケーション イメージやアプリケーションの YAML 構成の変更が含まれる場合があります。

アプリケーション オペレーター

オペレーターが、変更を開発環境ブランチから非本番環境ブランチに(または非本番環境ブランチから本番環境ブランチに)マージします。オペレーターはロールアウトを監督します。

アプリケーションごとに週に数回

アプリケーション インフラストラクチャの変更を開発環境から非本番環境に(または非本番環境から本番環境に)昇格させる。

アプリケーション オペレーター

オペレーターが、選択した変更を開発環境ブランチから非本番環境ブランチに(または非本番環境ブランチから本番環境ブランチに)マージします。オペレーターはロールアウトを監督します。

アプリケーションごとに四半期に数回

一般的な手動運用

デベロッパー プラットフォームの運用の中には、本質的にあまり構造化されておらず、デベロッパー プラットフォームでの自動化を使用しないものもあります。このブループリントに基づいて独自のハンドブックを作成し、Google Cloud コンソールでこれらのタスクを実行できます。

次の表に、これらの自動化されていないタスクを示します。タスクの頻度はさまざまな要因に左右されるため、ここでの説明は一例にすぎません。タスクは必ずしも正確な間隔で繰り返されるわけではありません。

タスク ユーザー 説明 タスクの頻度

新しいアプリケーション テンプレートを定義する。

デベロッパー プラットフォーム開発者

デベロッパーは、ブループリント テンプレートに基づくアプリケーション テンプレートを変更するか、テンプレートを新しい言語に移植します。

年に数回

開発環境でサービスのランタイム エラーを調査する。

アプリケーション デベロッパー

デベロッパーは、Google Cloud コンソールのログ エクスプローラと Metrics Explorer を使用して、テナントとアプリケーションのエラーログ、モニタリング指標、時系列データを確認します。

月に数回

本番環境または非本番環境でサービスのランタイム エラーを調査する。

アプリケーション オペレーター

オペレーターは、Google Cloud コンソールのログ エクスプローラと Metrics Explorer を使用して、テナントとアプリケーションのエラーログ、モニタリング指標、時系列データを確認します。

月に数回

ビルドエラーを調査する。

アプリケーション デベロッパー

デベロッパーは、ビルド ステータスやログなどの Cloud Build の履歴を Google Cloud コンソールに表示します。

週に数回

開発環境でデプロイエラーを調査する。

アプリケーション デベロッパー

デベロッパーは、Google Cloud コンソールに Cloud Deploy のリリースとロールアウトの履歴を表示して、デプロイ試行の成功ステータスとログ(エラーを含む)を確認します。

月に数回

非本番環境と本番環境でデプロイエラーを調査する。

アプリケーション オペレーター

オペレーターは、Google Cloud コンソールに Cloud Deploy のリリースとロールアウトの履歴を表示して、デプロイ試行の成功ステータスとログ(エラーログを含む)を確認します。

月に数回

クラスタに接続して GKE の問題をデバッグする。

デベロッパー プラットフォーム管理者

管理者は、Connect Gateway を使用して限定公開クラスタに接続します。スケジュールされていない Pod などの一般的な問題については、管理者が Google Cloud コンソールで一般的な問題(スケジュールされていない Pod など)に関する情報を確認できます。

月に数回

容量を計画し、費用を最適化する。

デベロッパー プラットフォーム管理者

管理者は、Google Cloud コンソールでスコープまたは Namespace ごとに集計された GKE リソースの使用率を確認します。

毎月繰り返すタスクとしてスケジュールされる。

ノードプールをサイズ変更、追加、削除する。

デベロッパー プラットフォーム管理者

管理者は、必要に応じて IaC を編集し、アプリケーションを再デプロイします。

容量の計画に応じて行われる。

セキュリティ対策を確認する。

デベロッパー プラットフォーム管理者

管理者は、GKE のセキュリティ ポスチャー ダッシュボードを使用して、脆弱性と標準の遵守を確認します。

毎月繰り返すタスクとしてスケジュールされる。

クラスタのシステム ソフトウェア バージョン(Kubernetes のバージョンなど)をアップグレードする。

デベロッパー プラットフォーム管理者

管理者は GKE のメンテナンスの時間枠と除外を使用して、計画された時間でのアップグレードのみ許可します。管理者は、まず開発環境で開いているアップグレード ウィンドウを使用します。アップグレードの状態を評価した後、非本番環境をアップグレードしてから本番環境をアップグレードします。

四半期ごとに繰り返すタスクとしてスケジュールされる。

クラスタの重要なセキュリティ アップデートをインストールする。

なし

GKE により自動的に行われます。

年に数回

リージョン フェイルオーバーをテストする。

デベロッパー プラットフォーム管理者とアプリケーション管理者

管理者は、必要に応じて環境のリージョン フェイルオーバーをスケジュールし、手動で開始します。

障害復旧演習の一環として年 1 回

リージョンを追加する。

デベロッパー プラットフォーム管理者、デベロッパー プラットフォーム開発者、アプリケーション管理者

デベロッパー プラットフォーム管理者は、新しいリージョンに追加の GKE クラスタをデプロイします。管理者は、アプリケーション テンプレートを更新して、関連する環境の新しいデプロイ ステップを追加します。次に、アプリケーション オペレーターが変更を統合して、新しいリージョンを含むデプロイ シーケンスを追加します。

ほとんどない

新しいリージョンに移動する。

デベロッパー プラットフォーム管理者、デベロッパー プラットフォーム開発者、アプリケーション管理者

ユーザーがリージョンを追加するの説明に従って新しいリージョンを追加します。新しい構成をテストした後、ユーザーは古いリージョンを削除します。

ほとんどない

次のステップ