Mais conteúdo relacionado Semelhante a [GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜 (20) [GCC18] 世界中のプレイヤーを3つの「S」で支える Google Cloud Platform (GCP) 〜スピード・スケール・スタビリティ〜10. GCP is built on the same infrastructure that powers Google
Google confidential | Do not distribute
13. iOS
Android
Cloud Load
Balancing
API Servers
API Servers
Compute Engine
Multiple instances
Mgmt Server
Compute Engine
Single instance
Databases
MySQL
Compute Engine
Failover replica
MySQL
Compute Engine
Master
MySQL
Compute Engine
Read replica
Data Analytics
Log data
Cloud Storage
User logs
Game logs
BigQuery
Data analytics
Reporting
Business Analysis
Batch import
ETL
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
Game Servers
Game Servers
Compute Engine
Multiple instances
In-memory KVS
Cache KVS
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
Static content
CDN
Cloud CDN
iOS
Android
Cloud Load
Balancing
API サーバ
API Servers
Compute Engine
Multiple instances
管理サーバ
Compute Engine
Single instance
データベース
MySQL
Compute Engine
Failover replica
MySQL
Compute Engine
Master
MySQL
Compute Engine
Read replica
データ分析
ログデータ
Cloud Storage
User logs
ゲームログ
BigQuery
Data analytics
レポーティング
Business Analysis
Batch import
データ処理
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
ゲームサーバ
Game Servers
Compute Engine
Multiple instances
キャッシュ KVS
Cache KVS
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
静的コンテンツ
CDN
Cloud CDN
16. Confidential & Proprietary
iOS
Android
Cloud Load
Balancing
API サーバ
API Servers
Compute Engine
Multiple instances
管理サーバ
Compute Engine
Single instance
データベース
MySQL
Compute Engine
Failover replica
MySQL
Compute Engine
Master
MySQL
Compute Engine
Read replica
データ分析
ログデータ
Cloud Storage
User logs
ゲームログ
BigQuery
Data analytics
レポーティング
Business Analysis
Batch import
データ処理
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
ゲームサーバ
Game Servers
Compute Engine
Multiple instances
キャッシュ KVS
Cache KVS
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
静的コンテンツ
CDN
Cloud CDN
ネットワーク
17. GCP を利用すると、クライアントは一番近い POP (Point Of Presence) まで通信し、
そこからはグーグルの専用ネットワーク 経由でゲームサーバに接続します。
Google のグローバルネットワーク
Google
Edge POP
Google
Backbone
18. GCP lowers price by delivering your outbound and inbound traffic over transit (ISP) networks instead of Google’s network.
スタンダード Tier
19. Outbound and Inbound traffic delivery over Google’s global network
Google Cloud を使うと
自動的にプレミアネットワークが利用可能に
20. ゲームでの Google Global Network のメリット
Google Network・100+ POP・15 リージョン・44 ゾーン
プレイヤーとサーバ間のレイテンシを削減 = ユーザー経験の向上!Sp
Sp
Sc 大陸間の対戦を可能とするグローバルゲームをリリース可能
GCP の15リージョンでプレイヤーにより近くサーバを配置
2019年に大阪リージョンが開きます!
24. Confidential & Proprietary
iOS
Android
Cloud Load
Balancing
API サーバ
API Servers
Compute Engine
Multiple instances
管理サーバ
Compute Engine
Single instance
データベース
MySQL
Compute Engine
Failover replica
MySQL
Compute Engine
Master
MySQL
Compute Engine
Read replica
データ分析
ログデータ
Cloud Storage
User logs
ゲームログ
BigQuery
Data analytics
レポーティング
Business Analysis
Batch import
データ処理
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
ゲームサーバ
Game Servers
Compute Engine
Multiple instances
キャッシュ KVS
Cache KVS
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
静的コンテンツ
CDN
Cloud CDN
LB
26. ゲームでの HTTP(S) LB のメリット
Google マネージド・ウォームアップ不要・グローバル・ロードバランサー
ウォームアップが不要、スケールに関する心配もなしSp
Sp
St
Anycast で1つのリージョンが落ちても、リクエストを次に近い
リージョンへ自動的にルートする
100万 QPS を1秒で捌ける
28. Confidential & Proprietary
iOS
Android
Cloud Load
Balancing
API サーバ
API Servers
Compute Engine
Multiple instances
管理サーバ
Compute Engine
Single instance
データベース
MySQL
Compute Engine
Failover replica
MySQL
Compute Engine
Master
MySQL
Compute Engine
Read replica
データ分析
ログデータ
Cloud Storage
User logs
ゲームログ
BigQuery
Data analytics
レポーティング
Business Analysis
Batch import
データ処理
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
ゲームサーバ
Game Servers
Compute Engine
Multiple instances
キャッシュ KVS
Cache KVS
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
静的コンテンツ
CDN
Cloud CDN
Compute
29. ゲームサーバはクライアントが通信するサーバのこと
● API Servers
○ ゲームに必要なサービスを提供する API。
○ マイクロサービス化
○ REST API、HTTP リクエスト
○ 例:認証サービス、プレイヤーサービス、マッチング
サービス、ガチャ、課金サービスなどなど
● Dedicated Game Servers
○ オンラインでマルチプレイする際にクライアントと通
信するサーバ。
○ 常時接続。TCP, UDP, Websockets
○ 例:PvP, MMORPG
ゲーム & API サーバ
30. Compute
● Common:VMware, KVM, OpenShift, 他社クラウドなど
● GCP:Google Compute Engine, Google Kubernetes Engine,
Google App Engine
ユースケース
● ゲームサーバ
● API サーバ
VM の制約
● OS のリソースオーバーヘッド
● 起動時間
● メンテナンスの再起動
● OS の運用(パッチなど)
Compute
32. ● VM あたり20~40秒程度で
起動
● クラスタサイズを増やしても
変わらない
● マネージドインスタンスグ
ループは、負荷に応じてオー
トスケールアウトします
ブートしてSSH可能になるまでの時間
クラスタサイズ
VMあたりの起動時間(秒)
GCE - 高速なインスタンス起動
33. ゲームでの GCE のメリット
Google の IaaS
高速起動でクラスタのスケールがリクエストをこぼそないSp
Sc
St ライブマイグレーション = 計画停止なし
マネージド インスタンス グループのオートスケール機能
34. Publisher: Bandai Namco Entertainment
Title: Dragon Ball Xenoverse 2
Platform: PlayStation 4, Nintendo Switch,
Xbox One, PC
GCP products used:
● Google Compute Engine
● Cloud Storage
● Cloud Load Balancing
GCE のゲーム事例
© バードスタジオ/集英社・フジテレビ・東映アニメーション © BANDAI NAMCO Entertainment Inc.
35. GKE - コンテナの世界
● Docker コンテナはデファクトスタンダード
○ リソースの効率性:OS のオーバーヘッドなし
○ オープン:どこでも動く
○ スピード:起動が VM より早い
● コンテナオーケストレーションをする Kubernetes もデファクトスタンダードへ
Google Trends
36. ゲームでの GKE のメリット
Google のマネージド・Kubernetes・サービス
新しい API やゲームサーバを高速で起動可能Sp
Sc
St ノードやポッドの自動修復
Cluster Autoscaler と Horizontal Pod Autoscaler (HPA)
参考:https://www.slideshare.net/HammoudiSamir/google-container-engine-gke-kubernetes
St マスターは Google の SRE が管理
37. Publisher: Niantic
Title: Pokemon Go
Platform: Android & iOS
GCP products used:
● Google Kubernetes Engine
● Cloud Datastore
● Cloud Storage
● Cloud Load Balancing
GKE のゲーム事例
38. 手間いらずの維持管理
Managed services, such as Task Queues, Memcache and the Users API, let you build any application.
容易にスケール
You can scale up to 7 billion requests per day and automatically scale down when traffic subsides.
コードを書くだけ
Let Google worry about database administration, server configuration, sharding & load balancing.
さまざまな言語 & フレームワーク
Write applications in some of the most popular programming languages, use existing frameworks and integrate
with other familiar technologies.
Google
App
Engine
なじみの開発ツール
Use the tools you know, including Eclipse, IntellIJ, Maven, Git, Jenkins, PyCharm & more.
拡大するサービス エコシステム
Choose from SQL and NoSQL databases, monitoring & diagnostics tools, popular services like Cloud Pub/Sub,
and a range of great developer tools on GCP just by API.
40. Publisher: Bandai Namco Entertainment
Title: The iDOLM@STER Million Live Theater
Days
Platform: Android & iOS
GCP products used:
● Google App Engine (Go)
● Cloud Datastore
● BigQuery
● Firebase Cloud Messaging
GAE のゲーム事例
©窪岡俊之 ©BANDAI NAMCO Entertainment Inc.
42. Confidential & Proprietary
iOS
Android
Cloud Load
Balancing
API サーバ
API Servers
Compute Engine
Multiple instances
管理サーバ
Compute Engine
Single instance
データベース
MySQL
Compute Engine
Failover replica
MySQL
Compute Engine
Master
MySQL
Compute Engine
Read replica
データ分析
ログデータ
Cloud Storage
User logs
ゲームログ
BigQuery
Data analytics
レポーティング
Business Analysis
Batch import
データ処理
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
ゲームサーバ
Game Servers
Compute Engine
Multiple instances
キャッシュ KVS
Cache KVS
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
静的コンテンツ
CDN
Cloud CDN
データストア
44. RDB
● DB:MySQL, PostgreSQL, MS SQL Server, Oracle DB
● GCP:Cloud SQL, Cloud Spanner
ユースケース
● マスタデータ
● ユーザデータ
RDB の制約
● スケラビリティ(スケールアップのみかシャード)
○ スケールアウト・インが難しい
● 高可用性でない
○ フェイルオーバー = ダウンタイム
RDB
46. Cloud Spanner とは?
Google のマネージド・スケーラブル・リレーショナルデータベース・サービス
完全マネージドのグローバルスケールで DB サービス1
2
3
4
ゾーン間・リージョン間の自動 synchronous レプリケーション
スキーマ、ACID トランザクション、SQL
Google内部では、既に5年以上の運用経験
(AdWords, Google Play…)
47. ゲームでの Cloud Spanner のメリット
Google のマネージド・スケーラブル・リレーショナルデータベース・サービス
DB のスケールアウトが1クリック・1秒で可能(イベント対応などに)Sc
Sc
Sp
St
ノードを追加することだけで、パフォーマンスがニアリニアに上がる
プレイヤーが少なくなったら、1クリックでスケールイン
高可用性をネイティブで提供: 99.99% SLA (99.999% マルチリージョン)
49. スキーマレスのデータベース
● 永続ストレージ用 KVS
○ OSS:MongoDB, Cassandra, HBase, Couchbase
○ GCP:Cloud Datastore, Cloud Bigtable
○ Firebase: Firebase Realtime DB, Cloud Firestore
● キャッシュ用 インメモリ KVS
○ OSS:Memcached, Redis
ユースケース
● ユーザデータ
● ランキング、セッション状態、などなど
NoSQL の制約
● ACID トランザクションや SQL
● 結果整合性
NoSQL
50. Cloud Datastore とは?
Google マネージド・オートスケール・NoSQL データベース・サービス
フルマネージド・オートスケーリング データベース サービス1
2
3
4
リージョン間の自動レプリケーション
結果整合性だが、ACID トランザクションを提供
Battle-tested in App Engine for 8 years
51. ゲームでの Cloud Datastore のメリット
Google マネージド・オートスケール・NoSQL データベース・サービス
負荷に応じて、自動的にスケールアウト・インするSc
St
St
スキーマレスはユーザプロファイルの進化や変更をダウンタイムなしで可能
とする
高可用性 99.9% SLA(99.95% マルチリージョン)
52. Publisher: Nintendo
Title: Super Mario Run
Platform: Android & iOS
GCP products used:
● Google App Engine Standard
● Cloud Datastore
● Cloud PubSub
● Cloud Dataflow
● BigQuery
● Firebase Cloud Messaging
Cloud Datastore のゲーム事例(mBaaS)
任天堂株式会社
スーパーマリオ ラン
54. iOS
Android
Cloud Load
Balancing
API Servers
Mgmt Servers
Compute Engine
Single instance
Databases
Data Analytics
Log fa
Cloud Storage
User logs
Game logs
BigQuery
Data analytics
Reporting
Business Analysis
Batch import
ETL
Cloud Dataflow
Multiple instances
PubSub
Cloud Pub/Sub
Real time logs
Streaming insert
Game Servers
In-Memory KVS
Redis
Compute Engine
Multiple instances
Static Assets
Cloud Storage
Images, Audio...
Static assets
CDN
Cloud CDN
User data
Cloud Spanner
Master data
Cloud SQL
Memcached
Compute Engine
Multiple instances
API Servers
GAE
Serverless
Game Servers
GKE
Multiple instances