Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コロプラにおけるLaunch Coordination Engineeringの取り組み / ...
Search
halnique
December 03, 2021
Technology
0
1.2k
コロプラにおけるLaunch Coordination Engineeringの取り組み / colopl-launch-coordination-engineering
Cloud Native Lounge #3「Kubernetesで実現する大規模サービス基盤運用」
登壇資料
halnique
December 03, 2021
Tweet
Share
Other Decks in Technology
See All in Technology
Goのerror型がシンプルであることの恩恵について理解する
yamatai1212
1
290
Tebiki Engineering Team Deck
tebiki
0
27k
エンジニアリングマネージャーの仕事
yuheinakasaka
0
130
FastMCP OAuth Proxy with Cognito
hironobuiga
3
130
詳解 強化学習 / In-depth Guide to Reinforcement Learning
prinlab
0
360
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
260
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
110
事例から紐解くSHIFT流QA支援 ~大規模プロジェクトの品質管理支援、QA組織立ち上げ~ / 20260320 Nozomu Koketsu
shift_evolve
PRO
0
130
AIエージェント×GitHubで実現するQAナレッジの資産化と業務活用 / QA Knowledge as Assets with AI Agents & GitHub
tknw_hitsuji
0
180
Phase01_AI座学_基礎
overflowinc
0
3.2k
visionOS 開発向けの MCP / Skills をつくり続けることで XR の探究と学習を最大化
karad
1
1.2k
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
84
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Balancing Empowerment & Direction
lara
5
960
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
110
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
180
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
76
Embracing the Ebb and Flow
colly
88
5k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
30 Presentation Tips
portentint
PRO
1
260
Transcript
コロプラにおける Launch Coordination Engineeringの取り組み
• @halnique • 株式会社コロプラ サーバー基盤グループ LCEチーム • 2020/2 入社 自己紹介
• k8sそのものの話はあまり多くありません(できません) • スマートフォンゲームのバックエンドシステムなので、一般的なWebアプリ ケーションとは異なる点がある場合があります 諸注意
内容
• LCEってなんですか? • コロプラでLCEが必要な理由 • コロプラのLCEの業務とk8s 内容
• LCEってなんですか? • コロプラでLCEが必要な理由 • コロプラのLCEの業務とk8s 内容
LCEってなんですか? Launch Coordination Engineering ローンチ調整エンジニアリング
LCEってなんですか? Launch Coordination Engineering ローンチ調整エンジニアリング
LCEってなんですか? Site Reliability Engineering / Chapter 27 - Reliable Product
Launches at Scale https://sre.google/sre-book/reliable-product-launches/
LCEってなんですか? SRE
LCEってなんですか? SRE LCE
• プロダクトやサービスがGoogleの信頼性の基準とベストプラクティスに沿っ ているかを監査し、信頼性を高めるための具体的なアクションを提供する • ローンチに関わる複数のチーム間の連絡役として働く • タスクが滞り無く進んでいることを確認し、技術面からローンチを推進する • 門番の役目を果たし、ローンチが「安全」だという判断の承認を行う •
開発者の学習速度を高めるために内部ドキュメントやトレーニング用のリ ソースを用意し、開発者に対してベストプラクティスやGoogleのサービスと 統合する方法についての教育を行う LCEってなんですか? Site Reliability Engineering / Chapter 27 - Reliable Product Launches at Scale https://sre.google/sre-book/reliable-product-launches/
• LCEってなんですか? • コロプラでLCEが必要な理由 • コロプラのLCEの業務とk8s 内容
• LCEってなんですか? • コロプラでLCEが必要な理由 • コロプラのLCEの業務とk8s 内容
コロプラでLCEが必要な理由
コロプラでLCEが必要な理由 ゲームたくさん作って たくさんリリースしたい!
コロプラでLCEが必要な理由 完成した!リリースだ
コロプラでLCEが必要な理由 お、コロプラの新作出てるんだ やってみるか
コロプラでLCEが必要な理由 サーバーのようすが…?
コロプラでLCEが必要な理由 緊急 メンテナンス!
コロプラでLCEが必要な理由 …やらなくていいか
Q: いくつもゲーム出してるんだから、落ちないためのノウハウあるでしょ? A: それがなかなか難しいんです… • ローンチに携わった経験のある人が多くない • ローンチ時に最大トラフィックが来るようなマーケティング • ビッグバンリリース
• ゲームによって異なるアーキテクチャ、アクセスパターンや負荷の特性 • ローンチ直前までクオリティアップの開発が行われていることもあり、ローンチそのものの準備に 開発の工数を割きづらい • 大規模ゲームの運用経験がない場合、負荷的な観点で開発をするのが難しいことも コロプラでLCEが必要な理由
Q: いくつもゲーム出してるんだから、落ちないためのノウハウあるでしょ? A: それがなかなか難しいんです… • ローンチに携わった経験のある人が多くない • ローンチ時に最大トラフィックが来るようなマーケティング • ビッグバンリリース
• ゲームによって異なるアーキテクチャ、アクセスパターンや負荷の特性 • ローンチ直前までクオリティアップの開発が行われていることもあり、ローンチそのものの準備に 開発の工数を割きづらい • 大規模ゲームの運用経験がない場合、負荷的な観点で開発をするのが難しいことも コロプラでLCEが必要な理由
• 開発期間の長期化もあり、ローンチの期間が空きがち • ゲームに使われるインフラなど技術スタックの更新 • ローンチが近づくとアサインされるローンチ請負人的な人もいたが、その人 個人の負荷が高い&スケールしづらい コロプラでLCEが必要な理由 ローンチに関するノウハウの断片化
• 開発期間の長期化もあり、ローンチの期間が空きがち • ゲームに使われるインフラなど技術スタックの更新 • ローンチが近づくとアサインされるローンチ請負人的な人もいたが、その人 個人の負荷が高い&スケールしづらい コロプラでLCEが必要な理由 ローンチに関するノウハウの断片化
• 個人ではなく、ローンチ請負チームがあればよいのでは? • 調べてみるとGoogleでも似たような取り組みをしているようだ コロプラでLCEが必要な理由 コロプラLCEの発足
• LCEってなんですか? • コロプラでLCEが必要な理由 • コロプラのLCEの業務とk8s 内容
• LCEってなんですか? • コロプラでLCEが必要な理由 • コロプラのLCEの業務とk8s 内容
コロプラのLCEの業務とk8s • プロダクトやサービスがGoogleの信頼性の基準とベストプラクティスに沿っ ているかを監査し、信頼性を高めるための具体的なアクションを提供する • ローンチに関わる複数のチーム間の連絡役として働く • タスクが滞り無く進んでいることを確認し、技術面からローンチを推進する • 門番の役目を果たし、ローンチが「安全」だという判断の承認を行う
• 開発者の学習速度を高めるために内部ドキュメントやトレーニング用のリ ソースを用意し、開発者に対してベストプラクティスやGoogleのサービスと 統合する方法についての教育を行う Site Reliability Engineering / Chapter 27 - Reliable Product Launches at Scale https://sre.google/sre-book/reliable-product-launches/
コロプラのLCEの業務とk8s • プロダクトやサービスがGoogleの信頼性の基準とベストプラクティスに沿っ ているかを監査し、信頼性を高めるための具体的なアクションを提供する • ローンチに関わる複数のチーム間の連絡役として働く • タスクが滞り無く進んでいることを確認し、技術面からローンチを推進する • 門番の役目を果たし、ローンチが「安全」だという判断の承認を行う
• 開発者の学習速度を高めるために内部ドキュメントやトレーニング用のリ ソースを用意し、開発者に対してベストプラクティスやGoogleのサービスと 統合する方法についての教育を行う Site Reliability Engineering / Chapter 27 - Reliable Product Launches at Scale https://sre.google/sre-book/reliable-product-launches/
コロプラのLCEの業務とk8s 負荷試験
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
• ユーザーがどういう行動をするか把握 • ユーザーあたりのRPSを測定 コロプラのLCEの業務とk8s
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
コロプラのLCEの業務とk8s • Golangの自作負荷試験ツール
Q: なんで自作? A: より実際のクライアントに近づけたい • リトライなどエラーハンドリングを柔軟に制御したい • 複雑な行動パターンもシナリオとして表現したい • クライアントのメトリクスも収集して可視化したい
コロプラのLCEの業務とk8s
コロプラのLCEの業務とk8s Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること [Google Cloud INSIDE Games
& Apps] / SREの取り組み https://www.slideshare.net/GoogleCloudPlatformJP/spanner-gkespinnaker-sre-google-cloud-insid e-games-apps
コロプラのLCEの業務とk8s 開発チーム LCE SRE ローンチ
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
コロプラのLCEの業務とk8s Google Kubernetes Engine Google Cloud Spanner
コロプラのLCEの業務とk8s
コロプラのLCEの業務とk8s
コロプラのLCEの業務とk8s • Application Cluster ◦ Application (PHP) Pods ◦ etc
• Testing Tools Cluster ◦ Scenario Runner (Golang) Job ◦ Spanner Warm-Up Tools (Golang) Job/Deployment ◦ etc
コロプラのLCEの業務とk8s • Application Cluster ◦ Application (PHP) Pods ◦ etc
• Testing Tools Cluster ◦ Scenario Runner (Golang) Job ◦ Spanner Warm-Up Tools (Golang) Job/Deployment ◦ etc
コロプラのLCEの業務とk8s • Golang • Helm charts • GitLab CI build
manifest → Google Cloud Storage • Spinnaker deploy manifest
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
コロプラのLCEの業務とk8s • Spanner Nodes x1 (Processing units x1000) • Application
HPA min:1 ~ • Scenario users 1,000 ~ Spanner 1 nodeを基準として処理できるユーザー数や周辺の必要リソースを見積 もる 明らかにパフォーマンスが良くない箇所を確認・修正
コロプラのLCEの業務とk8s Hot spot Warming up Session Split Mutation Stale /
Strong read
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
コロプラのLCEの業務とk8s N users (Spanner 1 node) Target users (Spanner X
node)
コロプラのLCEの業務とk8s 1. 実際にゲームをプレイ a. ユーザーの行動(アクセスパターン)を把握 b. ゲーム上重要な/特殊な仕様を把握 2. 負荷をかけるシナリオを検討・作成 a.
リトライ戦略などゲームの実装も合わせて確認 3. 負荷試験に使う環境を構築 a. 負荷をかける側の環境も合わせて構築 b. DBのウォームアップ環境も兼ねる 4. ミニマムな規模から負荷試験を実施 a. リソースあたり処理できるユーザー数を見積もる 5. 想定の最大規模までスケールしながら実施 6. リリース 3~6 ヶ 月
コロプラのLCEの業務とk8s ゲーム データベースとして Cloud Spanner を使用する場合のベスト プラクティス https://cloud.google.com/architecture/best-practices-cloud-spanner-gaming-database
• リリース2日前 ◦ Spanner Warm-up • リリース1日前 ◦ Scale-out ◦
Testing ◦ Delete data • リリース当日 ◦ Monitoring • リリース後 ◦ Clean up コロプラのLCEの業務とk8s
まとめ
• ローンチに関わる色んなことをやるのがLCE • コロプラではローンチたくさんしたいけど、サービス落としたくないので LCEチームが立ち上がった • コロプラのLCEはk8sや関連技術を使って、ローンチ前の負荷試験に注力して いる まとめ
以上