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
EN
KT
Uploaded by
KLab Inc. / Tech
106 views
【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
CEDEC+KYUSHU2024セッション資料
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 191
2
/ 191
3
/ 191
4
/ 191
5
/ 191
6
/ 191
7
/ 191
8
/ 191
9
/ 191
10
/ 191
11
/ 191
12
/ 191
13
/ 191
14
/ 191
15
/ 191
16
/ 191
Most read
17
/ 191
18
/ 191
19
/ 191
20
/ 191
21
/ 191
22
/ 191
23
/ 191
24
/ 191
25
/ 191
26
/ 191
27
/ 191
28
/ 191
29
/ 191
30
/ 191
31
/ 191
32
/ 191
33
/ 191
34
/ 191
35
/ 191
36
/ 191
37
/ 191
38
/ 191
39
/ 191
40
/ 191
41
/ 191
42
/ 191
43
/ 191
44
/ 191
45
/ 191
46
/ 191
47
/ 191
48
/ 191
49
/ 191
50
/ 191
51
/ 191
52
/ 191
53
/ 191
54
/ 191
55
/ 191
56
/ 191
57
/ 191
58
/ 191
59
/ 191
60
/ 191
61
/ 191
62
/ 191
63
/ 191
64
/ 191
65
/ 191
66
/ 191
67
/ 191
68
/ 191
69
/ 191
70
/ 191
71
/ 191
72
/ 191
73
/ 191
74
/ 191
75
/ 191
76
/ 191
77
/ 191
78
/ 191
79
/ 191
80
/ 191
81
/ 191
82
/ 191
83
/ 191
84
/ 191
85
/ 191
86
/ 191
87
/ 191
88
/ 191
89
/ 191
90
/ 191
91
/ 191
92
/ 191
93
/ 191
94
/ 191
95
/ 191
96
/ 191
97
/ 191
98
/ 191
99
/ 191
100
/ 191
101
/ 191
102
/ 191
103
/ 191
104
/ 191
105
/ 191
106
/ 191
107
/ 191
108
/ 191
109
/ 191
110
/ 191
111
/ 191
112
/ 191
113
/ 191
114
/ 191
115
/ 191
116
/ 191
117
/ 191
118
/ 191
119
/ 191
120
/ 191
121
/ 191
122
/ 191
123
/ 191
124
/ 191
125
/ 191
126
/ 191
127
/ 191
128
/ 191
129
/ 191
130
/ 191
131
/ 191
132
/ 191
133
/ 191
134
/ 191
135
/ 191
136
/ 191
137
/ 191
138
/ 191
139
/ 191
140
/ 191
141
/ 191
142
/ 191
143
/ 191
144
/ 191
145
/ 191
146
/ 191
147
/ 191
148
/ 191
149
/ 191
150
/ 191
151
/ 191
152
/ 191
153
/ 191
154
/ 191
155
/ 191
156
/ 191
157
/ 191
158
/ 191
159
/ 191
160
/ 191
161
/ 191
162
/ 191
163
/ 191
164
/ 191
165
/ 191
166
/ 191
167
/ 191
168
/ 191
169
/ 191
170
/ 191
171
/ 191
172
/ 191
173
/ 191
174
/ 191
175
/ 191
176
/ 191
177
/ 191
178
/ 191
179
/ 191
180
/ 191
181
/ 191
182
/ 191
183
/ 191
184
/ 191
185
/ 191
186
/ 191
187
/ 191
188
/ 191
189
/ 191
190
/ 191
191
/ 191
More Related Content
PDF
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
by
KLab Inc. / Tech
PDF
KLab si_case
by
KLab株式会社
PDF
【STR2 Klab プレゼンテーション】
by
Up Hatch
PDF
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
by
KLab Inc. / Tech
PDF
KLabのSI事業について
by
KLab株式会社
PDF
Phpconf2010
by
KLab株式会社
PDF
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
by
KLab Inc. / Tech
PDF
KLabのエンジニアを支えるカルチャー
by
KLab Inc. / Tech
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
by
KLab Inc. / Tech
KLab si_case
by
KLab株式会社
【STR2 Klab プレゼンテーション】
by
Up Hatch
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
by
KLab Inc. / Tech
KLabのSI事業について
by
KLab株式会社
Phpconf2010
by
KLab株式会社
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
by
KLab Inc. / Tech
KLabのエンジニアを支えるカルチャー
by
KLab Inc. / Tech
Similar to 【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
PDF
ゲーム業界から見たアジャイル開発
by
Masaru Nagaku
PDF
モバイルオンラインゲーム運用のための開発
by
KLab Inc. / Tech
PDF
オンラインゲーム開発の楽しさ
by
Akineko Shimizu
PPTX
Salesforce R&DとソーシャルとEngineer Happiness
by
Ryoji Osawa
PDF
スタートアップで培ったアーキテクチャ設計ノウハウ
by
Masakazu Matsushita
PDF
ゲーム会社でのRuby : rails活用事例
by
Yasutomo Uemori
PDF
地方企業がソーシャルゲーム開発を成功させるための10のポイント
by
Kentaro Matsui
PDF
GCP・GKEで作るスケーラブルなゲーム開発環境
by
Yasutomo Uemori
PPTX
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
by
WebSig24/7
PDF
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
by
KLab株式会社
PDF
A17_超高負荷トラフィックゲームを Azure PaaS でお手軽に運用! KMS 事例から学ぶ PaaS 活用の秘訣 [Microsoft Japan...
by
日本マイクロソフト株式会社
PDF
30分で分かった気になるソーシャルゲーム入門
by
陽一 滝川
PDF
運営型モバイルゲームの運用について
by
KLab Inc. / Tech
PDF
20121019 engineer startup_meeting
by
Shuichi Wada
PPTX
はじめてのアジャイルのその後 ーシン・サービス立ち上げ、スクラムぽくなってきたー
by
Otsuka Reina
PDF
KLabのゲーム開発を支える開発環境
by
KLab Inc. / Tech
PPTX
ネットワークエンジニアがWeb開発をやってみて思ったこと
by
gree_tech
PDF
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
by
Go2GroupJapan
PDF
モバイルオンラインゲームについて
by
KLab Inc. / Tech
PDF
【Drop wave】cedec2011『ネットワークゲーム時代に求められる、ゲームプランナーの基礎知識』
by
モノビット エンジン
ゲーム業界から見たアジャイル開発
by
Masaru Nagaku
モバイルオンラインゲーム運用のための開発
by
KLab Inc. / Tech
オンラインゲーム開発の楽しさ
by
Akineko Shimizu
Salesforce R&DとソーシャルとEngineer Happiness
by
Ryoji Osawa
スタートアップで培ったアーキテクチャ設計ノウハウ
by
Masakazu Matsushita
ゲーム会社でのRuby : rails活用事例
by
Yasutomo Uemori
地方企業がソーシャルゲーム開発を成功させるための10のポイント
by
Kentaro Matsui
GCP・GKEで作るスケーラブルなゲーム開発環境
by
Yasutomo Uemori
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
by
WebSig24/7
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
by
KLab株式会社
A17_超高負荷トラフィックゲームを Azure PaaS でお手軽に運用! KMS 事例から学ぶ PaaS 活用の秘訣 [Microsoft Japan...
by
日本マイクロソフト株式会社
30分で分かった気になるソーシャルゲーム入門
by
陽一 滝川
運営型モバイルゲームの運用について
by
KLab Inc. / Tech
20121019 engineer startup_meeting
by
Shuichi Wada
はじめてのアジャイルのその後 ーシン・サービス立ち上げ、スクラムぽくなってきたー
by
Otsuka Reina
KLabのゲーム開発を支える開発環境
by
KLab Inc. / Tech
ネットワークエンジニアがWeb開発をやってみて思ったこと
by
gree_tech
アジャイルナイトセミナー_2012年10月18日_Social Game x Agile Development
by
Go2GroupJapan
モバイルオンラインゲームについて
by
KLab Inc. / Tech
【Drop wave】cedec2011『ネットワークゲーム時代に求められる、ゲームプランナーの基礎知識』
by
モノビット エンジン
More from KLab Inc. / Tech
PDF
モバイルオンラインゲームのアプリ外課金の導入と運用方法について
by
KLab Inc. / Tech
PDF
デバイスファーム 「AirLab」 による 自動QAテストの実績と機械学習が拓く次世代QAの可能性
by
KLab Inc. / Tech
PDF
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
by
KLab Inc. / Tech
PDF
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
by
KLab Inc. / Tech
PDF
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
by
KLab Inc. / Tech
PDF
生成AIが切り拓く新しいゲームの創り方・遊び方
by
KLab Inc. / Tech
PDF
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
by
KLab Inc. / Tech
PDF
他業界からゲーム業界へ転向したときの話
by
KLab Inc. / Tech
PDF
「リアルISUCON」としてのモバイルオンラインゲーム開発
by
KLab Inc. / Tech
PDF
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
by
KLab Inc. / Tech
PDF
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
PDF
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
by
KLab Inc. / Tech
PPTX
KLabのチャットシステム インフラ変遷
by
KLab Inc. / Tech
PPTX
Ganglia のUIにGrafanaを追加する話
by
KLab Inc. / Tech
PPTX
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
by
KLab Inc. / Tech
PPTX
属人化して詰まってた作業を自動化で楽しようとした話
by
KLab Inc. / Tech
PPTX
見よう見まねでやってみる2D流体シミュレーション
by
KLab Inc. / Tech
PPTX
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
by
KLab Inc. / Tech
PPTX
VyOSで作るIPv4 Router/IPv6 Bridge
by
KLab Inc. / Tech
PPTX
ワールド別のDBへの取得・更新に後から対応した話
by
KLab Inc. / Tech
モバイルオンラインゲームのアプリ外課金の導入と運用方法について
by
KLab Inc. / Tech
デバイスファーム 「AirLab」 による 自動QAテストの実績と機械学習が拓く次世代QAの可能性
by
KLab Inc. / Tech
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
by
KLab Inc. / Tech
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
by
KLab Inc. / Tech
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
by
KLab Inc. / Tech
生成AIが切り拓く新しいゲームの創り方・遊び方
by
KLab Inc. / Tech
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
by
KLab Inc. / Tech
他業界からゲーム業界へ転向したときの話
by
KLab Inc. / Tech
「リアルISUCON」としてのモバイルオンラインゲーム開発
by
KLab Inc. / Tech
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
by
KLab Inc. / Tech
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
by
KLab Inc. / Tech
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
by
KLab Inc. / Tech
KLabのチャットシステム インフラ変遷
by
KLab Inc. / Tech
Ganglia のUIにGrafanaを追加する話
by
KLab Inc. / Tech
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
by
KLab Inc. / Tech
属人化して詰まってた作業を自動化で楽しようとした話
by
KLab Inc. / Tech
見よう見まねでやってみる2D流体シミュレーション
by
KLab Inc. / Tech
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
by
KLab Inc. / Tech
VyOSで作るIPv4 Router/IPv6 Bridge
by
KLab Inc. / Tech
ワールド別のDBへの取得・更新に後から対応した話
by
KLab Inc. / Tech
【公開用】モバイルオンラインゲーム開発を支える早く、安く、使いやすいサーバインフラ構築
2.
自己紹介 CEDEC+KYUSHU講演履歴 2018 大規模モバイルオンラインゲームを支えるソフトウェアアーキテクチャ開発とその使用例 2019 大規模モバイルオンラインゲームにおける安定運用のための仕組み 2020
ソースコードレビューのススメ 2021 個人情報の保護となりすまし対策 ~KLabのゲーム内通貨の払戻のシステムの場合~ 2022 表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス 2023 大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化 山田 雅人 KLab 株式会社 サーバリーダー KLabGames事業本部 エンジニアリング本部 技術広報グループ
3.
自己紹介 ● 2016年インフラエンジニアとして入社 ● オンプレミス/AWSを用いたインフラの構築・運用を担当 ●
現在はモバイルオンラインゲーム用インフラの新規開発に従事 髙橋 慶充 KLab 株式会社 インフラエンジニア エンジニアリング本部 インフラグループ
4.
4 KLabについて
5.
5 ミッション:「世界と自分をワクワクさせろ」 ビジョン:「エンターテインメントで、世界中のユーザーをひとつにつなげる」 社会に感動と喜びを提供できるような、サービス・技術を創造しています。 設立 2000年8月1日 資本金 61億8134万円(2024年9月末現在) 株式公開市場
東京証券取引所・プライム市場(3656) 代表者 代表取締役社長CEO 森田 英克 代表取締役副会長 五十嵐洋介 所在地 本社(東京都港区、六本木ヒルズ森タワー) 大阪事業所、福岡事業所、仙台事業所 主要関連会社 可来软件开发(上海)有限公司 (KLab China Inc.) 株式会社グローバルギア 従業員数 正社員 415名(2024年9月末現在) 主力:ゲーム事業 アニメ、コミック、ゲームなど、 世界中で人気の高いIPを原作とした モバイルオンラインゲームを 国内外に展開。 現在155の国と地域で配信 その他: スマートフォン関連のアプリケーション、 サービス及びサーバインフラの企画、 開発、提供、新規事業開拓など 会社紹介:KLab(クラブ)株式会社
6.
6 コーポレートサイト紹介 KLab 検索
7.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
8.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
9.
規模感の話 • 人数:100人未満 • 開発用サーバ環境数:250環境 •
開発用サーバ費用:75,000円/月 大体こんな感じでやってます。 はじめに
10.
• サーバ数すごく多い • その割には費用安い と思いませんか? サーバ数多くない?
11.
ざっくり構成図 リバースプロキシ:nginx アプリケーションサーバ:uWSGI Webサーバ RDBサーバ KVSサーバ MySQL Redis
12.
リバースプロキシ:nginx アプリケーションサーバ:uWSGI ざっくり構成図 Webサーバ RDBサーバ KVSサーバ 250用意する! MySQL Redis
13.
250環境の内訳 • 共用:200環境 • 個人用:50環境
14.
共用:200環境 • 毎日ROMのビルドと一緒にサーバのデプロイ • 一日最低2回(5-10回の時もある) •
ビルド単位でサーバは独立 ROMに対してサーバは1対1 惜しみなくサーバを占有します
15.
個人:50環境 • 占有してコーディングやコンテンツ作り用 • 作業中に他人の成果確認用 •
並行して別の作業をしたい時用 なんとなく今の環境使いたくない程度で 新しいサーバが使える気軽さ
16.
よくあるサーバインフラとの比較 共用サーバ(10台ぐらい) – VM/EKS/ECSを使っていくつか環境を用意 コンテナ on
ローカルマシン – Dockerなどでローカルマシンでコンテナを動かす
17.
共用サーバ メリット • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい デメリット •
個人の作業が他人に影響しやすい • 気軽に環境を量産できない
18.
共用サーバ メリット • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい デメリット •
個人の作業が他人に影響しやすい • 気軽に環境を量産できない
19.
ネットワーク越しのサポートがしやすい 壊れました!
20.
ネットワーク越しのサポートがしやすい SSHで サーバ見てみよう 壊れました!
21.
ネットワーク越しのサポートがしやすい SSHで サーバ見てみよう 壊れました! 気軽に確認
22.
共用サーバ メリット • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい デメリット •
個人の作業が他人に影響しやすい • 気軽に環境を量産できない
23.
非エンジニアにも使いやすい 新しいサーバ 用意してください!
24.
非エンジニアにも使いやすい 新しいサーバ 用意してください! 新しく起動!
25.
非エンジニアにも使いやすい 新しいサーバ 用意してください! 新しく起動! つかえるように なりました
26.
非エンジニアにも使いやすい 新しいサーバ 用意してください! 新しく起動! つかえるように なりました 難易度低い
27.
共用サーバ メリット • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい デメリット •
個人の作業が他人に影響しやすい • 気軽に環境を量産できない
28.
個人の作業が他人に影響しやすい あ、壊しちゃった
29.
個人の作業が他人に影響しやすい あ、壊しちゃった え!なんか壊れた!
30.
個人の作業が他人に影響しやすい あ、壊しちゃった え!なんか壊れた! 巻き込み事故
31.
デプロイしまーす 個人の作業が他人に影響しやすい
32.
デプロイしまーす 作業待ち ヒマだ・・・ 個人の作業が他人に影響しやすい
33.
作業待ち ヒマだ・・・ デプロイしまーす 個人の作業が他人に影響しやすい 他人待ちで 待機発生!
34.
共用サーバ メリット • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい デメリット •
個人の作業が他人に影響しやすい • 気軽に環境を量産できない
35.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです!
36.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです! でも予算が・・・
37.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです! 費用の承認 明後日になりそう
38.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです! 費用の承認 明後日になりそう 今すぐ 増やしたいのに
39.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです!
40.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです! 今忙しいから 後にして!
41.
気軽に環境を量産できない サーバ増やさないと 待ち時間が多いです! 今忙しいから 後にして! 今すぐ 増やしたいのに
42.
共用サーバ メリット • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい デメリット •
個人の作業が他人に影響しやすい • 気軽に環境を量産できない
43.
コンテナ on ローカルマシン メリット •
個人の作業が他人に影響しにくい • 費用が安い デメリット • 非エンジニアには操作が難しい • ネットワーク越しのサポートがしづらい
44.
コンテナ on ローカルマシン メリット •
個人の作業が他人に影響しにくい • 費用が安い デメリット • 非エンジニアには操作が難しい • ネットワーク越しのサポートがしづらい
45.
個人の作業が他人に影響しにくい あ、壊しちゃった
46.
個人の作業が他人に影響しにくい あ、壊しちゃった 大丈夫作業続けられる
47.
個人の作業が他人に影響しにくい あ、壊しちゃった 大丈夫作業続けられる 巻き込み事故 起こさない
48.
デプロイしまーす 個人の作業が他人に影響しにくい
49.
デプロイしまーす 大丈夫作業続けられる 個人の作業が他人に影響しにくい
50.
デプロイしまーす 大丈夫作業続けられる 他人待ちで 作業 止まらない! 個人の作業が他人に影響しにくい
51.
コンテナ on ローカルマシン メリット •
個人の作業が他人に影響しにくい • 費用が安い デメリット • 非エンジニアには操作が難しい • ネットワーク越しのサポートがしづらい
52.
→マシン代とDockerの費用ぐらい ※Docker Desktop不要の人もいる 費用が安い 💰9 💰9 ・・・・・ ※
53.
→マシン代とDockerの費用ぐらい ※Docker Desktop不要の人もいる 費用が安い 💰9 💰9 ・・・・・ ※ 極端に費用が 上がらない
54.
コンテナ on ローカルマシン メリット •
個人の作業が他人に影響しにくい • 費用が安い デメリット • 非エンジニアには操作が難しい • ネットワーク越しのサポートがしづらい
55.
非エンジニアには操作が難しい is 何? 触ったことない
56.
コンテナ on ローカルマシン メリット •
個人の作業が他人に影響しにくい • 費用が安い デメリット • 非エンジニアには操作が難しい • ネットワーク越しのサポートがしづらい
57.
ネットワーク越しのサポートがしづらい 壊れました!
58.
ネットワーク越しのサポートがしづらい SSHはムリだから 画面共有かな? 壊れました!
59.
ネットワーク越しのサポートがしづらい SSHはムリだから 画面共有かな? 壊れました! ネットワーク 越えるの大変
60.
コンテナ on ローカルマシン メリット •
個人の作業が他人に影響しにくい • 費用が安い デメリット • 非エンジニアには操作が難しい • ネットワーク越しのサポートがしづらい
61.
比較してみると 共用サーバ VS コンテナ
on ローカルマシン 一長一短あります。 なのでイイ感じに組み合わせて使うことになりそう →両方のメリットを兼ね備えたものにしたい
62.
なんとかメリットだけを享受したい • ネットワーク越しのサポートがしやすい • 非エンジニアにも使いやすい •
個人の作業が他人に影響しにくい • 費用が安い
63.
新しいサーバインフラ 柔軟に大量のサーバインフラを作れるようにして 「早く、安く、使いやすい」を実現し モバイルオンラインゲーム開発を支えます
64.
適当に250用意してもニーズにあっていなければ ゲーム開発に貢献できません。 どんなニーズがあったのか 開発環境の用途を整理しつつ KLabの実例を紹介します。 どんな感じで250用意すればよいか?
65.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
66.
開発環境の用途を確認する 開発環境なんだから「開発」用ですよね 「開発」ってどういうこと?という確認をします フローから見ていきます
67.
KLabのゲーム開発フロー 1. プロトタイプ作成 a. 十分にゲームの面白さを検証 2.
コア機能開発 a. ゲームのサイクルを確認 3. 量産開発 a. ゲーム全体を作り上げていく 4. 仕上げ a. ローンチできるようにブラッシュアップする 試行錯誤つよめ 再現性重視
68.
KLabのゲーム開発フロー 1. プロトタイプ作成 a. 十分にゲームの面白さを検証 2.
コア機能開発←この辺りで必要になる a. ゲームのサイクルを確認 3. 量産開発 a. ゲーム全体を作り上げていく 4. 仕上げ a. ローンチできるようにブラッシュアップする
69.
KLabのゲーム開発フロー 試行錯誤つよめ 再現性重視 このあたりで必要になる 割と試行錯誤強めの段階で サーバが必要になってくる
70.
試行錯誤とは? アセット、マスタデータ、プログラム これは何度も作っては確認して作り直し より豊かなゲーム体験を追求する
71.
試行錯誤するために大切なこと 「最新版」で「全部入り」の状態にできればOK とにかく素早く確認できることが大事
72.
再現性とは? アセット、マスタデータ、プログラム が一意に決まること
73.
モバイルオンラインゲームの特徴 短期間で新しいコンテンツ/機能を供給する 今週と来週で遊べるコンテンツが異なる 「常に最新版」ではなく 最新のものは今週に見せてしまうと 「ネタバレ」=不具合 →厳密なバージョン管理からの再現性が必要
74.
モバイルオンラインゲームの特徴 短期間で新しいコンテンツ/機能を供給する 今週と来週で遊べるコンテンツが異なる 「常に最新版」ではなく 最新のものは今週に見せてしまうと 「ネタバレ」=不具合 →厳密なバージョン管理からの再現性が必要 数日単位でコンテンツが更新がされる
75.
モバイルオンラインゲームの特徴 短期間で新しいコンテンツ/機能を供給する →ずっと試行錯誤と再現性が必要とされる むしろサービス開始してからが本番 →真剣に考える価値がある
76.
フローから考える開発環境の用途 • 試行錯誤 →ゲーム体験を作り上げていく場所 • 再現性 →ローンチ後の再現性を担保する場所 →ものづくりができてテストができる場所といえる
77.
従来の開発環境の考え方 KLabでは従来開発環境とは 本番環境をほぼそのまま再現でき 本番環境と同様の状況で開発を進められる →再現性を重視していた
78.
最新の開発環境の考え方 KLabでは現在開発環境とは 従来の考え方に加えて 試行錯誤が高速にできることを重視 →試行錯誤も重視
79.
試行錯誤と再現性を別々に追求 試行錯誤できることと再現性は利害衝突しやすい 試行錯誤できることを重視すると再現性が下がる 再現性を重視すると試行錯誤しづらくなる
80.
開発環境の新旧比較 開発環境 開発環境 (作業用) 開発環境 (テスト) 旧 新 日々の作業専用 はやい シンプルだが 用途によっては 不向き テスト専用 再現性が高い 作業もテストも 実施 分離
81.
開発環境の新旧比較 開発環境 (作業用) 開発環境 (テスト) 検収環境 本番環境 コンテンツを 素早く作る 作ったものを 順次テスト 最終確認 遊んでもらう 開発環境
検収環境 本番環境 コンテンツ作り テスト 最終確認 遊んでもらう 旧 新
82.
改めて本日のお題 開発環境:日々の作業用←こちらがメイン 開発環境:テスト用←こちらはおまけ
83.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
84.
開発用Web APIサーバへのニーズ 1. スケジュール 2.
職種 3. 費用
85.
開発用Web APIサーバへのニーズ 1. スケジュール 2.
職種 3. 費用
86.
並行に開発する • 複数の機能を平行に開発 • 依存関係も複雑
87.
スケジュール B機能 A機能 12/6 12/13 11/25 11月終盤あたり 両方修正したい
88.
機能の関係 B機能 A機能 12/6完成 12/13完成 11月終盤あたり 両方修正したい
89.
試行錯誤中のものを何度もマージはつらい 完成済みだけマージしたい 複数のものを一つのサーバ環境に入れたくない 何度もマージはつらい B機能 A機能 B機能 A機能 B機能
90.
機能単位で分ける B機能 A機能 B機能 B機能 12/6完成 12/13完成
91.
短い間隔で成果物を確認したい 平行に進む複数の機能開発の成果物を 短い間隔で確認したい さらに合流もその後も成果物を毎日確認したい
92.
短い間隔で成果物を確認したい B機能 A機能 12/6 12/13 11/25 毎日最新 確認したい 毎日最新 確認したい
93.
短い間隔で成果物を確認したい B機能 A機能 12/6 12/13 11/25 全部合流した全部入り 毎日最新 確認したい 毎日最新 確認したい 毎日最新 確認したい
94.
短い間隔で成果物を確認したい B機能 A機能 12/6 12/13 11/25 全部合流した全部入り 毎日最新 確認したい 毎日最新 確認したい 毎日最新 確認したい
95.
もっともっと環境が必要 B機能 A機能 B機能 B機能 12/6完成 12/13完成 全部入り みんなで使う
96.
成果物をデイリーで共有できる リポジトリの最新状態を毎日展開する • 最新クライアント • 最新アセット •
最新サーバ 都度独立した環境に展開される →以前のものとの比較ができる
97.
以前の成果物との比較 やっぱり昨日のほうが良かったなとか普通にある 何がどう変わったかというのが実機で体験できる これもゲーム作りにおいてとても重要
98.
開発用Web APIサーバへのニーズ 1. スケジュール 2.
職種 3. 費用
99.
いろいろしたい VS 安定環境が欲しい CLエンジニア プランナー アーティスト 安定環境が欲しい プログラムの 試行錯誤したい SVエンジニア
インフラ エンジニア 破壊的変更をしたい テスター
100.
いろいろしたい VS 安定環境が欲しい CLエンジニア プランナー アーティスト 安定環境が欲しい プログラムの 試行錯誤したい SVエンジニア
インフラ エンジニア 破壊的変更をしたい テスター 無理!
101.
いろいろしたい VS 安定環境が欲しい CLエンジニア プランナー アーティスト 安定環境が欲しい プログラムの 試行錯誤したい SVエンジニア
インフラ エンジニア 破壊的変更をしたい テスター 分割!
102.
独立した一環境を最低一人一つ確保 機能単位でも職種ごとにも分ける必要がある ということは個人ごとに分けられたほうが良い 独立した環境というのがとても大切 一つの環境を共用すると 他人の作業待ちや他人の環境破壊の問題がある
103.
非エンジニアが使いやすい プランナー アーティスト 簡単に操作したい テスター サポートしてほしい
104.
非エンジニアが使いやすい プランナー アーティスト 簡単に操作したい オンラインで サポート SVエンジニア テスター サポートしてほしい Web/Chatの インターフェース
105.
オンラインのサポート KLabではリモート多めのハイブリッド勤務 トラブルがあった際にどこからでも トラブルシューティングできる必要がある スピード感持って作業していると 思わぬところで環境が壊れます
106.
開発環境操作のUI サーバを自由自在に使うには 新規の起動やデプロイが必要 専門知識がなくても起動やデプロイができる →わかりやすいUIが必要
107.
わかりやすいといえばWebやChat Web UI/Chat UI GithubActions
Slack Bot Bot
108.
確認待ち状態でも作業を進めたい プランナー アーティスト 作業中のものを ほかの人に見せたい SVエンジニア 今すぐ見せてほしい CLエンジニア 見せている間に 別作業したい
109.
確認待ち状態でも作業を進めたい プランナー アーティスト 作業中のものを ほかの人に見せたい SVエンジニア 確認中は 即時起動できる 別の環境で作業 今すぐ見せてほしい CLエンジニア 見せている間に 別作業したい
110.
必要な時に短時間で使えるようになる 新しい環境を短時間で作成して 新しい環境ですぐに作業を開始できる 5分では遅すぎたので目標1分以内 いくつもの環境を柔軟に作れる 作業を効率よく進めるためにはとても大事
111.
開発用Web APIサーバへのニーズ 1. スケジュール 2.
職種 3. 費用
112.
費用面 • 一人当たり1000円未満 • 定額使い放題 •
管理コストが安い
113.
一人当たり1000円未満 • Docker Team=$9/月 •
t3.micro = $24/月 これ以下に何とかしたい ��
114.
定額使い放題 ある程度の段階は許容 環境増えても一定金額
115.
管理コストが低い インフラエンジニアがつきっきりだと インフラ費用以上のコストがかかる これは本末転倒
116.
ニーズのまとめ 1. スケジュール – 機能ごとに独立した環境 –
毎日独立した環境に展開 2. 職種 – 作業者個人ごとに独立した環境 – 試行錯誤しやすい環境 – 非エンジニアにもわかりやすいUI – 独立した環境を素早く提供できること 3. 費用 – 一人当たり数百円程度に抑えられること – 定額使い放題 – 管理コストが安いこと
117.
1. スケジュール – 機能ごとに独立した環境 –
毎日独立した環境に展開 2. 職種 – 作業者個人ごとに独立した環境 – 試行錯誤しやすい環境 – 非エンジニアにもわかりやすいUI – 独立した環境を素早く提供できること 3. 費用 – 一人当たり数百円程度に抑えられること – 定額使い放題 – 管理コストが安いこと ニーズのまとめ
118.
ニーズを整理してみた 1. 早い – 試行錯誤しやすい環境 –
独立した環境を素早く提供できる 2. 安い – 一人当たり1000円以内に抑えられる – 定額使い放題 – 管理コストが安い 3. 使いやすい – 独立した環境 – 非エンジニアにもわかりやすいUI
119.
このあと 具体的にどのようなインフラを作ったか というお話をします
120.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
121.
ニーズを実現する新システム 今回のニーズである「早い、安い、使いやすい」を 実現するために新システムを用意しました 新システム dev-shareの誕生です
122.
dev-shareとは
123.
dev-shareとは 200コンテナ
124.
dev-shareとは 1台で50,000円 (KVS/DB込み)
125.
dev-shareとは 2台で75,000円 (KVS/DB込み)
126.
dev-shareとは コンテナを使った共用サーバ形式で コストパフォーマンスと効率を追及したシステム
127.
システム全体構成
128.
システム全体構成 Web APIサーバ デイリーで朝夕2回 最新バージョンのゲームロジックを展開 開発メンバーの個人環境を提供 EC2の共用サーバが合計2台
129.
システム全体構成 KVS1系統、RDB1系統を Web APIサーバ2台で共有 KVSはElastiCache Web APIサーバのメモリを 最大限活用したい RDBはAurora 本番環境と環境を合わせたい KVS/RDB
130.
システム全体構成 Web APIサーバ上のオペレーションを Web UIで自動実行できる 仮想環境作成 ゲームロジック展開等 ワークフロー実行 Github
Actions
131.
Web APIサーバ構成 1サーバ上にコンテナによる 複数の仮想環境を持つ共用サーバ Docker Composeでコンテナ管理
132.
Web APIサーバ構成 共用の リバースプロキシ 仮想環境毎にある アプリケーションサーバ (Python/uWSGI)
133.
Web APIサーバ構成 URLのディレクトリ名で リクエスト転送先を判別
134.
各人独立な実行環境 仮想環境毎に 論理的に分離
135.
各人独立な実行環境 論理的に独立
136.
開発者で環境作成・削除できる 仮想環境削除は コンテナ削除するだけ 仮想環境作成は コンテナ起動するだけ 削除にかかる時間は10秒 作成にかかる時間は ゲームロジック展開含めて45秒
137.
開発者で環境作成・削除できる 開発者で環境を 気軽に作ってすぐ壊せる
138.
共用環境でのオペミス防止策 (例)自分の環境の apiコンテナを再生成
139.
共用環境でのオペミス防止策 誤って他の人の環境で オペレーションする危険
140.
共用環境でのオペミス防止策 基本オペレーションは ツールで実行 引数なしでオペレーション
141.
共用環境でのオペミス防止策 環境変数を参照して オペレーション対象を判別 環境変数で 自分の環境を指定 ログイン時に自動で設定される
142.
コストパフォーマンスが高い
143.
コストパフォーマンスが高い 環境で使っているリソースのみ割り当てるので サーバリソースの無駄が少ない
144.
コストパフォーマンスが高い
145.
コストパフォーマンスが高い サーバリソースが許す限り 環境を増やせる
146.
コストパフォーマンスが高い ぎりぎりまで サーバリソースと費用の効果を 高めることができる
147.
コストパフォーマンスが高い インスタンスタイプt3.xlargeで 1台あたり環境を200以上用意できる 開発者1人で複数環境を所持できる
148.
インフラ費用内訳 Web APIサーバ兼 Github Actions
Runner EC2 × 2台 t3.xlarge ストレージ150GiB KVS ElastiCache × 1台 cache.t2.medium RDB Aurora × 1台 db.t3.medium 合計 75,000円
149.
使っている技術の目玉 dev-shareの効率を飛躍的に上げている技術 1. bind mount 2.
仮想メモリ(swap)
150.
使っている技術の目玉 dev-shareの効率を飛躍的に上げている技術 1. bind mount 2.
仮想メモリ(swap)
151.
Dockerにおけるbind mount 「ホストマシン」上のファイルやディレクトリを コンテナ内にマウントします
152.
bind mountの使用目的 1. 素早いゲームロジックの更新 2.
ホストマシンでオペレーションできる
153.
bind mountの使用目的 1. 素早いゲームロジックの更新 2.
ホストマシンでオペレーションできる
154.
素早いゲームロジックの更新 ゲームロジックが コンテナに内包されている よくある構成
155.
素早いゲームロジックの更新 よくある更新 更新を反映するには イメージの再ビルドが必要 反映完了までに 時間がかかる
156.
素早いゲームロジックの更新 ゲームロジックが コンテナに内包されていない dev-shareの構成
157.
素早いゲームロジックの更新 dev-shareの更新 更新の反映は コンテナ再生成のみ 数秒で反映完了
158.
bind mountの使用目的 1. 素早いゲームロジックの更新 2.
ホストマシンでオペレーションできる
159.
ホストマシンでオペレーションできる 非SV/インフラエンジニアも 開発用Web APIサーバを利用 非SV/インフラエンジニアには コンテナ操作は敷居が高い ゲームロジック更新 トラブルシュート
160.
ホストマシンでオペレーションできる コンテナを 直接操作しなくて済む オペレーションに コンテナスキルが 必須でなくなる
161.
ホストマシンでオペレーションできる SVエンジニアの サポートコストも下がる ※KLabの場合 コンテナ操作説明が 不要になる
162.
使っている技術の目玉 dev-shareの効率を飛躍的に上げている技術 1. bind mount 2.
仮想メモリ(swap)
163.
仮想メモリ(swap)の活用 Web APIサーバのインスタンスタイプは t3.xlargeでメモリ容量は16GiBです メモリ16GiBで200コンテナ立ち上げると メモリの空きが枯渇し、無応答になってしまいます
164.
仮想メモリ(swap)の活用 そこで仮想メモリ(swap)の登場です swapを16GiB確保すると、メモリ容量と合計して 32GiBのメモリリソースを確保することができます スペックアップ不要となり200環境を用意するのに 必要なインスタンス費用を節約することができます
165.
swapの懸念 swap領域はストレージにあり、メモリと比較して アクセス速度が遅くなります 200コンテナ立ち上げるとメモリが足りず 常時swapを使うので、性能低下が気になります
166.
swapの懸念 ですが、開発環境では問題となりません
167.
本当にメモリが必要なのは…
168.
本当にメモリが必要なのは… 200コンテナ立ち上がっているが その内、同時に利用されているのは…
169.
本当にメモリが必要なのは…
170.
本当にメモリが必要なのは… メモリを使うのは一部のコンテナで 残りはスワップアウトされても 気にならない
171.
dev-shareのデメリット これまでdev-shareの良いところを説明して きましたが、全てが優れているわけではありません 共用サーバならではのデメリットもあります
172.
インスタンス障害で全員を巻き込む リソースを食い潰すような使い方をすると 他利用者に影響が及んでしまう サーバリソースを利用者間で共有
173.
インスタンス障害で全員を巻き込む 1コンテナあたりの 利用できるサーバリソースを制限 CPU/メモリ/ストレージ使用率を監視
174.
インスタンス障害で全員を巻き込む ハードウェア起因の障害は 防ぎようがない…
175.
インスタンス障害で全員を巻き込む すぐ復旧できなさそうであれば バックアップから素早く復旧 死活監視で 素早く検知・対応
176.
独立の維持が人依存となる 物理的には繋がっているので やろうと思えば干渉できる
177.
独立の維持が人依存となる 例えば、開発者1が 独立していない 共通リソースを参照する 実装にすると
178.
独立の維持が人依存となる 開発者2の環境でも 共通リソースを 参照するようになり
179.
独立の維持が人依存となる 共通リソースが変更されると 開発者1、開発者2両方の 環境に影響するようになる
180.
独立の維持が人依存となる 独立が壊れる
181.
独立性の維持が人依存となる • これまでのプロジェクトはメンバーが独立の 意義を理解しているか不安があった • そのため、論理的独立を壊されないように 物理的独立(1人1VM)で制限していた
182.
独立性の維持が人依存となる • 今回のプロジェクトは、これまでの経験を通して メンバーが独立の意義を理解しているだろう • 物理的独立(1人1VM)で制限しなくても 論理的独立を壊されないだろう
183.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
184.
1. 早い • 試行錯誤しやすい環境 –
ゲームロジックの更新を数秒で反映 – 開発者で環境を気軽に作ってすぐ壊せる • 独立した環境を素早く提供できる – 45秒で独立した仮想環境を提供
185.
2. 安い • 一人当たり1000円以内に抑えられる –
一人当たり750円 • 定額使い放題 – 75,000円で400環境まで使い放題 • 管理コストが安い – リモートサーバなのでオンラインサポート可能 – 開発者でできる環境の作成とデプロイ – コンテナ隠蔽で非SV/インフラエンジニアが楽
186.
3. 使いやすい • 独立した環境 –
論理的に独立した仮想環境 • 非エンジニアにもわかりやすいUI – オペレーションはGithub ActionsのWeb UIで
187.
本日のアジェンダ 1. はじめに 2. 開発環境の用途 3.
開発用Web APIサーバへのニーズ 4. 最新システムの紹介 5. 最新システムとニーズの答え合わせ 6. まとめ
188.
まとめ 開発用のWeb APIサーバには • 本番と異なるニーズがある •
工夫次第でゲームの開発のスピードは上がる • コスパの高い手段がある 💡
189.
まとめ 一見ゲームの面白さには無関係なサーバインフラ 裏ではゲームの開発の土台となり しっかりとゲームを面白くすることを支えています
190.
まとめ まだまだ工夫の余地はあると思いますが KLabのチャレンジが皆様の参考になれば とてもうれしく思います
191.
まとめ KLabとは違うけどこんな工夫をしているよ こんなニーズを重視しているよ などありましたら 質問など是非お話ができればと思います。 🤝
Download