Submit Search
Upload
DeNAのゲーム開発を支える Game Backend as a Service
•
48 likes
•
20,382 views
Makoto Haruyama
Follow
Techconの資料となります。
Read less
Read more
Services
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
Masahito Zembutsu
捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Product ManagerとProduct Ownerの役割の違いについて
Product ManagerとProduct Ownerの役割の違いについて
Noritaka Shinohara
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Nginx lua
Nginx lua
Moriyoshi Koizumi
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
Yoshitaka Kawashima
Recommended
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
Kouji YAMADA
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
Masahito Zembutsu
捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
Product ManagerとProduct Ownerの役割の違いについて
Product ManagerとProduct Ownerの役割の違いについて
Noritaka Shinohara
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
Nginx lua
Nginx lua
Moriyoshi Koizumi
ウォーターフォールとアジャイルのフェアな比較
ウォーターフォールとアジャイルのフェアな比較
Yoshitaka Kawashima
nginxの紹介
nginxの紹介
Takashi Takizawa
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Tomoki Ando
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Nginx勉強会
Nginx勉強会
Yuji Otani
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
hideakikabuto
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
Insight Technology, Inc.
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
Mei Nakamura
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
Masahito Zembutsu
Web Intents入門
Web Intents入門
Shumpei Shiraishi
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
NTT DATA Technology & Innovation
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
dena_study
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
dena_study
More Related Content
What's hot
nginxの紹介
nginxの紹介
Takashi Takizawa
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
Tomoki Ando
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Nginx勉強会
Nginx勉強会
Yuji Otani
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
hideakikabuto
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
Insight Technology, Inc.
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
Mei Nakamura
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
Masahito Zembutsu
Web Intents入門
Web Intents入門
Shumpei Shiraishi
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
NTT DATA Technology & Innovation
What's hot
(20)
nginxの紹介
nginxの紹介
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
もしSIerのエンジニアがSRE本を読んだら
もしSIerのエンジニアがSRE本を読んだら
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
Nginx勉強会
Nginx勉強会
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Serverless時代のJavaについて
Serverless時代のJavaについて
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa...
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
Web Intents入門
Web Intents入門
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
Viewers also liked
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
dena_study
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
dena_study
Game BaaS Implemented in Ruby
Game BaaS Implemented in Ruby
dena_study
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
Makoto Haruyama
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
dena_study
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
dena_study
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
dena_study
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
dena_study
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
dena_study
Viewers also liked
(11)
制作を支えたツール達 (パズル戦隊デナレンジャー)
制作を支えたツール達 (パズル戦隊デナレンジャー)
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
Game BaaS Implemented in Ruby
Game BaaS Implemented in Ruby
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
FINAL FANTASY Record Keeper 演出データについて
FINAL FANTASY Record Keeper 演出データについて
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
ガールアックス マルチプレイのリアルタイム通信ゲーム開発入門
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
Similar to DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話
Makoto Haruyama
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
Nifty cloud c4 sa meetup
Nifty cloud c4 sa meetup
Yuichi Saotome
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
Hirofumi Ichihara
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
NTT DATA OSS Professional Services
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
社員数100名の壁を越える タイミングに在籍する、 組織・サービスを支える プロダクトチームの 苦悩と喜び−ランサーズ− のサマリ
社員数100名の壁を越える タイミングに在籍する、 組織・サービスを支える プロダクトチームの 苦悩と喜び−ランサーズ− のサマリ
Satoshi Yokoi
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
dgcircus
CData API Server ハンズオン
CData API Server ハンズオン
CData Software Japan
【JAWS DAYS 2014】ランサーズを支えるRDS
【JAWS DAYS 2014】ランサーズを支えるRDS
Yuki Kanazawa
Enterprise Redmine
Enterprise Redmine
Dai FUJIHARA
Paa s and oss
Paa s and oss
Yusuke Ando
20180319 ccon sync kintone
20180319 ccon sync kintone
CData Software Japan
Similar to DeNAのゲーム開発を支える Game Backend as a Service
(20)
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話
2014-04-22 Ques #4 Automation Testing of Mobage Platform
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Nifty cloud c4 sa meetup
Nifty cloud c4 sa meetup
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
社員数100名の壁を越える タイミングに在籍する、 組織・サービスを支える プロダクトチームの 苦悩と喜び−ランサーズ− のサマリ
社員数100名の壁を越える タイミングに在籍する、 組織・サービスを支える プロダクトチームの 苦悩と喜び−ランサーズ− のサマリ
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
CData API Server ハンズオン
CData API Server ハンズオン
【JAWS DAYS 2014】ランサーズを支えるRDS
【JAWS DAYS 2014】ランサーズを支えるRDS
Enterprise Redmine
Enterprise Redmine
Paa s and oss
Paa s and oss
20180319 ccon sync kintone
20180319 ccon sync kintone
More from Makoto Haruyama
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Makoto Haruyama
Fluentd in Co-Work
Fluentd in Co-Work
Makoto Haruyama
fluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談
Makoto Haruyama
初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談
Makoto Haruyama
Mysql casual fukuoa_vlo_2
Mysql casual fukuoa_vlo_2
Makoto Haruyama
Yapc2012 ltthon
Yapc2012 ltthon
Makoto Haruyama
分散ファイルストレージ
分散ファイルストレージ
Makoto Haruyama
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
Makoto Haruyama
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
20110622 haruyama webso]cket
20110622 haruyama webso]cket
Makoto Haruyama
More from Makoto Haruyama
(11)
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Fluentd in Co-Work
Fluentd in Co-Work
fluent-plugin-resque_stat
fluent-plugin-resque_stat
初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談
初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談
Mysql casual fukuoa_vlo_2
Mysql casual fukuoa_vlo_2
Yapc2012 ltthon
Yapc2012 ltthon
分散ファイルストレージ
分散ファイルストレージ
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
20110622 haruyama webso]cket
20110622 haruyama webso]cket
DeNAのゲーム開発を支える Game Backend as a Service
1.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. January 29, 2016 Takehiko YOKOTA Makoto HARUYAMA DeNA Co., Ltd. のゲーム開発を支える Game Backend as a Service
2.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 少し自己紹介 2 ● 2008年 DeNA入社(みんなのウェディング) ● 2010年 エンジニアになる ● 2011年 DeNA退社 -> 福岡へ ● 2013年 DeNAに出戻り ● 2016年 ゲーム事業本部 Makoto HARUYAMA ● GitHub https://github.com/SpringMT ● Twitter https://twitter.com/Spring_MT 春山 誠
3.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. を支える技術
4.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. なにを支えているのか? 4 DeNAのゲーム事業の裏側
5.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. どうやって支えているか? ネイティブアプリ用プラットフォーム Sakasho
6.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 今日お話すること 1. Sakashoとは 2. Sakashoの構成について 3. Rubyを使った開発について 4. その他の技術 5. Sakashoチームの体制について 6. まとめ 6
7.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 7 Sakashoとは
8.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoとは ネイティブアプリゲーム開発に 必要とされるサーバー機能を 提供するゲームプラットフォーム ゲーム開発におけるサーバー機能を Sakashoが一括で受け持つ ことで開発・運用コストを削減 運用のしやすさも見据えたゲームの 作り方のルールもある程度強いる 8
9.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ゲーム開発・運用に必要なAPIの提供 ● ユーザー情報API ● マスターデータ配信API ● ログインボーナスAPI など 9 Sakashoが提供している機能
10.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. SDK ● 課金やPush通知など、OSに依存している機能について 簡単に使えるインターフェースの提供 ● Unity、C++のゲームエンジンに対応 10 Sakashoが提供している機能
11.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. WebView用インターフェースの提供 ● お知らせの配信 ● 掲示板 ● 利用規約など 11 Sakashoが提供している機能
12.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ゲーム専用サーバーとの連携機能 ● ゲーム専用サーバーからSakashoにアクセスできる Web APIを提供 ● ゲーム専用サーバーを介しての ユーザー情報の取得などに対応 12 Sakashoが提供している機能
13.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの機能一覧(一部抜粋) ● マスターデータ配信 ● アセット配信 ● プレイヤー管理 ● お知らせ管理 ● アイテム管理 ● ログインボーナス ● お問合せ機能 ● 課金 ● ログ管理 13 ● ランキング ● 掲示板 ● 補填機能 ● メンテナンス ● Push通知 ● プレイヤー検索機能 ● ギルド ● アプリのバージョン管理 ● CS運用ツール Sakashoが提供している機能
14.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 主なリリースタイトル 14
15.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成について
16.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成について
17.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. マイクロサービス? 役割毎に10の独立したAPIコード群がある ○ メリット ■ 他のAPIへの影響を考えずにデプロイできる ■ リソースを細かく調整できる ○ デメリット ■ 運用工数がかかる(gemの更新とか) ■ 結局サービス毎に人を専用にアサインとかしなかったので、全員 全部見る状態 コード量も少ない(API全部ファイル数が700程度、行数3万行)のでこの規模 だと管理工数のほうが大きい Sakashoの構成について
18.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 18 Sakashoの構成について
19.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ○ MySQLのMaster/Slave構成 + sharding ○ MHAでMasterの高可用性 ○ MySQLへの接続は都度接続 ○ DNSサーバーはMyDNSを使って、DeNA独自の拡張も入っている DB周りは、基本インフラチームの指針にそっており、DeNAのオーソドックス な構成になっています Sakashoの構成について DBに関して
20.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rubyを使った開発
21.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rubyを書ける人が多いチーム ○ Rubyで開発、運用 > Perlでの開発・運用 ○ 何かあってもフォローできる人材がいる 採用面 ○ Rubyでサービス開発を経験している人材の増加 Rubyの選択 21 Rubyを使った開発 PerlからRubyへの移行対応も責任をもって進めた
22.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ● Rubyの導入期 ● Rubyを使った開発期 ● Rubyで書かれたアプリケーションの運用期 Rubyを使った開発と運用 22 Rubyを使った開発
23.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rubyの導入期
24.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. DeNAで運用するための要件を満たすためのモ ジュール Rubyの導入期 ResolverMyDNS ○ MyDNSにアクセウし名前解決をするためのモジュール ○ DNSキャッシュもしている ○ DNSサーバーにDeNA用に拡張したMyDNSを使っており、それに即 した作りになっている。
25.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rack::PerformanceLog ○ DeNA専用のパフォーマンス調査用のログを出すrackミドルウェア。 ○ 一行追加すればOK DeNAで運用するための要件を満たすためのモ ジュール Rubyの導入期
26.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 社内rubygemsサーバーの構築 社内専用gemの管理・配布のため ○ Gem in a Boxを使っている Rubyの導入期
27.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 小さいサービスで実績を作る ○ 社内サービスをリリース ■ 社内用アプリ配信ツール(Rails) iota 実績とテスト 27 Rubyの導入期
28.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rubyを使った開発期
29.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 1. API サーバー : Sinatra + Sequel + Jbuilder a. 省メモリ・ハイパフォーマンス b. JSONしか返さない 2. 管理 ツール : Ruby on Rails a. アクセス数は限られている b. Web UIを簡単に作れる c. 多少パフォーマンスが犠牲にしても、開発スピードを上げる フレームワーク選定 29 Rubyを使った開発期
30.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 高速化 ○ capistrano-bundle_rsync ○ デプロイサーバでアプリを git clone して bundle install したものを rsyncするためのgem daemontoolsとの連携 ○ インフラチーム http://d.hatena.ne.jp/limitusus/20131225/1387993119 http://blog.livedoor.jp/sonots/archives/40248661.html Deploy 30 Rubyを使った開発期
31.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ridgepole https://github.com/winebarrel/ridgepole ● ファイルの内容を実際のスキーマとの差分があればそれを自動的に 検知し、DDLを発行してくれる ● 1テーブル1ファイルで表現 ● shardingにも対応したスクリプトを用意 スキーマ管理 31 Rubyを使った開発期
32.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの共通ロジックをgemにする ○ API毎のリクエスト・レスポンスの共通処理の切り出し ○ モデルの共通化 DBのコネクション管理 ○ APIではコネクション管理用の軽いラッパーを用意 ■ コードの中で明示的にMaster or Slaveなのかを書く ○ 管理ツール(Rails)ではSwitchPointを使用 その他 32 Rubyを使った開発期
33.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rubyを使った アプリケーションの運用期
34.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. パフォーマンス向上 ○ picojson_ruby 監視 ○ stackprof ○ rack-server_status 運用ツール ○ unicorn-timeout_backtracer ○ unicorn-configurator_from_env ○ unicorn-log_error_one_liner 運用時 34 Rubyを使ったアプリケーションの運用期
35.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. PicojsonRuby ○ rubyの標準ライブラリを使ってJSONをparseすると元のJSONの大き さの約10倍くらいのメモリを消費する ○ Proxyサーバーで共通のkey valueを1つだけ追加したいだけ ○ C++でかかれたpicojsonをrubyから呼び出せるようにして、JSONの 操作をC++で行うようにした パフォーマンス向上 35 Rubyを使ったアプリケーションの運用期
36.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Stackprof ○ https://github.com/tmm1/stackprof ○ SakashoのAPIサーバーに下記のようなコードを仕込んでいる Rubyのプロファイリング 36 Rubyを使ったアプリケーションの運用期
37.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Rack::ServerStatus ○ workerの状況を返すエンドポイントを追加する rackミドルウェア ○ workerが枯渇して大障害になった経緯から作成 枯渇するとアラートが飛んでくるようになっている Workerの状態監視 37 2016-01-25 19:23:15.643716 [host名 sakasho.test.example] BusyWorkers: 3, IdleWorkers: 0 pid status remote_addr host method uri protocol ss 22286 A 127.0.0.1 sakasho.test.example GET /server-status?json HTTP/1.0 0 22289 A 127.0.0.1 sakasho.test.example POST /v1foo HTTP/1.0 0 22292 A 127.0.0.1 sakasho.test.example GET /v1/bar HTTP/1.0 0 Rubyを使ったアプリケーションの運用期
38.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Unicorn::ConfiguratorFromEnv ○ Unicornのworker数を環境変数で設定できる ○ アプリケーションのコードを修正せずに インフラチームだけで対応できる require するだけでOK worker数をすぐに調整できるようにする 38 Rubyを使ったアプリケーションの運用期
39.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Unicornがタイムアウトしたときの調査 Rubyを使ったアプリケーションの運用期 Unicorn::TimeoutBackTracer ○ Unicornのworkerがタイムアウトしたときに、プロセスをkillする前に、 gdbrubyを使用してバックトレースを取得する ○ requireするだけでOK $ cat /tmp/test-timeout-16768.log command: gdb -silent -nw /sake/.rbenv/versions/2.1.3/bin/ruby 16603 environ: ruby_version: c_backtrace: #0 0x00007ff11bd1c2f3 in select () from /lib64/libc.so.6 #1 0x00007ff11ceba8f6 in rb_fd_select (max=13, read=0x7fff469285f0, write=0x0, except=0x0, timeout=0x7fff46928340) at thread.c:3336
40.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. AWS
41.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. AWSも活用しています ○ S3 ■ 履歴等のデータの保存 ■ ファイル配信 ○ SNS ■ push通知 ■ 全ユーザーに配信が簡単にできる AWS 41 その他の技術
42.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoチーム
43.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. チーム ○ 8人から12人くらい ■ ブラウザタイトルからアプリタイトルへ移行する際にsakashoの運 用を経験することが多い リリースサイクル ○ 2週間に一度のペースでリリース ○ 2週間でできることやる Sakasho専任チーム 43 Sakashoチーム
44.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. リリースサイクル
45.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ● 要望確確認会: リリースに含める フィーチャーを検討 ● Sakasho定例: リリースに含める予 定のフィーチャーをチームにシェア ● QA Kickoff: リリースに予定の フィーチャーをQAに伝え、リリース するフィーチャーとリリース日を決 める ● リリース告知: ゲームデベロッパに アナウンスする。 リリースサイクルを細かく 45 ● 仕様書コンプリート ● 開発開始 ● SDKのスケルトン提出 ● フィーチャーコンプリート ● QA開始 ● サインオフ(QA完了) ● リリース ● QA確認 ● ゲームデベロッパにリリースした旨をア ナウンス ● Sakasho定例: フェーズの振り返り Sakashoチーム
46.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 他部署との連携 46 ゲームの開発・運用には色々な部署が関わっています ○ インフラ ○ CS ○ QA(Sakasho自体のQAとゲームのQA) ○ マーケティング(特にプロモーション関連) ○ バックオフィス関連 ■ 法務 ■ 経理 ○ 各ゲーム開発を調整するチーム Sakashoチーム
47.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 他部署との連携 47 色々な人達との調整も含めてSakashoが引き受けます ○ CS向けやマーケティング向けのツールも提供 ■ レポーティング機能 ■ お問合せ対応ツール ■ HadoopログAPIの提供 ○ わからないことがあったら ■ 基本社内にユーザーがいるので、聞きに行く! Sakashoチーム
48.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakasho以外にも
49.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ゲーム開発を支えるサービス 49 iota ○ アプリ配信ツール ○ iOSアプリでは社内用の証明書にリザインする ○ 30 GB / day くらいの転送量が発生している一大社内サービス (ゲーム以外も利用) TwitterDM送信ツール ○ スケジュール配信可能 Sakasho以外のサービス
50.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. まとめ ゲーム開発を支えるプラットフォームSakasho ○ Sakashoがサーバー側の運用を一括で受け持つことで 各ゲームタイトルはゲーム開発に集中できる Sakashoのサーバーサイドの開発はRubyを使っている ○ 大規模なアプリケーションの開発・運用に 必要な仕組みを整備しました
Download now