App Engine 向けリリース チェックリスト

はじめに

Google App Engine は、Google Cloud Platform でのアプリケーションのビルドと実行を可能にする Platform as a Service(PaaS)です。App Engine アプリケーションはビルドやメンテナンスがしやすく、トラフィックやデータ ストレージのニーズの変化に応じたスケーリングも容易です。多くの企業が Google App Engine でのアプリケーションのリリースに成功しています。

この「App Engine 向けリリース チェックリスト」は、Google App Engine で商用アプリケーションをリリースする場合のベスト プラクティスを示しています。App Engine に習熟しているエンタープライズ デベロッパーの方を対象としています。App Engine の使用を開始したばかりのユーザー向けの基本的な使用方法の説明は含まれていません。新規ユーザーの方はまず、App Engine 開始チュートリアルから始めてください。

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

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

アプリケーションのリリース準備では、このページのセクションの順序でチェックを行うことをおすすめします。たとえば、「アーキテクチャの設計と開発のチェックリスト」の手順から開始します。この手順では、アプリケーション開発の初期段階で推奨される作業を取り上げています。同様に、リリースが近付いた時期に推奨する作業については、「試験リリース チェックリスト」をご覧ください。なお、チェックリストに挙げられている作業の正確な実施時期とその所要時間は、実際のアプリケーション開発日程に応じて異なります。

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

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

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

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

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

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

作業内容
❑  
スケールを考慮して設計するためのベスト プラクティスのドキュメントをお読みください。このドキュメントでは、負荷がかかると問題を発生させる可能性がある、App Engine API 使用のアンチパターンを挙げています。
❑  
アーキテクチャの概要を作成します。アーキテクチャ全体図、プロセスフローの概要、サービス連絡窓口の情報を記載します。Google Cloud Platform サービスの使い方をリストにし、説明します。実験的な Google API、Cloud Platform 以外の Google API、サードパーティ API の使用についても記載します。
❑  
ビルドとリリース、構成、セキュリティ管理プロセスを文書化します。
❑  
所定のバックアップ作業、定期保守、災害復旧プロセスを文書化します。実際のデータを使用して、復元プロセスをテストします。完全復旧に要する時間を計算し、災害復旧プロセスに反映させます。
❑  
社内のサポート システムを Google のサポートと統合する必要がある場合は特に、DevOps プロセスを文書化します。また、システムのモニタリングと警告プロセスを文書化し、定義します。DevOps が Google Cloud Platform Console について習熟しており、確実にテストに参加するようにしてください。クラウド ステータス ダッシュボードをモニタリングします。App Engine のダウンタイム通知グループに登録します。

Google との連絡窓口の設定

作業内容
❑  
緊急時の Google の連絡先を設定し、テストします。
❑  
Google Cloud サポート センター(GCSC)の利用をチーム全体に浸透させます。
  • ウェブとメールの連絡先オプションを構成し、購入したサポートレベルによっては電話サポート プロセスも構成します。
  • テストは週末や夜間に実施します。
  • Google への連絡方法をチーム全員が知っているようにします。

プロビジョニング

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

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

作業内容
❑  
ソリューション全体と全サブコンポーネントのトラフィック予測を計算します。
❑  
リリースプランを作成し、リリースの根拠となる資料として残すようにしてください。必要なプロセスと資料を参照したものであることが必要です。
❑  
テスト計画を作成します。本番環境のサービスに対するデプロイ コードを含むテストを必ず組み入れるようにしてください。テストを繰り返します。可能な限り、作成するテストの設定を現実的にすると同時に、スタッフとプロセスも増やしてください。
❑  
負荷テスト計画を作成します。毎回、Google Cloud Platform プロジェクトを「リセット」(例: Cloud Datastore エンティティを削除)します。世界的にリリースする場合は、リリースする範囲でのテストを行ってください。プロダクトを使用するためにユーザー登録が必要な場合は、新規ユーザー登録フローの負荷テストを必ず行ってください。
❑  
割り当ての分析を完了します。割り当てについて理解し、割り当ての詳細をモニタリングします。また、GCSC でサポート チケットを申請して割り当ての調整をリクエストします。
❑  
AppStats(Java | Python)を使用して、アプリケーションのリモート プロシージャ コールのパフォーマンス プロファイリングを強化します。必要に応じてこれをオンまたはオフにする機能を組み込みます。

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

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

作業内容
❑  
App Engine SDK のバージョンとリリース ノートを最新の状態に維持します。現在の App Engine のリリースは、デベロッパー コンソールの App Engine ダッシュボードに表示されます。
❑  
トラフィックの予測を見直します。
❑  
現在のアプリケーション ログに基づいて、リリースプランを見直します。
❑  
トラフィック予測に基づいて割り当て分析を見直し、サポート チケットを申請して割り当ての調整をリクエストします。
❑  
実装するソリューションも Google Cloud Platform も継続的に進化しているため、負荷テストを少なくとももう一度行います。
❑  
ステップバイステップのデプロイ スクリプトとテストを作成します。その目的は、検証可能で再現性がある包括的なビルドとリリースのプロセスガイドを文書化することです。
❑  
現在のシステムのモニタリングとアラートが十分かつ効果的であることを検証します。
❑  
大規模な停止をシミュレートし、障害復旧プロセスをテストします。できるだけ多くのスタッフで多くのプロセスをテストします。
❑  
データセンターの障害、サービスの障害、データ損傷などのイベントをシミュレートします。大規模な想定外のイベントに備えます。
❑  
ビルドとリリースの障害をシミュレートします。効果的にロールバックできるか、プロセスが文書化されているかを確認します。
❑  
構成管理の障害をシミュレートします。何が障害の原因か、その原因を引き起こす可能性のある別の要因すべてをどう解消するか、問題点を特定して解決するための時間を短縮することができるかを確認します。
❑  
すべての項目についてテストを複数回行います。テストに携わったスタッフやマシンを記録しておき、障害が起きた場所や文書化されていない作業を特定できるようにします。

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

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

作業内容
❑  
デプロイ スクリプト全体を実行します。エラーや抜けが発生したら修正します。デプロイに必要なすべての手順を文書化します。AppStat(Java | Python)フラグをテストします。
❑  
トラフィック予測の 1.5 倍から 2 倍の負荷テストを行います。
❑  
発生する問題の優先順位を付け、解決します。実際のコストと比較してコストモデルを見直します。運用コストが費用制限内に収まることを確認します。必要に応じて、コストモデルを見直します。
❑  
コストを削減する方法を見極め、検証します。

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

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

作業内容
❑  
デプロイ スクリプト全体を実行します。問題が発生するたびに文書化し、対応します。
❑  
必要に応じて、チームメンバー全員が問題点の優先順位を付け、解決に携われるようにしておいてください。
❑  
App Engine で過度に控えめな費用制限を設定していないかどうか注意してください。アプリが費用制限を超えると、アプリは停止されます。詳細については、費用制限をご覧ください。
❑  
リリース後、今後の参考となる情報を記録し、関連する文書と手順をすべて更新します。継続的な改善に重点的に取り組んでください。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

App Engine ドキュメント