june 3, 2019 updated: web アプリ開発 gcp のサーバーレスで · firebase...
TRANSCRIPT
![Page 1: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/1.jpg)
Updated: June 3, 2019
GCP のサーバーレスでWeb アプリ開発
![Page 2: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/2.jpg)
自己紹介
Kazuu (かずー) @kazshinohara
Google Cloud のカスタマーエンジニア。
デジタル系エンタープライズのお客様を担当。
得意分野はサーバーレスや DevOps など。
趣味は猫と写真と旅行。
![Page 3: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/3.jpg)
そもそもサーバーレスって?
No InfraManagement
Fully Managed Security
Pay only for usage
![Page 4: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/4.jpg)
GCP のサーバーレスはフルスタック
Compute
Data Analytics ML & AI
Database & Storage
Smart assistants &
chat
DevOps
Messaging
![Page 5: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/5.jpg)
Web アプリケーションを開発する際に考えること
1. コンピュート(アプリをどこで動かすか)
2. データベース
3. 非同期処理
4. 静的コンテンツ
5. コード管理・ビルド・デプロイ
6. モニタリング・ロギング・APM
![Page 6: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/6.jpg)
1. コンピュート
2. データベース
3. 非同期処理
4. 静的コンテンツ
5. コード管理・ビルド・デプロイ
6. モニタリング・ロギング・APM
Web アプリケーションを開発する際に考えること
![Page 7: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/7.jpg)
コンピュート
![Page 8: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/8.jpg)
GCP のサーバーレスコンピュート
App Engine
Apps
Cloud Functions
Functions
Cloud Run
Containers
NEW!
![Page 9: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/9.jpg)
https://cloud.google.com/serverless-options/?hl=en
サーバレスコンピュート公式使い分けチャート
![Page 10: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/10.jpg)
01Cloud Functions
![Page 11: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/11.jpg)
{}
イベントドリブンなサーバーレス コンピュート プラットフォーム
Cloud Functions
イベントドリブン
HTTPFirestorePub/SubCloud SchedulerCloud StorageFirebase
サーバーレス
サーバー管理なし
スケールアウトが高速
ゼロにまでスケールイン
パッチなどの更新なし
使った分だけ支払い
サポートランタイム
Node.js 6, 8, 10beta
Python 3.7Go 1.11, 1.12alpha
Java 8alpha
![Page 12: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/12.jpg)
Cloud Functions ユースケース例
①画像をアップロード
②関数をトリガー
③画像のラベリング
Cloud FunctionsCloud Storage Cloud Vision API
![Page 13: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/13.jpg)
使い所と気にすべき制約
使い所
Pub/Sub and/or Cloud Storage を使って
いる場合
ランタイム環境は管理したくない
データ処理 (ETL)
サービス間連携
気にすべき制約
関数レベルの粒度
イベント経由
ランタイム言語に縛り
![Page 14: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/14.jpg)
02App Engine
![Page 15: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/15.jpg)
高いスケーラビリティを持つサーバーレス Web アプリケーション
App Engine standard environment
管理が容易
サーバー管理なし
スケールアウトが高速
ゼロにまでスケールイン
パッチなどの更新なし
開発しやすい
アプリのコードに集中できる
バージョニング
トラフィックスプリット
サポートランタイム
Java
Python
Go
PHP
Node.js
Ruby alpha
{}
![Page 16: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/16.jpg)
App Engine ユースケース例
Back End AppApp Engine
Cloud Tasks
Front End AppApp Engine
In-memory cacheCloud Memorystore
Dynamic dataCloud Firestore
![Page 17: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/17.jpg)
スタンダード スタンダード 第2世代 フレキシブル
Python 2.7Java 8
PHP 5.5Go 1.9 and Go 1.11
Python 3.7PHP 7.2Node.js
Go 1.12 (beta)Ruby (alpha)
Node.js, Ruby, Java, Python, Go, PHP, .NET
& カスタムコンテナイメージ
サンドボックス化されたプロセスとして動作 マネージドのVM上で動作
GAE 独自の API + GCP のAPI GCP の API を直接呼び出し
バイナリモジュールや使えるライブラリに制約がある
エクステンションやバイナリ、ライブラリなど自由に利用可能
App Engine のランタイム
![Page 18: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/18.jpg)
App Engine で実現できる柔軟なデプロイ
v1 v2 v1 v2 A B
example.com example.com example.com
一気に切り替え 最初は少数だけ 並行稼働
ブルーグリーンデプロイメント
カナリアリリース
A / B テスト
![Page 19: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/19.jpg)
使い所と気にすべき制約
使い所
HTTP/S request-response
ステートレスなアプリケーション
急激なトラフィック増に耐えないと
いけないアプリケーション
気にすべき制約
スタンダード
● Runtimes for Python, Java, PHP, Go, Node
● HTTP/S only
フレキシブル
● Docker の制約を継承
● トラフィックが少ないサイトには不向き
![Page 20: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/20.jpg)
03Cloud Run
![Page 21: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/21.jpg)
Knativeopen source building blocks for serverless on Kubernetes
![Page 22: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/22.jpg)
Cloud Run
高速なデプロイ
ステートレスなコンテナ
言語やライブラリの制約なし
数秒でデプロイし URL を付与
サーバーレス ネイティブ
管理するサーバーはなし
コードに集中
高速に 0 to N スケール
きっちり使った分だけお支払い
高いポータビリティ
どこでも同じ Developer Experience フルマネージでも GKE のクラスタ上でも
Knative の一貫した API の一貫性
ロックインの排除
![Page 23: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/23.jpg)
Cloud Run完全にサーバーレス
管理するクラスタ無し
使った分だけお支払い
Cloud Run on GKEGKE のクラスタ上でサーバーレス
体験
費用は GKE のクラスタに含まれ
る
2 つの Cloud Run
![Page 24: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/24.jpg)
Cloud Run ユースケース例
サービング用データ準備
データのロード
メッセージの処理
重複排除 デコード データ判別
メッセージの取得
Http Webhook
Push
Webとしてサービング
スケジュール
IoT devices
![Page 25: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/25.jpg)
使い所と気にすべき制約
使い所
ステートレス
HTTP/S request-response workloads
スパイクが多い、読めないなど
Specific なランタイム要件や依存性
気にすべき制約
コンテナを必ず使わないといけない
ビルドプロセスを決めないといけない
![Page 26: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/26.jpg)
データベース
![Page 27: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/27.jpg)
In-memory RelationalNon-relational
Cloud Firestore
Cloud Memorystore
Cloud Bigtable
Cloud SQL
Cloud Spanner
Managed Redis Serverless, scalable document store
Managed MySQL & PostgreSQL
Scalable relational database
Low latency, scalable wide column store
Data warehouse
BigQuery
Enterprise data warehouse
GCP のマネージド データベースサービス
![Page 29: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/29.jpg)
In-memory RelationalNon-relational
Cloud Firestore
Cloud Memorystore
Cloud Bigtable
Cloud SQL
Cloud Spanner
Managed Redis Serverless, scalable document store
Managed MySQL & PostgreSQL
Scalable relational database
Low latency, scalable wide column store
Data warehouse
BigQuery
Enterprise data warehouse
GCP のマネージド データベースサービス
![Page 30: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/30.jpg)
01Cloud Firestore
![Page 31: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/31.jpg)
Cloud Firestore
● NoSQL データベース
● 強整合性
● 高い可用性
○ マルチリージョンで 99.999%
○ リージョナルで 99.99%
● 2 つのモード
○ ネイティブモード (Realtime)
○ Datastore モード
![Page 32: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/32.jpg)
Firebase SDK によるサポート
Firebase Auth
Security Rules
Cloud Functions
Firebase HostingApp + Client SDKs Cloud Firestore
![Page 33: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/33.jpg)
リアルタイムにデータを同期
データに変更があった時、リ
アルタイムに近い速度でデー
タを同期。マルチユーザー向
けのモバイルアプリに最適。
![Page 34: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/34.jpg)
Cloud Firestore のデータ構成
name: "Cloud Firestore について"description: "Cloud Firestore はフルマネージドな NoSQL データベースです"...
My First Note
name: "関連資料"description: "Cloud Firestore の関連資料"...
My Other Note
![Page 35: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/35.jpg)
iOS
Android
Web
Authentication3rd Party
Event Store
Writes
Real time updates
Custom API
Static content
Event Info retrieval
Writes
Cloud Firestore のユースケース例
Firebase Auth
![Page 36: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/36.jpg)
02Cloud SQL
![Page 37: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/37.jpg)
Cloud SQL
● フルマネージドのリレーショナルデータベース
● MySQL と PostgreSQL 、SQL Server(Alpha) をサ
ポート
● 高いパフォーマンス
○ 64 コア、400GB まで瞬時にアップグレード可能
● 高可用性構成で99.95%
![Page 38: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/38.jpg)
高可用性構成 ( PostgreSQL の場合)
• プライマリインスタンスとセカンダリインスタンスを異なるゾーンに配置
• リージョナル永続ディスクを使い全ての書き込みを同期、レプリケーション
• プライマリインスタンスが正常な状態でなくなると、セカンダリインスタンスが昇格
• フェイルオーバーはほぼ 60 秒以内に行われる
![Page 39: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/39.jpg)
Cloud SQL への接続
接続パス• パブリック IP
• インターネットを経由し、どこから
でもアクセス可能
• プライベート IP• Virtual Private Cloud (VPC) を
使いプライベートアクセス
認証• Whitelisting IP
• 接続を許可する IP のリストを作成
• 許可された SSL 証明書 • クライアントからの接続を許可する
SSL 証明書
• Cloud SQL プロキシ
• アプリからはローカル接続の認証
に見える。セキュアにインスタンス
にアクセス。
![Page 40: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/40.jpg)
03Cloud Spanner
![Page 41: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/41.jpg)
Cloud Spanner
● グローバルに分散され、強整合性を備えたデータ
ベース サービス
● リレーショナル データベースの構造と非リレーショナ
ル データベースの水平スケーラビリティを兼ね備え
る
![Page 42: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/42.jpg)
Cloud Spanner とは何か?
リレーショナルセマンティック
スキーマ、ACID トランザクション、SQL クエリ
水平スケール高可用性 99.999% SLA、
フルマネージドで水平スケーリング
+
![Page 43: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/43.jpg)
RDB と非 RDB、両方の特徴を持っている
![Page 44: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/44.jpg)
使い所
● リレーショナルなデータ
● 高いスケーラビリティが求めら
れるアプリケーション
● 高い可用性要件を持った
アプリケーション
気にすべき制約
● 既存 DB との互換性
(独自のテーブル設計が必要)
● リージョン間レプリケーションの
提供エリア
使い所と気にすべき制約
![Page 45: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/45.jpg)
非同期処理
![Page 46: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/46.jpg)
Cloud Tasks
信頼性の高いタスクのオフロード
フルマネージドのタスクキュー: 長時間の非同期タスクも確実にディスパッチ。インフラ管理
なし、使った分だけお支払い。
レート制御 と 再試行
必要なスループットに合わせてレート制御 や 再試行の設定が可能。
HTTP/S Auth (IAM) を使った柔軟なタスクルーティング
GCP 内外のサービスに対してセキュアにタスクをディスパッチ。
マイクロサービス間の非同期タスク向けキューイングシステム
![Page 47: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/47.jpg)
sendEmail function
New user signup 30-day
reminder30 days later
'schedule_time': '2019-05-11T00:00:00'
タスクをスケジュールして実行
![Page 48: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/48.jpg)
Dispatch
10 tasks/s
Dispatch
3 tasks/s
'max_dispatches_per_second': '3'
レートの制御
![Page 49: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/49.jpg)
'max_attempts': '3''min_backoff': '600' [wait 10 mins to retry]'max_retry_duration': '1800' [attempt for 30 mins]
Machine Learning model training service
Delay tolerant ML model training task ML model
training taskExecuted every
night
タスクの再試行
![Page 50: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/50.jpg)
User submits async task request
User login service
Image Upload Service
Translation service
User profile service
Google Cloud Functions
GKE: Google Kubernetes Engine
On Prem Server
Cloud Run and Cloud Run on GKE
NEW! NEW!
OAuth/OIDC JWT
HTTP/S
HTTP/S Auth (IAM) ターゲット
![Page 51: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/51.jpg)
静的コンテンツ
![Page 52: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/52.jpg)
Cloud Storageを使った静的コンテンツ配信
Back End AppApp Engine
Cloud Tasks
Front End AppApp Engine
In-memory cacheCloud Memorystore
Dynamic dataCloud Firestore
Static filesCloud Storage
一般公開されたものはデフォルトで3600sec の Cache-Control が設定される(エッジキャッシュされる)
![Page 53: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/53.jpg)
まとめ
● GCP のサーバーレスを活用することでインフラ管理のないモダンな
Web アプリケーション開発が可能
● コンピュートもデータベースも特徴的なサービスが複数ある、開発要件
に合わせて適材適所するのがオススメ
● モニタリング・ロギング、ビルド・デプロイなどのサービスもあるので、や
ろうと思えば GCP で開発・運用を完結することも
![Page 54: June 3, 2019 Updated: Web アプリ開発 GCP のサーバーレスで · Firebase サーバーレス サーバー管理なし スケールアウトが高速 ゼロにまでスケールイン](https://reader034.vdocuments.site/reader034/viewer/2022042303/5ece21609a024f1b512edad1/html5/thumbnails/54.jpg)
Thank you