Soumettre la recherche
Mettre en ligne
Google Cloud Platformでソーシャルゲームを1本出してみた!
•
9 j'aime
•
4,373 vues
Hasegawa Yusuke
Suivre
Google Cloud PlatformでWebSocketを使いまくったソーシャルゲーム基板を作ったのでシェア
Lire moins
Lire la suite
Internet
Signaler
Partager
Signaler
Partager
1 sur 25
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
grasysの仕組み解説
grasysの仕組み解説
Hasegawa Yusuke
ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!
Hasegawa Yusuke
Google Compute Engine 入門
Google Compute Engine 入門
Yuko Oshima
GCP vs 他社クラウド
GCP vs 他社クラウド
Hasegawa Yusuke
gcpug_okinawa_#2_hiroshi_kawakami
gcpug_okinawa_#2_hiroshi_kawakami
Hiroshi Kawakami
HugCome and grasys
HugCome and grasys
Hasegawa Yusuke
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
Recommandé
grasysの仕組み解説
grasysの仕組み解説
Hasegawa Yusuke
ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!
Hasegawa Yusuke
Google Compute Engine 入門
Google Compute Engine 入門
Yuko Oshima
GCP vs 他社クラウド
GCP vs 他社クラウド
Hasegawa Yusuke
gcpug_okinawa_#2_hiroshi_kawakami
gcpug_okinawa_#2_hiroshi_kawakami
Hiroshi Kawakami
HugCome and grasys
HugCome and grasys
Hasegawa Yusuke
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
グリー株式会社『私たちが GCP を使い始めた本当の理由』第 9 回 Google Cloud INSIDE Game & Apps
Google Cloud Platform - Japan
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
Katsuya Shimizu
Bicep 入門 MySQL編
Bicep 入門 MySQL編
Takekazu Omi
AzureDevOpsの機能解説
AzureDevOpsの機能解説
Makoto Nishimura
Azure DevOps と開発管理
Azure DevOps と開発管理
Tsukasa Kato
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
Masahiko Ebisuda
俺的 Build 2020 Update まとめ
俺的 Build 2020 Update まとめ
Yui Ashikaga
Nested Hyper-v on Azure
Nested Hyper-v on Azure
Masahiko Ebisuda
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
Takahiro Kida
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
2021/09/25 JAZUG11周年記念LT大会 ~FSLogixのお話~
2021/09/25 JAZUG11周年記念LT大会 ~FSLogixのお話~
Dai Iwai
Azure Functions あれこれ
Azure Functions あれこれ
Yasuaki Matsuda
大規模ライブ配信の苦労ポイント
大規模ライブ配信の苦労ポイント
gree_tech
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
Yui Ashikaga
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
Masahiko Ebisuda
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
Kazushi Kamegawa
Azure DevOps で始めるスタートダッシュ
Azure DevOps で始めるスタートダッシュ
Yasuaki Matsuda
ワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキル
Tsuyoshi Ushio
OSS強化学習向けゲーム環境の動向
OSS強化学習向けゲーム環境の動向
gree_tech
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
Terui Masashi
How to create your own Azure Pipeline's image
How to create your own Azure Pipeline's image
Kazushi Kamegawa
Eureka go 2015_12_12
Eureka go 2015_12_12
matsuo kenji
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
gree_tech
Contenu connexe
Tendances
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
Katsuya Shimizu
Bicep 入門 MySQL編
Bicep 入門 MySQL編
Takekazu Omi
AzureDevOpsの機能解説
AzureDevOpsの機能解説
Makoto Nishimura
Azure DevOps と開発管理
Azure DevOps と開発管理
Tsukasa Kato
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
Masahiko Ebisuda
俺的 Build 2020 Update まとめ
俺的 Build 2020 Update まとめ
Yui Ashikaga
Nested Hyper-v on Azure
Nested Hyper-v on Azure
Masahiko Ebisuda
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
Takahiro Kida
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
2021/09/25 JAZUG11周年記念LT大会 ~FSLogixのお話~
2021/09/25 JAZUG11周年記念LT大会 ~FSLogixのお話~
Dai Iwai
Azure Functions あれこれ
Azure Functions あれこれ
Yasuaki Matsuda
大規模ライブ配信の苦労ポイント
大規模ライブ配信の苦労ポイント
gree_tech
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
Yui Ashikaga
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
Masahiko Ebisuda
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
Kazushi Kamegawa
Azure DevOps で始めるスタートダッシュ
Azure DevOps で始めるスタートダッシュ
Yasuaki Matsuda
ワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキル
Tsuyoshi Ushio
OSS強化学習向けゲーム環境の動向
OSS強化学習向けゲーム環境の動向
gree_tech
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
Terui Masashi
How to create your own Azure Pipeline's image
How to create your own Azure Pipeline's image
Kazushi Kamegawa
Tendances
(20)
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
Bicep 入門 MySQL編
Bicep 入門 MySQL編
AzureDevOpsの機能解説
AzureDevOpsの機能解説
Azure DevOps と開発管理
Azure DevOps と開発管理
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
俺的 Build 2020 Update まとめ
俺的 Build 2020 Update まとめ
Nested Hyper-v on Azure
Nested Hyper-v on Azure
AnsibleによるHWプロビジョニング -OneViewの連携-
AnsibleによるHWプロビジョニング -OneViewの連携-
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
2021/09/25 JAZUG11周年記念LT大会 ~FSLogixのお話~
2021/09/25 JAZUG11周年記念LT大会 ~FSLogixのお話~
Azure Functions あれこれ
Azure Functions あれこれ
大規模ライブ配信の苦労ポイント
大規模ライブ配信の苦労ポイント
Virtual Machine Scale Sets 概要
Virtual Machine Scale Sets 概要
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
ハイブリッドクラウド研究会趣旨説明とこれまでの取り組み(2019/01/24)
Ignite 2021 振り返り(DevOps)
Ignite 2021 振り返り(DevOps)
Azure DevOps で始めるスタートダッシュ
Azure DevOps で始めるスタートダッシュ
ワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキル
OSS強化学習向けゲーム環境の動向
OSS強化学習向けゲーム環境の動向
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
How to create your own Azure Pipeline's image
How to create your own Azure Pipeline's image
Similaire à Google Cloud Platformでソーシャルゲームを1本出してみた!
Eureka go 2015_12_12
Eureka go 2015_12_12
matsuo kenji
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
gree_tech
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
Retrieva inc.
130207 kyotorb
130207 kyotorb
Yuki Shibazaki
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
OSSラボ株式会社
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Kiyokazu Kaba
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
学 松崎
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
健一 辰濱
特盛!Heroku
特盛!Heroku
Shunji Konishi
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
Salesforce Developers Japan
Tech lounge gcp_20190313
Tech lounge gcp_20190313
yutaka_baba
Redmine Ansible
Redmine Ansible
ITO Yoshiichi
インフラエンジニアのお仕事 ~ daemontools から systemdに乗り換えた話 ~
インフラエンジニアのお仕事 ~ daemontools から systemdに乗り換えた話 ~
KLab Inc. / Tech
Hadoop事始め
Hadoop事始め
You&I
Google Product
Google Product
Daisuke Sugai
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
DeNA
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニック
Yusuke Ando
Similaire à Google Cloud Platformでソーシャルゲームを1本出してみた!
(20)
Eureka go 2015_12_12
Eureka go 2015_12_12
私たちがGCPを使い始めた本当の理由
私たちがGCPを使い始めた本当の理由
Chainerで学ぶdeep learning
Chainerで学ぶdeep learning
130207 kyotorb
130207 kyotorb
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
特盛!Heroku
特盛!Heroku
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
HerokuでRailsアプリ運用の パフォーマンス、SEO対策
Tech lounge gcp_20190313
Tech lounge gcp_20190313
Redmine Ansible
Redmine Ansible
インフラエンジニアのお仕事 ~ daemontools から systemdに乗り換えた話 ~
インフラエンジニアのお仕事 ~ daemontools から systemdに乗り換えた話 ~
Hadoop事始め
Hadoop事始め
Google Product
Google Product
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
AndApp開発における全て #denatechcon
AndApp開発における全て #denatechcon
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニック
Google Cloud Platformでソーシャルゲームを1本出してみた!
1.
でソーシャルゲームを 1本出してみた! 株式会社
Zeadle 長谷川祐介 2014-07-28
2.
はじめに! • 単なるエンジニアなので気楽に聞いて下さい。
• また今回の発表の内容は GCP上でGCPの機能を活用しながらいわゆるソーシャルゲーム の設計をしてみました! そしてできましたよ!という内容になってます。 • これから導入を検討されている企業のみなさまの良い参考になれ ばと考えています。
3.
index • 会社説明
• 自己紹介 • ゲーム紹介 • GCP上で今回作ったアーキテクチャの説明
4.
会社説明 社名株式会社Zeadle 設立2013年
代表川方慎介 社名の由来Zeal(熱意)とDoodle(いたずら書きをする)
5.
自己紹介 氏名長谷川祐介 経歴
20代に転々としながら 2010年にgloops(旧gms)へ 2014年4月1日からZeadleへ 職種いわゆるインフラエンジニア GCP歴約4ヶ月 その他AWSもAzureもVM側だけど数ヶ月以上触ってます。 基本的にはオンプレが多いです。
6.
ゲーム紹介
7.
ゲームタイトル
8.
斬神 • 戦国ファンタジー風味の
リアルタイムバトル • Mobage NBPFで提供 • 完全にWeb! • WebSocketバリバリ仕様 • 同時に20人でボスを叩け ます! • http://ap.zs.zeadle.net/
9.
アーキテクチャ
10.
Google各種サービス Compute Engine
Application / WebSocket redis, MySQL etc… LoadBalancer, Network Firewall metadata, snapshot CloudDNS DNSはすべて依存 CloudStorage 静的ファイル配信、バックアップなど BigQuery KPI関連とログ系すべて Google Analytics もはや説明の必要なし
11.
お世話になってるみなさん!
12.
インスタンス種別 • Application
x 21 • WebSocket x 21 • Entry(事前登録用)x 2 • JobQueue Worker x 7 • API(Platformと連携)x 3 • MariaDB x 11 • Redis x 6 • Redis(JobQueue用)x 2 • Operation Central x 1 • KPI収集 x 1 production/staging合わせて
13.
Application/WebSocket WebSocketインスタンスはlocalにredisが起動
14.
WebSocketへの振り分け手法 • LoadBalancerを使ってません!
いわゆるHTTP Dispatcherを独自 で構成してます。 • 監視結果を元に 正常なWebSocketインスタンス情 報を更新 • 各レイドボス出現タイミングで選択 • 伐討祭(リアルタイムバトル)では team_id単位で利用するインスタン スを選択 • こういったインスタンスの監視を元 にしたクラスタ稼働状況は Applicationと連携して自動で更新 稼働してます。
15.
Redis • haproxyで処理系から接続
• 各目的別でデータをsharding • websocketの後ろでpub/sub • Resque?かわからないけどPythonのJobQueueとしても
16.
MariaDB • haproxyで処理系から接続
• lookup, master, contents, historyと複数のスキーマ分割 • userNはlookupでマッピングして分割 • BackupにはPercona XtraBackupとmysqldumpを状況に応じ て使い分けそれぞれCloud Storageへバックアップ • configは完全に自動化
17.
Deploy • Active/Standbyの切り替え
• 今のところJenkinsとか使っ ていません。 • Deployはgit pull • 切り替えはconsulのkv使っ ていて1秒程度 • 同じくRollbackも! • メンテナンス切り替え メンテナ時特定IPだけ許可 特定IPはStandbyに通す • 各種操作はオーケストレーショ ンを通してHipChatへ通知
18.
Monitor • 全インスタンス共通でオレオレ仕様になってますw
• configは起動時にmetadataから取得してくるタグをベースに自動生成 • consulから起動するmonitor用のscriptで直接metrixをlibratoへ • consulのHTTP API health/stateを利用してデータをサマってHipChatへ • またBigQueryのApplicationLogをHipchatへ(logglyでもできるけど後付なんで
19.
Operation Central •
さきほど紹介したDeployTool • PerlのCinnamon • nginx, haproxy, fluentd, consul, etc…のconfig自動生成 • 各種daemonのコントロールなど • セットアップなどにも活用 • 各種操作はHipChatへ通知
20.
KPI • よく言われるKPI必須項目系以外にも各種進行度などグラフ化
• 短い間隔(現状1分間隔)でMariaDB/Redis/BigQueryを活用 してデータ集計 まだBigQueryの利用率が低いがリリース期間が短いためこれか ら活発になっていくと思われる! • 結果はすべてLibratoへ送りグラフ描画 • またGoogle Analyticsを活用中
21.
bootstrap • operation用のインスタンスをsnapshot取得
• 上記snapshotからstartup scriptを利用して作りたいサーバー 種別用のtagを付与しながらaddinstanceするだけ • startup scriptが起動時に各種configを自動生成しながら所定の サーバーに仕上げてくれる形になってます。 • cloud storageにUploadして使っています。 • 上記をまとめたコマンドセットを発行できる仕組みを作って対応 してます。
22.
運用に利用してる画面
23.
斬神インフラの今後の課題 • AutoScaleはまだ未実施
• WebSocket系の構成を見直し、保険をもう少し作りたい。 • consulが恐ろしく便利! ただしちょっと関係ないけどserverがすんごいバッファ食うw (clientは問題無し
24.
これからやりたいこと • stream使いたい!
ゲームで導入すると面白いことがいろいろできそうな気がする! • docker化 大好きなんですがリリース準備中はちょっとタイミング悪かったの で・・・ • 現在外部依存している部分についてはコストを見ながら徐々に BigQueryなどを活用したものに移行していこうと思ってます。
25.
ご清聴ありがとうございました! ! 今後ともよろしくお願い致します!
Télécharger maintenant