Google Cloud Platform 用リリース チェックリスト

はじめに

この「リリース チェックリスト」は、Google Cloud Platform で商用アプリケーションを運用する場合のベスト プラクティスを示しています。Google Cloud Platform とサービスに関して十分な知識があり、アプリケーションをリリースするためのガイダンスを求めている企業のデベロッパーを対象に作られたものです。

App Engine のリリース チェックリストなど、一部の Google Cloud Platform サービスにはサービス固有のリリース チェックリストが用意されています。 詳細なガイダンスについてはサービス固有のチェックリストを使用し、全体的なガイダンスについてはこの Google Cloud Platform 用リリース チェックリストを使用してください。

Google Cloud Platform を使い始めたばかりの方は、Google Cloud Platform の概要をご覧になるか、無料トライアルを開始してください。特定のサービスに慣れるには、App Engine のチュートリアル、Compute Engine クイックスタート、Cloud Storage クイックスタートなど、そのサービスのクイックスタートをお試しください。

この「リリース チェックリスト」は、5 つのセクションに分かれています。

  • アーキテクチャの設計と開発
  • アルファ版テスト
  • 試験リリース
  • 最終リリース
  • リリース後

これらのセクションは、アプリケーションのリリースに向けた準備の中でおすすめする使用順序に沿って記述されています。たとえば、まず「アーキテクチャの設計と開発チェックリスト」から開始します。この手順では、アプリケーション開発の初期段階で推奨される作業を記載しています。同様に、リリースが近付いた時期に推奨する作業については、「試験リリース チェックリスト」をご覧ください。ただし、チェックリストの作業の正確なタイムラインと完了までの所要時間は、リリースするアプリケーションの種類や対応する社内リソースによって異なります。

この「リリース チェックリスト」は、製品のリリースを円滑に進め、ユーザー体験を高めるために作られています。これらのチェックリストを利用して、Google Cloud Platform で実行される新規および既存アプリケーションの検証作業を行うことをおすすめします。

アーキテクチャの設計と開発のチェックリスト

このチェックリストは、アプリケーション開発の初期段階で使用することをおすすめします。このチェックリストは、4 つの作業グループに分かれています。

  • ソフトウェア アーキテクチャ関連の作業
  • Google との連絡窓口の設定
  • プロビジョニング
  • リリースプランとトラフィック予測の作成

各グループに対するチェックリスト作業を並行して進めてもかまいませんが、ソフトウェアのアーキテクチャに関連する作業は完了に時間がかかるため、可能な限り早い段階で実施することをおすすめします。

ソフトウェア アーキテクチャ関連の作業

作業内容
❑  
アーキテクチャの概要を作成します。アーキテクチャ全体図、プロセスフローの概要、サービス連絡窓口の情報を記載します。Google Cloud Platform サービスの使い方を一覧表示し、説明します。実験的な Google API、Cloud Platform 以外の Google API、サードパーティ API の使用についても記載します。
❑  
ビルドとリリース、構成、セキュリティ管理プロセスを文書化します。 可能な部分は、自動化します。
❑  
所定のバックアップ作業、定期保守、障害復旧プロセスを文書化します。 実際のデータを使用して、復元プロセスをテストします。完全復旧に要する時間を計算し、障害復旧プロセスに反映させます。
❑  
社内のサポート システムを Google のサポートと統合する必要がある場合は特に、DevOps プロセスを文書化します。 また、システムのモニタリングとアラート プロセスを文書化し、定義します。DevOps 担当者が Google Cloud Console に習熟していること、およびその人がテストに参加することを確認してください。クラウド ステータス ダッシュボードをモニタリングします。

Google との連絡窓口の設定

作業内容
❑  
Google Cloud サポートプランを購入し、Google での緊急連絡先を設定してテストします。
❑  
ウェブ / メールの両方、購入したサポートレベルによっては電話サポート プロセスなど、チーム全体で Google Cloud サポート センターに習熟します。 テストは週末や夜間に実施します。Google への連絡方法をチーム全員が知っているようにします。
❑  
問題をすみやかに解決し、作業のダウンタイムを最小限に抑えるために、Cloud Support へサポート チケット(特に P1 サポート チケット)を提出した後に追加情報を要求された場合に迅速に対応するプロセスを用意しておいてください。 Google の分析では、お客様の更新を待機する予測時間は、解決までの合計時間のほぼ 30% です。

プロビジョニング

作業内容
❑  
各開発環境(例: 開発、テスト、本番)用の Google Cloud Platform プロジェクトをプロビジョニングします。
❑  
Google Cloud Platform のお支払いを有効にし、コストをモデル化します。 詳細については、料金計算ツールをご覧ください。
❑  
ドメインと証明書をプロビジョニングします。Google Apps 管理コンソールを使用して、証明書をインストールします。詳細については、カスタム ドメインの SSLカスタム ドメインの SSL 証明書の設定をご覧ください。
❑  
その他に必要な Google とサードパーティのサービスをプロビジョニングします。これらのサービスは、リリース プロセスで説明した作業内容に含める必要があります。

リリースプランとトラフィック予測の作成

作業内容
❑  
ソリューション全体と全サブコンポーネントのトラフィック予測を計算します。
❑  
リリースプランを作成し、リリースの根拠となる資料として使用します。 必要なプロセスと資料を参照したものであることが必要です。
❑  
テスト計画を作成します。本番環境のサービスに対する導入コードを含むテストを必ず含めるようにしてください。テストを繰り返します。可能な限り、作成するテストの設定を現実的にすると同時に、スタッフとプロセスも増やしてください。
❑  
負荷テスト計画を作成します。毎回、Google Cloud Platform プロジェクトを「リセット」(例: Cloud Datastore エンティティまたは Cloud Storage のバケットとオブジェクトを削除)します。また、海外のリリースに際しては、国際的なテストを行ってください。
❑  
割り当ての分析を完了します。割り当てについて理解し、割り当ての詳細をモニタリングします。また、割り当ての調整をリクエストします。

アルファ版テストのチェックリスト

コードが完成に近付き、目的のアプリケーションに関する指標が必要になった時点で、アルファ版テストのチェックリストを使用します。

作業内容
❑  
トラフィックの予測を見直します。
❑  
現在のアプリケーション ログに基づいて、リリースプランを見直します。
❑  
トラフィック予測に基づいて割り当て分析を見直し、割り当て調整をリクエストします。
❑  
ソリューションも Google Cloud Platform もほぼ継続して進化しているため、負荷テストは 1 回以上行ってください。
❑  
ステップ式の導入スクリプトとテストを作成します。検証可能で、再現性がある包括的なビルドとリリースのプロセスガイドを文書化するのが目的です。
❑  
現在のシステムのモニタリングとアラートが十分かつ効果的であることを検証します。
❑  
主な障害をシミュレートし、障害復旧プロセスをテストします。可能な限り、スタッフとプロセスを増やしてテストしてください。
❑  
データセンターの障害、サービスの不具合、データ損傷などのイベントをシミュレートします。 大規模な想定外のイベントに備えます。
❑  
ビルドとリリースの障害をシミュレートします。効果的にロールバックできるか、 プロセスが文書化されているかを確認します。
❑  
構成管理の障害をシミュレートします。何が障害の原因か、ループホールを解消した方法、問題点を特定、解決するための時間を短縮する方法を確認します。
❑  
すべての項目についてテストを複数回行います。テストに携わったスタッフやマシンを記録しておき、不具合が起きた場所や文書化されていない作業を特定できるようにします。

試験リリース チェックリスト

アプリケーションの商用リリースに先立ち、「試験リリース チェックリスト」を使用し、リリースに向けた準備体制をテストすることをおすすめします。

作業内容
❑  
デプロイ スクリプトを通じて実行します。エラーや抜けが発生したら修正します。デプロイに必要なすべての手順を文書化します。
❑  
トラフィックの見積もりの 1.5~2.0 倍の負荷テストを行います。
❑  
発生する問題の優先順位を付け、解決します。実際のコストと比較してコストモデルを見直します。運用コストが予算内に収まることを確認してください。必要に応じて、コストモデルを見直します。
❑  
コストを削減する方法を見極め、検証します。

最終リリース チェックリスト

リリース直前とリリース中は「最終的なリリース チェックリスト」を使用します。

作業内容
❑  
デプロイ スクリプトを通じて実行します。問題が発生するたびに文書化し、対応します。
❑  
必要に応じて、チームメンバー全員が問題点の優先順位を付け、解決に携われるようにしておいてください。

リリース後のチェックリスト

作業内容
❑  
今後の参考となる情報を記録し、関連文書をすべて更新します。
❑  
事後分析の文書を作成します。