Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
DeNA
5,909 views
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA TechCon 2017の登壇資料です。
Technology
◦
Read more
5
Save
Share
Embed
Embed presentation
1
/ 71
2
/ 71
3
/ 71
4
/ 71
5
/ 71
6
/ 71
7
/ 71
8
/ 71
9
/ 71
10
/ 71
11
/ 71
12
/ 71
Most read
13
/ 71
14
/ 71
Most read
15
/ 71
16
/ 71
17
/ 71
18
/ 71
19
/ 71
20
/ 71
Most read
21
/ 71
22
/ 71
23
/ 71
24
/ 71
25
/ 71
26
/ 71
27
/ 71
28
/ 71
29
/ 71
30
/ 71
31
/ 71
32
/ 71
33
/ 71
34
/ 71
35
/ 71
36
/ 71
37
/ 71
38
/ 71
39
/ 71
40
/ 71
41
/ 71
42
/ 71
43
/ 71
44
/ 71
45
/ 71
46
/ 71
47
/ 71
48
/ 71
49
/ 71
50
/ 71
51
/ 71
52
/ 71
53
/ 71
54
/ 71
55
/ 71
56
/ 71
57
/ 71
58
/ 71
59
/ 71
60
/ 71
61
/ 71
62
/ 71
63
/ 71
64
/ 71
65
/ 71
66
/ 71
67
/ 71
68
/ 71
69
/ 71
70
/ 71
71
/ 71
More Related Content
PDF
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
by
Makoto Haruyama
PPTX
世界へ向けたゲーム開発 〜ローカライズ支援ツール『LION』〜
by
DeNA
PPTX
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
by
DeNA
PDF
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
by
Daisuke Morishita
PDF
Dockerfileを改善するためのBest Practice 2019年版
by
Masahito Zembutsu
PPTX
DeNAのサーバー"コード"レスアーキテクチャ
by
Haruto Otake
PDF
【Unity】 Behavior TreeでAIを作る
by
torisoup
PDF
自宅vSphereからニフクラに引っ越ししてみた
by
富士通クラウドテクノロジーズ株式会社
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
by
Makoto Haruyama
世界へ向けたゲーム開発 〜ローカライズ支援ツール『LION』〜
by
DeNA
DeNAのネイティブアプリにおけるサーバ開発の現在と未来
by
DeNA
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
by
Daisuke Morishita
Dockerfileを改善するためのBest Practice 2019年版
by
Masahito Zembutsu
DeNAのサーバー"コード"レスアーキテクチャ
by
Haruto Otake
【Unity】 Behavior TreeでAIを作る
by
torisoup
自宅vSphereからニフクラに引っ越ししてみた
by
富士通クラウドテクノロジーズ株式会社
What's hot
PDF
Postgresql on kubernetesへの道
by
t8kobayashi
PDF
大規模環境のOpenStackアップグレードの考え方と実施のコツ
by
Tomoya Hashimoto
PDF
Building the Game Server both API and Realtime via c#
by
Yoshifumi Kawai
PPTX
Ganglia のUIにGrafanaを追加する話
by
KLab Inc. / Tech
PPTX
自宅インフラの育て方 第2回
by
富士通クラウドテクノロジーズ株式会社
PDF
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
PDF
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
PPTX
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
by
DeNA
PPTX
ゲームエンジニアのためのデータベース設計
by
sairoutine
PDF
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
by
Daisuke Masubuchi
PDF
GitOpsでKubernetesのManifest管理
by
Shinya Sasaki
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
PDF
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
by
DeNA
PPTX
【CEDEC2014】アセットパイプラインを構築する上で重要な事~映像業界⇔ゲーム業界双方の視点から見た本質的なパイプライン
by
RYUTARO OSAFUNE
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
by
Hibino Hisashi
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
by
NTT DATA Technology & Innovation
PDF
JANOG43 Forefront of SRv6, Open Source Implementations
by
Kentaro Ebisawa
PDF
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
PPTX
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
Postgresql on kubernetesへの道
by
t8kobayashi
大規模環境のOpenStackアップグレードの考え方と実施のコツ
by
Tomoya Hashimoto
Building the Game Server both API and Realtime via c#
by
Yoshifumi Kawai
Ganglia のUIにGrafanaを追加する話
by
KLab Inc. / Tech
自宅インフラの育て方 第2回
by
富士通クラウドテクノロジーズ株式会社
Google Cloud Game Servers 徹底入門 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
フロー効率性とリソース効率性について #xpjug
by
Itsuki Kuroda
DeNAのインフラ戦略 〜クラウドジャーニーの舞台裏〜 [DeNA TechCon 2019]
by
DeNA
ゲームエンジニアのためのデータベース設計
by
sairoutine
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
by
Daisuke Masubuchi
GitOpsでKubernetesのManifest管理
by
Shinya Sasaki
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
by
NTT DATA Technology & Innovation
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
by
DeNA
【CEDEC2014】アセットパイプラインを構築する上で重要な事~映像業界⇔ゲーム業界双方の視点から見た本質的なパイプライン
by
RYUTARO OSAFUNE
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
by
Hibino Hisashi
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
by
NTT DATA Technology & Innovation
JANOG43 Forefront of SRv6, Open Source Implementations
by
Kentaro Ebisawa
ネットワーク ゲームにおけるTCPとUDPの使い分け
by
モノビット エンジン
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
by
Google Cloud Platform - Japan
BuildKitによる高速でセキュアなイメージビルド
by
Akihiro Suda
Viewers also liked
PPTX
その後のDeNAのネイティブアプリ開発 #denatechcon
by
DeNA
PPTX
DeNAのプログラミング教育の取り組み #denatechcon
by
DeNA
PPTX
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
by
DeNA
PDF
DeNAのAIとは #denatechcon
by
DeNA
PDF
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
by
DeNA
PPTX
Unityネイティブプラグインマニアクス #denatechcon
by
DeNA
PPTX
AndApp開発における全て #denatechcon
by
DeNA
PDF
TLS 1.3 と 0-RTT のこわ〜い話
by
Kazuho Oku
PPTX
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
by
DeNA
PPTX
DeNA private cloudのその後 #denatechcon
by
DeNA
PDF
ログ分析で支えるゲームパラメータ設計 #denatechcon
by
DeNA
PDF
Data Day Texas 2017: Scaling Data Science at Stitch Fix
by
Stefan Krawczyk
PPTX
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
by
Toshiharu Sugiyama
PDF
サービスの成長を支えるフロントエンド開発 #denatechcon
by
DeNA
PDF
SafetyNetを使ってゲームを守る #denatechcon
by
DeNA
PDF
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
by
Itsuki Kuroda
PDF
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
by
DeNA
PDF
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
by
DeNA
PDF
深層学習による機械とのコミュニケーション
by
Yuya Unno
PDF
実世界の人工知能@DeNA TechCon 2017
by
Preferred Networks
その後のDeNAのネイティブアプリ開発 #denatechcon
by
DeNA
DeNAのプログラミング教育の取り組み #denatechcon
by
DeNA
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
by
DeNA
DeNAのAIとは #denatechcon
by
DeNA
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
by
DeNA
Unityネイティブプラグインマニアクス #denatechcon
by
DeNA
AndApp開発における全て #denatechcon
by
DeNA
TLS 1.3 と 0-RTT のこわ〜い話
by
Kazuho Oku
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~ #denatechcon
by
DeNA
DeNA private cloudのその後 #denatechcon
by
DeNA
ログ分析で支えるゲームパラメータ設計 #denatechcon
by
DeNA
Data Day Texas 2017: Scaling Data Science at Stitch Fix
by
Stefan Krawczyk
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
by
Toshiharu Sugiyama
サービスの成長を支えるフロントエンド開発 #denatechcon
by
DeNA
SafetyNetを使ってゲームを守る #denatechcon
by
DeNA
新規事業が対峙する現実からエンジニアリングを俯瞰する #devsumiB #devsumi
by
Itsuki Kuroda
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
by
DeNA
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
by
DeNA
深層学習による機械とのコミュニケーション
by
Yuya Unno
実世界の人工知能@DeNA TechCon 2017
by
Preferred Networks
Similar to DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
PDF
DeNAのゲーム開発を支える Game Backend as a Service
by
Makoto Haruyama
PDF
マイクロサービスっぽい感じの話
by
Makoto Haruyama
PPTX
Quiznowを支える技術 #yapcasia
by
Yosuke Furukawa
PDF
Unity開発で週イチ呑み会を支える技術
by
kazuya noshiro
PDF
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
by
Amazon Web Services Japan
PPTX
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
by
sairoutine
PDF
2012 08-23 Mame Night Jenkins
by
Takayuki Okazaki
PDF
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
by
Ayumu Aizawa
PDF
Agile japan2010 rakuten様プレゼン資料
by
Akiko Kosaka
PDF
BrainWars Night 発表資料
by
Takuma Kudo
PDF
ゲーム業界から見たアジャイル開発
by
Masaru Nagaku
PDF
39 works:ドコモにおける オープンイノベーションプログラムの紹介
by
Osaka University
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
by
智治 長沢
PDF
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
by
Amazon Web Services Japan
PDF
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
by
Satoshi Yamafuji
PDF
GCSアジャイル開発を使ったゲームの作り方
by
Hiroyuki Tanaka
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
PPTX
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
by
DeNA
PDF
マイクロサービス時代の動画配信基Ruby×go=∞
by
DMM.com
PDF
FFRKを支えるWebアプリケーションフレームワークの技術
by
dena_study
DeNAのゲーム開発を支える Game Backend as a Service
by
Makoto Haruyama
マイクロサービスっぽい感じの話
by
Makoto Haruyama
Quiznowを支える技術 #yapcasia
by
Yosuke Furukawa
Unity開発で週イチ呑み会を支える技術
by
kazuya noshiro
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
by
Amazon Web Services Japan
レガシーな Perl システムに DDD (ドメイン駆動設計)を取り入れる
by
sairoutine
2012 08-23 Mame Night Jenkins
by
Takayuki Okazaki
Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋
by
Ayumu Aizawa
Agile japan2010 rakuten様プレゼン資料
by
Akiko Kosaka
BrainWars Night 発表資料
by
Takuma Kudo
ゲーム業界から見たアジャイル開発
by
Masaru Nagaku
39 works:ドコモにおける オープンイノベーションプログラムの紹介
by
Osaka University
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
by
智治 長沢
Game Development on AWS (ゲーム開発環境を向上させるためのAWS活用術)
by
Amazon Web Services Japan
剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
by
Satoshi Yamafuji
GCSアジャイル開発を使ったゲームの作り方
by
Hiroyuki Tanaka
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
DeNAにおけるCorpTechエンジニアリング [DeNA TechCon 2019]
by
DeNA
マイクロサービス時代の動画配信基Ruby×go=∞
by
DMM.com
FFRKを支えるWebアプリケーションフレームワークの技術
by
dena_study
More from DeNA
PPTX
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
by
DeNA
PPTX
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
by
DeNA
PPTX
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
by
DeNA
PPTX
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
by
DeNA
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
by
DeNA
PDF
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
by
DeNA
PPTX
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
by
DeNA
PPTX
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
by
DeNA
PDF
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
by
DeNA
PDF
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
by
DeNA
PDF
DeNA の Slack 導入と活用の事例紹介
by
DeNA
PPTX
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
by
DeNA
PPTX
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
by
DeNA
PPTX
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
by
DeNA
PPTX
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
by
DeNA
PPTX
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
by
DeNA
PPTX
MOV お客さま探索ナビの GCP ML開発フローについて
by
DeNA
PPTX
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
by
DeNA
PPTX
DeNA の AWS アカウント管理とセキュリティ監査自動化
by
DeNA
PPTX
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
by
DeNA
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
by
DeNA
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
by
DeNA
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
by
DeNA
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
by
DeNA
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
by
DeNA
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
by
DeNA
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
by
DeNA
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
by
DeNA
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
by
DeNA
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
by
DeNA
DeNA の Slack 導入と活用の事例紹介
by
DeNA
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
by
DeNA
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
by
DeNA
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
by
DeNA
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
by
DeNA
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
by
DeNA
MOV お客さま探索ナビの GCP ML開発フローについて
by
DeNA
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
by
DeNA
DeNA の AWS アカウント管理とセキュリティ監査自動化
by
DeNA
DeNAのQCTマネジメント IaaS利用のベストプラクティス [AWS Summit Tokyo 2019]
by
DeNA
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
1.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Feb 10, 2017 Makoto HARUYAMA DeNA Co., Ltd. のゲームを支えるプ ラットフォーム Sakasho
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 春山 誠 @Spring_MT
3.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. モバイルゲーム用プラットフォーム Sakasho
4.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoは社内のほぼ全てのゲームで 使われ続けている Sakashoを使っていると クライアント開発に集中できる Sakashoを使っているゲームは 盛り上がっている! 4 Sakashoとは 今回お話しするSakashoとは?
5.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 目次 1. Sakashoの機能と構成 2. 堅実な開発を目指して 3. 安定した運用 4. Sakashoの取り組み 5. Sakashoの課題とこれから 6. まとめ 5
6.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの機能と構成
7.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. アカウント管理 ユーザーデータ管理 課金処理 マスタ配信 アセット配信 CS対応のための仕組み など 7 Sakashoの機能と構成 モバイルゲームを作る上で必要な機能を提供 スムーズなゲーム開発が可能に
8.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. SDKの提供 組み込むだけでSakashoの機能が利用可能 Unity、C++のゲームエンジンに対応 iOS、Android共に対応可能 課金などのOSに依存している機能も、Sakasho と連携して簡単に使える インターフェースを提供 8 Sakashoの機能と構成
9.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 各ゲームの専用サーバーとの連携機能 ゲーム専用サーバーからSakashoにアクセスできるWeb APIを提供 ゲーム専用サーバーを介してのユーザー情報の取得などに対応 デバッグ、QA、テストにも利用 9 Sakashoの機能と構成
10.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 汎用的なWebページもかんたんに 作るのが地味に面倒な お知らせなどの汎用的な ページ配信システムも提供 10 Sakashoの機能と構成 タイトル問わず 同一文言を利用したい ポリシーや規約などの 一元管理も可能
11.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの機能と構成
12.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成を考える上で Sakashoの機能と構成 最も避けたいのはサービスダウン 障害の影響は最小限に押さえ込みたい 運用が始まったAPIは極力変更しない サービスへの影響のある変更は極力抑える 後方互換製を担保する 一貫性を重視し、不整合が起こりにくい作り 1つのトランザクションで複数のデータの更新を一気に アイテムを受取済みにすると同時にプレイヤーデータを更新
13.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 13 マイクロサービスがよいのでは?
14.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. マイクロサービスとは Sakashoの機能と構成 参考: http://microservices.io/patterns/microservices.html 機能をサービスという ⼩さなコンポーネント単位に 分割するアーキテクチャ
15.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 一般的なマイクロサービスの利点 Sakashoの機能と構成 各サービスは比較的小さくなる ○ コンテナの起動が早くなり、開発のイテレーションが高速に 各サービスのデプロイは独⽴して⾏える ○ 各サービスを独⽴して開発可能 ○ 複数のチームが独立して動く事ができる ○ 各サービスが独立しているので開発の規模拡大が容易 障害耐性を向上させる ○ 各サービスが完全に独立しているので、影響が他に及ばない 参考: http://microservices.io/patterns/microservices.html http://www.slideshare.net/zigorou/microservices-57643957
16.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. マイクロサービスの構成で必要なこと Sakashoの機能と構成 独立性の確保 ○ 開発、デプロイの独立 ○ 各サービスは夫々独立したデータベースを持っている 各サービスのインターフェース ○ HTTP/RESTのような同期的なプロトコル ○ AMQPのような非同期的なプロトコル 参考: http://microservices.io/patterns/microservices.html http://www.slideshare.net/zigorou/microservices-57643957
17.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoに合いそう
18.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 役割毎に10の独立したAPIコード群 Sakashoの構成 Sakashoの機能と構成 他のAPIへの影響を考えずにデプロイできる ひとつのAPIが止まっても 他のAPIに影響がでない状態を保てる API毎のコード量は少ない サーバーリソースを細かく調整できる 省メモリ
19.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 実際に開発・運用してみて Sakashoの機能と構成 スタート当初はAPI数も少なく管理自体も楽だった 運用を続けていくにつれてAPIが増加 メンテナンスが大変に…
20.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの機能と構成 APIをまたいだ共通モジュール群が存在 同一トランザクションで処理するため API毎の担当者制ではない 結局少ないメンバーで運用しているので、 全員が全てのAPIを触っている API毎のコードは独立しているが、DBは共通 独立性が担保できていない 発生してしまったデメリット
21.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 21 マイクロサービスから モノリシックへ
22.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. コードを統合 Sakashoの機能と構成 省メモリ サーバーリソースを細かく調整できる API同士の影響を最小限に 10あったAPIのうち、2つを統合済 これまでのよいところは引き継ぐ サーバーの増強などは特になし(今の構成のまま)
23.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して
24.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 要件定義からエンジニアが参加して仕様を作る 仕様通りに作る 仕様通りに動き続けることを担保する 堅実な開発を目剤して Sakashoの開発で重要なポイント
25.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 25 要件定義からエンジニアが 参加して仕様を作る
26.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 仕様はゲームチームと一緒になって作る 堅実な開発を目指して プレイヤーに届けたい価値を共有する ビジョンの共有 / とにかく聞きまくる 有識者の知見を集約させ、 仕様を練り上げる 必要であればCS、QA、関連チームの意見もSakashoが集約する
27.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して ユースケースをベースにした インターフェース作成 呼び出し方 レスポンスに何を含めるか エラーのハンドリング
28.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 28 仕様通りに作る
29.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して 設計 実装 テスト
30.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 仕様書はGithubで管理 常にみんなが確認できる状態に 設計 堅実な開発を目指して 用語の定義 / 機能要件の整理 / APIのインターフェース / テーブル定義 など
31.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. コードだけでなく仕様や設計の時点でPRして運用 しっかりと検討してから実装に着手することで 実装開始後の手戻りを減らすことができる 設計 堅実な開発を目指して 仕様や設計書の段階からチーム内でレビュー
32.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して
33.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. SDKの実装と ドキュメント生成を自動化 フォーマットはJSON形式で定義→ 実装 (SDK) 堅実な開発を目指して
34.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ロジックのレビューに集中できる環境を準備 rubocopの自動化ツール PRのフォーマット bookmarklet 実装 (Web API) 堅実な開発を目指して https://github.com/SpringMT/bitting
35.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 単体テスト 結合テスト テストアプリを使った動作テスト QAチームでのテスト テスト 堅実な開発を目指して
36.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 単体テスト 仕様を保証するものではなく、 あくまでDeveloper Testing 結合テスト 仕様を保証するテスト 後述 単体テスト・結合テスト 堅実な開発を目指して
37.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. テストアプリは、組み込んだSDKから 自動的に機能を反映するので メンテフリー skackへの通知や必要な情報の ダンプなどの機能あり テストアプリはQAチームも利用 テストアプリを使ったテスト 堅実な開発を目指して
38.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 仕様が確定したら必ずSakashoチームが仕様をシェア テスト観点・テスト項目の作成を行ってもらいSakasho チームとシェア 実際にテストアプリを使って検証 QAチームでのテスト 堅実な開発を目指して
39.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 39 仕様通りに動き続けること
40.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 結合テストの整備 因子・水準を作成してそれを満たすテストを書く 因子・水準QAチームも共有しレビューしてもらう 後方互換性の担保 APIのバージョニング戦略 基本的にリリースしたバージョンには手を加えない 加えるような変更をする場合は、新しいバージョンにする 新しいSDKからそのバージョンを使うようにする 古いバージョンのAPIが残り続けている現状 -> 2017年の課題 堅実な開発を目指して
41.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 因子・水準を作成しそれを満たす テストを書く 因子・水準はQAチームと共有し レビューしてもらう 結合テストの整備 堅実な開発を目指して
42.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 42 堅実な開発を目指して googletestを使ったSDKのテスト google製のC++テスティングFW https://github.com/google/googletest ライブラリのインストールはいらず、ccファイルをテストコ ードと一緒にビルドすればテストの実行ファイルができる Xcode(XCTest)と一緒に動かせる テスト結果を出力しやすいこと(JUnit形式) 結合テストと自動化 42
43.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して テスト結果を 通知
44.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して テスト結果を 通知
45.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 堅実な開発を目指して 負荷テストなど人力では難しい検証も実施 同時実行のテストによるデッドロックの検証 レプリ遅延を狙った検証
46.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 安定した運用
47.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 安定した運用のための取り組み 1. スパイクを避ける 2. キャパシティ管理 3. 継続的なパフォーマンス改善 47 安定した運用
48.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 48 スパイクを避ける
49.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 49 安定した運用 APIサーバーのslow restart Unicornの新しいプロセス(master + worker)が全て立 ち上がってから古いプロセスを停止 一時的にプロセス数が全体の2倍になり、メモリ 使用量が一瞬増える これを防ぐために、新しいworkerプロセスを1つ起 動できたタイミングで古いworkerプロセスを停止す るように修正
50.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. APIサーバーのslow restart 50 安定した運用
51.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 51 キャパシティ管理
52.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 安定した運用 リソースの使用状況をシミュレ ーションするコマンドを作成。 このコマンドの結果をdailyで レポートメール送るように しており、サーバーの台数調整 の指標としている リソースの過不足判断を出来るレポート
53.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 53 Worker枯渇監視 安定した運用 rack-server_statusを使ったworkerの枯渇監視 Unicorn::ConfiguratorFromEnvで UNICORN_WORKER_PROCESS_NUM を変更してworkerを増やす https://github.com/SpringMT/rack-server_status https://github.com/SpringMT/unicorn-configurator_from_env
54.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 54 継続的なパフォーマンス改善
55.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 55 パフォーマンス向上のために 安定した運用 クエリ改善 キャッシュ導入 ロジック改善 やっていることはシンプル
56.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 56 安定した運用 56 Web API <-> DBネットワークの帯域の使用が増えた DBに大量にデータを取りにいくようなクエリが発行 されていた Web APIのプロセスキャッシュ導入 大量にデータを取りにいかないように仕様を変え ずにWeb APIを修正 メモリキャッシュとアプリの修正
57.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 57 安定した運用 メモリキャッシュとアプリの修正 57 プロセスキャッシュ導入 Web APIのコード修正
58.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoはゲームのメンテナス状態や、マスター、アセッ トのバージョンなど、リクエスト毎に必ず項目がある データが格納されたそれぞれのテーブルにSELECT分を投げる リクエスト毎に各テーブルにクエリを投げると負荷がかか りすぎるので、必要なデータをまとめておくテーブルを作 成してそれを一回参照する 58 安定した運用 キャッシュテーブルの導入 58
59.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 59 安定した運用 キャッシュテーブルの導入 59 game_id version 1 1.0 2 2.0 masters game_id version 1 1.0 2 2.0 assets game_id opend_at 1 2017-02-10 2 2017-02-11 maintenances ・・ Web API
60.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 60 安定した運用 キャッシュテーブルの導入 60 game_id asset master maintenace 1 1.0 1.0 true 2 2.0 2.0 false game_status Web API ・・
61.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 61 安定した運用 キャッシュテーブルの導入 61
62.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの取り組み
63.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 「社内専用」という利点を活かした開発 リリース後のCS対応のサポート プレイヤーの調査や障害対応 ポリシーなどの確認 プロモーション時の負荷対策 63 Sakashoの取り組み 機能提供以外にも 横断的にゲームチームをサポートして情報収集
64.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの課題とこれから
65.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 65 特定の構成に最適化させたつくりになっていた Sakashoの課題とこれから 異なる構成のゲームに対応させようとなると、 要件が複雑になり機能開発の難易度が上がる あえてクライアントに実装されたロジックでゲームの大 部分が進行するような構成のゲームに最適化させること でスピードと安定性を優先
66.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 66 Sakashoのポリシー (抜粋) Sakashoの課題とこれから 原則的にゲームロジックを持たず、抽象化された機能提供のみを行うため、主に 一定のインタラクションを要求するために、クライアントに実装されたロジック でゲームの大部分が進行するような構成のゲームに向いています。逆に、 MMORPGのような、サーバ上にゲームロジックやステータスを多く持ち、クラ イアントでは主に表示と入力を行うような構成を要求するゲームには向いてい ません。 クライアント側にタイトル特有のロジックが寄ることは、サーバアクセスの少な さによるユーザ体感の向上とともに、ロジックが一ヶ所に集まることによる開発 効率の向上が図れる、という思想に基づいて各APIは設計されています。 Sakasho Users Guideより抜粋
67.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. これまでの制約を超えて Sakashoの課題とこれから スピード感や安定した開発を優先して、特定の構成に寄せ た作りになっていたが、安定した運用が定着した今、新た なステージとして「これまで対応できていなかった構成の ゲームへの対応」を進めていく
68.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 68 ゲームのロジックをサーバーへ Sakashoの課題とこれから ゲームのロジックを取り込める体制へ ゲームチームがより「おもしろいゲーム」づくりに 集中できる体制へ ゲームチームとと一緒になって より複雑な機能を作り始めている
69.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. まとめ
70.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 70 まとめ Sakashoは社内専用ゲームプラットフォームとして安定 して稼働をつづけている この安定稼働は、社内専用という利点と 構成に制約を設けることによって実現されている 今後はこの制約を取り払い、 より幅広いゲーム構成に対応できるよう挑戦を続ける
71.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ご清聴ありがとうございました