Google App Engine(GAE)でWebアプリケーションを開発する手法を親しみやすいストーリー仕立てで解説。
Google Cloud Platform(GCP)のプレミアムパートナーである株式会社トップゲートが、Webアプリケーションを開発する上で主なアーキテクチャとして採用しているGoogle App Engine(GAE)とその周辺サービスの活用方法について、親しみやすいストーリー仕立てで紹介します。
本書は、「サーバーレス」という概念が企業に浸透する以前からフルマネージドなアプリケーション構築基盤として洗練を続けたGAEが、テクノロジーの進化に伴い複雑化している要件にも柔軟に適合できることを、開発シミュレーションを通してわかりやすく読者の皆様にお伝えします。トップゲートの新入社員用入門書として配布することも想定していますので、クラウドを活用したアプリケーション開発に親しみのないエンジニアにとっても、良い導入となるでしょう。
次のような方を対象読者と想定しています。
* GCPを活用したWebアプリケーションの開発方法について学びたい方
* GCPのアプリ開発基盤に関する基礎を学びたい方
* GAEについて具体的な利用方法を学びたい方
* クラウドの開発基盤としてGCPを検討中の方
■執筆者紹介
・キム ハンソル、担当:3.4「アプリケーションのテスト」。バイオリンが好きなエンジニア
・工藤 雅人(くどう まさと)、担当:前書き、後書き、会話文他、第1章「人物紹介とプロジェクト概要」、3.3「フロントエンドの開発」。2児の父、フルスタックエンジニア(もどき)
・白川 舞(しらかわ まい)、担当:3.2「サーバサイドの開発」、3.5「アプリケーションのデプロイ」。スーパー銭湯を愛するエンジニア
・田中 有作(たなか ゆうさく)、担当:第2章「[基礎] プラットフォームの選択」、4.2「認証機能」。カメラいじりが好きなエンジニア
・對馬 直哉(つしま なおや)、担当:前書き、第1章「人物紹介とプロジェクト概要」、2.1「開発環境の準備」。30歳パパエンジニア
・原 隆太(はら りゅうた)、担当:3. 2「サーバサイドの開発」、第4章「[ 応用] 運用・パフォーマンス改善」、終わりに。App Engineしかできないエンジニア
・渡邊 成樹(わたなべ しげき、担当:第4章「[応用] 運用・パフォーマンス改善」。CIしかできないエンジニア
はじめに
本書について
Chapter 1 人物紹介とプロジェクト概要
1.1 クラウド活用プロジェクト始動!
1.2 登場人物紹介
1.3 システムの要件を決める
Chapter 2 [基礎]プラットフォームの選択
2.1 アプリケーション層の検証
2.1.1 サーバレスプラットフォーム
2.1.2 サーバレス以外のプラットフォーム
2.2 永続化の検証
2.2.1 構造化データのためのストレージサービス
2.2.2 非構造化データのためのストレージサービスとBigQuery
2.2.3 永続化層の選択指針
2.3 アーキテクチャの決定
2.3.1 アーキテクチャパターン
Chapter 3 [基礎]開発とリリース
3.1 開発環境の準備
3.1.1 Google Cloud SDKの使用方法
3.1.2 Cloud Shellによるアプリケーション開発
3.2 サーバサイドの開発
3.2.1 App Engineランタイム
3.2.2 サンプルコードを動かしてみよう
3.2.3 必要な設定を追加しよう
3.3 フロントエンドの開発
3.3.1 静的コンテンツの配信
3.3.2 シングルページアプリケーションの開発
3.4 アプリケーションのテスト
3.4.1 Cloud Emulator を使ってみよう
3.4.2 クラウドサービス間の統合テスト:Cloud Pub/Sub & Cloud Datastore
3.4.3 単体テスト:Cloud Bigtable エミュレータ
3.4.4 エミュレータ以外:サービススタブ
3.4.5 エミュレータ以外:バージョンフラグ
3.5 アプリケーションのデプロイ
3.5.1 GAEのデプロイの特徴
3.5.2 サンプルコードをデプロイしてみよう
Chapter 4 [応用]運用・パフォーマンス改善
4.1 CI/CDの導入
4.1.1 Cloud Build
4.1.2 Cloud Buildによるテストの自動化
4.1.3 Cloud Buildによるデプロイの自動化
4.2 認証機能
4.2.1 Cloud Identity-Aware Proxy
4.3 ロギング
4.3.1 Stackdriver Loggingでログを見てみよう
4.3.2 アプリケーションログを出力しよう
4.3.3 BigQueryにログをエクスポートしよう
4.3.4 まとめ
4.4 アラート通知
4.4.1 Stackdriver Monitoringアラートポリシーを活用しよう
4.4.2 Stackdriver Error Reportingでエラーを管理しよう
4.4.3 まとめ
4.5 パフォーマンスの劣化と問題特定
4.5.1 Stackdriver Traceで問題を発見しよう
4.5.2 Stackdriver Profilerでリソースを消費している処理を発見しよう
4.5.3 App Engineダッシュボード
4.5.4 まとめ
4.6 パフォーマンス改善のソリューション
4.6.1 時間のかかる処理を非同期で実行しよう
4.6.2 逐次的に処理を実行しよう
4.6.3 タスクをスケジューリングしよう
4.6.4 まとめ
4.7 社内システムとの連携
4.7.1 プロキシサーバを経由させよう
4.7.2 イベント処理で外部システムからメッセージを受け取ろう
4.7.3 まとめ
おわりに