SlideShare a Scribd company logo
1 of 73
Download to read offline
GCP・GKEで作る
スケーラブルな開発環境
自己紹介
植森 康友
株式会社Aiming所属のソフトウェアエンジニア
主な仕事
Game Web API(Rails)
CI
デプロイ
Kubernetes/Docker
GCPUG初参加で発表...
Aimingについて
企画、開発、運営までを社内で行う
社内にはPCゲーム時代からの古参エンジニアが在籍
MMORPGを始めとしたリアルタイムプレイ可能なゲームが得意
代表作
剣と魔法のログレス いにしえの女神
CARAVAN STORIES
ゲシュタルト・オーディン
アジェンダ
以前の開発環境構成
以前の開発環境での問題点
現在のプロジェクトでの開発環境
デプロイフロー
ログインフロー
イントロダクション
ゲームでよくあるサーバ構成
データベースにはWebAPI経由でアクセス
リアルタイムサーバにセッションを張ってリアルタイム処理
リアルタイムサーバ同士のやりとりはバックエンドサーバが管理
ゲームでの開発用環境の必要性
ゲーム開発では様々な目的で開発用環境が求められる
エンジニア、プランナーがプレイして面白さを確認する
デザイナーがゲーム内でリソースの雰囲気を確認する
プランナーが次期アップデートのための設定を行う
エンジニアが新規コンテンツの開発を行う
外部協力会社にプレイしてもらう
etc...
以前の開発環境構成
開発環境構成例
開発環境構成例
開発環境構成例
開発環境構成例
開発環境構成例
以前の開発環境構成
一つの物理サーバに各種サーバが相乗り
各物理サーバには様々なリビジョンでデプロイできる
接続情報はクライアントに埋め込んであり、接続先を選択できる
マスターデータはsambaなどを使ってプランナーが直接更新
→ いくつかの問題点が発生した
以前の社内環境での問題点
以前の社内環境での問題点
以前の社内環境での問題点
その結果、
以前の社内環境での問題点
サーバの数が物理サーバの数に依存している
社内のサーバなので簡単に増やせない場合もある
セットアップはゲーム側のエンジニアの手が必要
さらにホスト名が固定で用途がわかりにくい
環境の追加、削減にコストが掛かりすぎる
社内サーバの空きがない場合は物理サーバの追加が必要
社内DNSへの登録、DMZの設定(GIPの数とかも……)
だいたいの場合「環境数<プランナーの数」
複数のプランナーで一つの環境を共用することになる
どの環境が何の用途で誰が使っているのかの管理が必要
→ サーバの台数や環境の数が制約になりスケールしにくかった
あるあるネタ
環境追加にひと手間
「環境増やしたいです」 → インフラさんに注文
「サーバ準備しました」 → エンジニアがセットアップ
環境の更新に待ちが入る
「01環境更新しまーす」
「こっちのデータ上げるからちょっとまって」
データアップロードのコンフリクト
「あれ? なんか設定が反映されてないぞ……」
「あ、こっちで同じデータあげちゃった」
エンジニアのローカル開発環境の問題点
クライアント、サーバ、Webの各セクションのエンジニアが存在
各エンジニアともにVM上にサーバを構築して開発
結果として、
ローカルでも全サーバが動作するよう保守し続ける必要がある
クライアントエンジニアもローカルでVMを動かす必要がある
現在のプロジェクトでの開発環境
要件
目指すはスケーラブルな開発環境
リビジョンをあわせた各サーバをワンセットとしてデプロイする
プランナーがマスターデータを手軽に作成・更新できる
物理マシンの数に制約されずに環境数を増減できる
利用したもの
やったこと
Kubernetesとdockerによるサーバリソースの抽象化
KubernetesのAPIを利用したログインフローの構築
helmによる環境のパッケージ管理
自作デプロイツールとJenkinsによるデプロイの実行
Unityのエディタ拡張によるマスターデータアップローダの作成
デプロイフロー
デプロイで利用している関連ツール、サービス
GCPのサービス
Google Kubernetes Engine
Google Cloud Registory
Google Cloud Storage
デプロイ
Jenkins
helm
デプロイツール(Railsアプリ)
クライアント
Unity
Unityエディタ拡張
Google Kubernetes Engine
KubernetesはDockerのオーケストレーションツール
GKEはKubernetesのフルマネージドサービス
高いスケーラビリティと可用性が特徴
Docker/Kubernetesによるサーバリソースの抽象化
バックエンドにGCEを使った自由なノードの増減
ロギング、モニタリングなどのGCPサービスとの連携性
最初のセットアップの手間がほぼないのも
最初はDocker Swarmを使っていたが、運用コストが高かった
停電によるswarmのcrashを契機にGKEへ移行
デプロイツール
Ruby on Rails製のWebアプリ
環境管理ツールと各種リンクのダッシュボードを兼ねている
「環境を配膳する人」ということでOKAMIと名付けられた
デプロイツールの機能
アカウント、権限管理
環境の一覧
デプロイツールの機能
クライアントのダウンロード
Google Cloud Storageの閲覧
デプロイツールの機能
各環境で利用できる各種サービスへのリンク集
WebAPIのswagger UI
デバッグツール(Ruby on Railsアプリ)
Cloud Logging
デプロイツールの機能
デプロイの実行
環境作成時にUUIDを使ったIDの発行
環境情報のDBへの永続化
実際のデプロイなどはWebAPI経由でJenkinsジョブへ
Jenkinsジョブの実行
Unityを使い、AssetBundleとマスターデータを生成
Excelとassetファイルからsqliteファイルを生成している
Unityでのみ設定可能なものがあるためUnityを利用
DockerイメージはJenkins Slaveで直接ビルド
ビルドしたイメージはコミットハッシュでタグをつけてGCRへ
Helm Chartによる環境のデプロイ
masterブランチはデイリーで毎日自動更新
Helm
Kubernetesのパッケージマネージャ
各種リソースをChartと呼ばれる単位でパッケージングする
Chartは公式のものの他に自作することも可能
現在のプロジェクトでは専用のdevelopパッケージを自作
kustomizeと比較したメリット
変数による自由なinjectionが可能
公開されているchartを使えば自分で書かなくてすむ
manifestファイルの動的な展開が可能
デメリットとしては複雑化しやすく、chartの管理などに少しクセがある
Helmの実行
コマンドで実行時に変数に対し指定が可能
helm upgrade --install develop-[環境ID] ./develop 
--namespace develop-[環境ID] 
--set imageTag=[コミットハッシュ] 
--set environment_id=[環境ID] 
--set environment_name=[環境名] 
--set realtime_server_replica_count=1
 --namepsace でインストールするnamespaceを指定
 --set で環境固有のパラメータを動的に割り当てる
Helm template
helm templateはgo templateで記述
apiVersion: v1
kind: Service
metadata:
name: api-server
annotations:
environment_name: {{ .Values.environment_name }}
labels:
app: api-server
environment_id: {{ .Values.environment_id }}
ここでは環境名と環境IDをlabelとannotationにinjectionしている
→ 後述するログインフローで利用するため
環境数のスケール
Kubernetesのnamespaceを利用することで柔軟にスケール可能
環境の最大数は、
「ノードのスペック☓ノードの台数/ 環境あたりの利用リソース」
GKEの場合、ノードのバックエンドにGCEを利用しているためリソ
ースを簡単に追加可能
現在は5台のノードで10~15環境以上が稼働。
以前から比べるとホスト台数の3倍以上が稼働可能になった
Unity
統合開発環境を内蔵したクロスプラットフォームなゲームエンジン
Unityは自前でスクリプトを書いてエディタを拡張することが可能
Unity上からマスターデータの生成と、GCSへのアップロードを行
えるようにしている
Unity Editor拡張
プランナーはこのエディタ拡張を利用し、ExcelやUnityで設定を行
った後にマスターデータをビルド
アップロードしたい環境を選択してデータをアップロードする
ログインフロー
RubyによるKubernetesマスタへの問い合わせ
https://github.com/abonas/kubeclient を利用
selector = selectors.map{|k, v| "#{k}=#{v}"}.join(',')
client.get_services(label_selector: selector).map do |service|
OpenStruct.new(
# labelから環境IDを取得
environment_id: service.dig(
:metadata,
:labels,
:environment_id
),
# annotationから環境名を取得
environment_name: service.dig(
:metadata,
:annotations,
:environment_name
),
# serviceの基本情報からLBのIPと割り当てPortを取得
ip: service.dig(:status, :loadBalancer, :ingress, 0, :ip
port: service.dig(:spec, :ports, 0, :port)
)
end
クライアントの環境選択
WebAPIが返した環境情報を元にプルダウンメニューを表示
選択した環境のエンドポイント情報を自動で選択する
こうしてスケーラブルな開発環境ができた
以前の開発環境よりも改善された点
プランナーが自由に環境を増やすことができるようになった
ノードの追加だけでスケールするようになった
社内からGCPへの移行によりリソースの増減が柔軟になった
エンジニアの作業フローも変化
クライアントエンジニアもGCP上のサーバを利用するように
デプロイ・ログインして動作確認して削除するなどが可能に
GCP、GKEを利用した仕組みづくりによって、
エンジニア・プランナーの作業フローが格段に改善された
今後の課題
JenkinsのGCPへの移行
社内にあるためにスレーブの追加が一手間
UnityのためにMacが必須となっており簡単に移行できない
DockerビルドのGoogle Cloud Buildへの移行
一台のスレーブで全イメージを並列ビルドしているため遅い
Jenkins SlaveがDockerビルドに専有される
うまく行った点の社内への共有
他プロジェクトでも再利用できる点は多いハズ
まとめ
"開発環境がスケールすることで開発もスケールできる"
ご静聴ありがとうございました

More Related Content

What's hot

レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ増田 亨
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)Koichiro Matsuoka
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~torisoup
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善Ito Takayuki
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例sairoutine
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するためにShun Tsunoda
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編infinite_loop
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?Masahito Zembutsu
 
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてDeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてMakoto Haruyama
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -ShionITO1
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築gree_tech
 

What's hot (20)

レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチレガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
レガシーコードの複雑さに立ち向かう~ドメイン駆動設計のアプローチ
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
 
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
2018/1/30 Django勉強会
2018/1/30 Django勉強会2018/1/30 Django勉強会
2018/1/30 Django勉強会
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
 
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム SakashoについてDeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
 

Similar to GCP・GKEで作るスケーラブルなゲーム開発環境

剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術Satoshi Yamafuji
 
オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略Yasutomo Uemori
 
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例Amazon Web Services Japan
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaokabeyond Co., Ltd.
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入Hiroki Tamiya
 
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンドTakehara Ryo
 
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう![CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!Samir Hammoudi
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準Takahiro Hozumi
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことgree_tech
 
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現UnityTechnologiesJapan002
 
俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)Masayuki KaToH
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Kazumi IWANAGA
 
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境KLab Inc. / Tech
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker雄哉 吉田
 
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_configTakayoshi Tanaka
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 
アカツキはどのようにAWSを活用しているか #jawsug
アカツキはどのようにAWSを活用しているか #jawsugアカツキはどのようにAWSを活用しているか #jawsug
アカツキはどのようにAWSを活用しているか #jawsugaktsk
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデートAkira Inoue
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphonedena_study
 
20180119_AIを支えるクラウド技術
20180119_AIを支えるクラウド技術20180119_AIを支えるクラウド技術
20180119_AIを支えるクラウド技術康平 秋山
 

Similar to GCP・GKEで作るスケーラブルなゲーム開発環境 (20)

剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
 
オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略オンラインゲームのRails複数db戦略
オンラインゲームのRails複数db戦略
 
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
AWS Black Belt Online Seminar AWS上でのスピードと高可用性を両立したゲームインフラの構築と事例
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入
 
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
自動化ーニバルだよ!GDC16に見る自動化技術とテストのトレンド
 
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう![CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
[CEDEC 2018] グローバル スケール コネクテッドゲームを GCP で作ろう!
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準
 
ネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったことネットワークエンジニアがWeb開発をやってみて思ったこと
ネットワークエンジニアがWeb開発をやってみて思ったこと
 
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)
 
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
Developers Summit 2023 9-D-1「もう悩まされない開発環境、プロジェクトで統一した環境をいつでもどこでも」
 
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
アカツキはどのようにAWSを活用しているか #jawsug
アカツキはどのようにAWSを活用しているか #jawsugアカツキはどのようにAWSを活用しているか #jawsug
アカツキはどのようにAWSを活用しているか #jawsug
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
 
Effective web performance tuning for smartphone
Effective web performance tuning for smartphoneEffective web performance tuning for smartphone
Effective web performance tuning for smartphone
 
20180119_AIを支えるクラウド技術
20180119_AIを支えるクラウド技術20180119_AIを支えるクラウド技術
20180119_AIを支えるクラウド技術
 

More from Yasutomo Uemori

Active job meets kubernetes
Active job meets kubernetesActive job meets kubernetes
Active job meets kubernetesYasutomo Uemori
 
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDRuby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDYasutomo Uemori
 
サービスクラス、その前に
サービスクラス、その前にサービスクラス、その前に
サービスクラス、その前にYasutomo Uemori
 
Rails on Dockerとの戦い
Rails on Dockerとの戦いRails on Dockerとの戦い
Rails on Dockerとの戦いYasutomo Uemori
 
Rubocopとの付き合い方
Rubocopとの付き合い方Rubocopとの付き合い方
Rubocopとの付き合い方Yasutomo Uemori
 
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例Yasutomo Uemori
 

More from Yasutomo Uemori (7)

Active job meets kubernetes
Active job meets kubernetesActive job meets kubernetes
Active job meets kubernetes
 
Ruby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDDRuby/Rails Benchmarking and Profiling with TDD
Ruby/Rails Benchmarking and Profiling with TDD
 
サービスクラス、その前に
サービスクラス、その前にサービスクラス、その前に
サービスクラス、その前に
 
Rails on Dockerとの戦い
Rails on Dockerとの戦いRails on Dockerとの戦い
Rails on Dockerとの戦い
 
Rubocopとの付き合い方
Rubocopとの付き合い方Rubocopとの付き合い方
Rubocopとの付き合い方
 
Rails api way in aiming
Rails api way in aimingRails api way in aiming
Rails api way in aiming
 
ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例ゲーム会社でのRuby : rails活用事例
ゲーム会社でのRuby : rails活用事例
 

GCP・GKEで作るスケーラブルなゲーム開発環境