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
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
Search
gree_tech
PRO
September 18, 2018
Technology
0
340
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
WebDB Forum 2018で発表された資料です。
http://db-event.jpn.org/webdbf2018/
gree_tech
PRO
September 18, 2018
Tweet
Share
More Decks by gree_tech
See All by gree_tech
コミュニケーションに鍵を見いだす、エンジニア1年目の経験談
gree_tech
PRO
0
130
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
1.8k
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
610
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
620
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
580
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
660
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
1k
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
690
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
820
Other Decks in Technology
See All in Technology
Amazon CloudWatchのメトリクスインターバルについて / Metrics interval matters
ymotongpoo
3
290
SAE J1939シミュレーション環境構築
daikiokazaki
1
190
「手を動かした者だけが世界を変える」ソフトウェア開発だけではない開発者人生
onishi
15
7.6k
ユーザー理解の爆速化とPdMの価値
kakehashi
PRO
1
110
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
320
Recoil脱却の現状と挑戦
kirik
3
480
AI駆動開発 with MixLeap Study【大阪支部 #3】
lycorptech_jp
PRO
0
270
解消したはずが…技術と人間のエラーが交錯する恐怖体験
lamaglama39
0
140
Wasmで社内ツールを作って配布しよう
askua
0
150
With Devin -AIの自律とメンバーの自立
kotanin0
2
840
OpenTelemetry の Log を使いこなそう
biwashi
5
1.1k
AI時代の知識創造 ─GeminiとSECIモデルで読み解く “暗黙知”と創造の境界線
nyagasan
0
170
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
39k
What's in a price? How to price your products and services
michaelherold
246
12k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Building Applications with DynamoDB
mza
95
6.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Agile that works and the tools we love
rasmusluckow
329
21k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
390
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
KATA
mclloyd
30
14k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Transcript
Copyright © GREE, Inc. All Rights Reserved. TB/Day規模のゲーム向け データパイプラインを 開発運用する日々
グリー株式会社 開発本部 森田想平
目次 2 • 会社紹介 • データ基盤全般の紹介 • AWSベースのデータ基盤 • GCPベースのデータ基盤
• 開発運用する日々の話 • まとめ
会社紹介 3 社名 グリー株式会社 事業内容 • ゲーム・ライブエンタメ事業 • 広告・メディア事業 •
投資事業 設立 2004年12月7日 代表者 代表取締役会長兼社長 田中良和 本社所在地 東京都港区六本木 6-10-1 六本木ヒルズ森タワー 従業員数 1,531人(グループ全体・ 2018年6月末現在) 主なグループ企業 • グリービジネスオペレーションズ株式会社 • グリーベンチャーズ株式会社 • ファンプレックス株式会社 • 株式会社ポケラボ • リミア株式会社 • 株式会社ExPlay • Glossom株式会社 • GREE VR Capital, LLC. • 株式会社Wright Flyer Studios • 株式会社3ミニッツ
会社紹介 4
開発本部(の一部メンバー) 会社紹介 ゲームプラットフォーム事業 5 ゲーム事業 ライブエンタメ事業 メディア事業 • 横断データ基盤、分析ツールの開発運用 •
事業ごとのデータ基盤、分析ツールの開発運用
目次 6 • 会社紹介 • データ基盤全般の紹介 • AWSベースのデータ基盤 • GCPベースのデータ基盤
• 開発運用する日々の話 • まとめ
Copyright © GREE, Inc. All Rights Reserved. • ex. シノアリス
• AppStoreトップセールスランキング最高1位 • 最大AWSインスタンス数1000前後(らしい) • ex. ゲームプラットフォーム事業 • オンプレミスサーバ数千台程度 データ基盤全般の紹介 事業の規模感 ref. https://gamebiz.jp/?p=218802
Copyright © GREE, Inc. All Rights Reserved. • データ基盤に送信蓄積されるデータ量 •
増加量は数TB/Day 程度 • 現在 1PB前後を管理運用 • 送信されるデータを全て永遠に取っておくわけではない データ基盤全般の紹介 データの規模感
Copyright © GREE, Inc. All Rights Reserved. • オンプレミスMySQLサーバ群 •
MySQLサーバ : 100台程度(数十TB) • オンプレミスHadoop • Hadoopクラスタ : 50台程度(数百TB) データ基盤全般の紹介 幾つかの世代がある
Copyright © GREE, Inc. All Rights Reserved. • AWSベースのデータ基盤 •
メインのデータ基盤(数百TB) • 後述します • GCPベースのデータ基盤 • 最近使い始めた(データ少ない) • 少しだけ後で触れます データ基盤全般の紹介 幾つかの世代がある
Copyright © GREE, Inc. All Rights Reserved. • 旧Sun Microsystemsの専用アプライアンス(Solaris)から汎用IA
サーバ(Ubuntu)へのMySQLマイグレーション • ZFSの機能(zfs send)にpatchを当てて利用 • オンプレミスHadoopからAWSデータ基盤へのマイグレーション • データ送信はfluentdのダブルライト • 過去ログはAWS Snowballデバイス • バッチジョブは地道に書き換える データ基盤全般の紹介 レガシーシステムからのマイグレーション
目次 12 • 会社紹介 • データ基盤全般の紹介 • AWSベースのデータ基盤 • GCPベースのデータ基盤
• 開発運用する日々の話 • まとめ
Copyright © GREE, Inc. All Rights Reserved. AWSベースのデータ基盤 システム構成 Amazon
Kinesis Amazon EMR Amazon S3 Kinesis Consumer API Server BI Tool KPI Metric プロダクトA プロダクトB プロダクトC プロダクトD
Copyright © GREE, Inc. All Rights Reserved. • S3への重依存 •
(オンプレミスと比べた場合の)運用負荷減 • クエリエンジンのステートレス化 • 障害対応やバージョンアップが容易に AWSベースのデータ基盤 規模感に伴うかんどころ:その1
Copyright © GREE, Inc. All Rights Reserved. • S3のファイル数が多くなると、クエリ実行時にS3のRead(API呼び出 し)がボトルネックになる
• 定常的にファイルをマージしている • 遅延ログがあるとマージが難しくなる • よく使うテーブルに関しては、定常的にカラムナフォーマットで作り直し ている AWSベースのデータ基盤 規模感に伴うかんどころ:その2
Copyright © GREE, Inc. All Rights Reserved. • 会社組織が複雑になると、権限管理が複雑になる •
書き込みに関しては、プロダクトごとにAWSアカウントがあるので、 IAM Assume Roleという機能を利用する AWSベースのデータ基盤 規模感に伴うかんどころ:その3 Amazon Kinesis Streams IAM Role (KinesisへのWrite権限) Amazon EC2 AWS Lambda 1. AssumeRoleで一時的権限を取得 2. Kinesis::PutRecordsでログを送信 データ分析基盤のAWSアカウント プロダクトのAWSアカウント
目次 17 • 会社紹介 • データ基盤全般の紹介 • AWSベースのデータ基盤 • GCPベースのデータ基盤
• 開発運用する日々の話 • まとめ
Copyright © GREE, Inc. All Rights Reserved. GCPベースのデータ基盤 システム構成 analytics-system
production server Stackdriver BigQuery Data Studio Cloud Pub/Sub Cloud Storage Cloud Dataflow client Cloud SQL Firebase App Engine ios/android
Copyright © GREE, Inc. All Rights Reserved. • スケーラビリティに関しては、まだ検証フェーズ •
心配はしていない GCPベースのデータ基盤 概要
目次 20 • 会社紹介 • データ基盤全般の紹介 • AWSベースのデータ基盤 • GCPベースのデータ基盤
• 開発運用する日々の話 • まとめ
Copyright © GREE, Inc. All Rights Reserved. システムを 「気持ちよく開発・保守できるかどうか」を 示す言葉(として一部使われている)
開発運用する日々 デベロッパーエクスペリエンス(DX) ref. https://gfx.hatenablog.com/entry/2018/06/28/100103
Copyright © GREE, Inc. All Rights Reserved. • セットアップの自動化 •
実行環境(OS)の移植性の最大化 • サーバ・システム管理を不要に • 継続的デプロイを可能に • スケールアップを可能に 開発運用する日々 The Twelve-Factor App ref. https://12factor.net/ja/
Copyright © GREE, Inc. All Rights Reserved. • (本番と同様)、開発時も依存プロセスが多い •
dockerで各プロセスを管理するが、1つ1つ再起動等するのは手間に なる • そこで、docker-compseという複数dockerを管理する仕組みを利用 する • 一括で起動できる • コンテナ間の通信や依存関係を設定できる 開発運用する日々 DX向上のための工夫の例
Copyright © GREE, Inc. All Rights Reserved. • システムコンポーネント(AWSベースデータ基盤の場合) •
Kinesis Consumerアプリケーション(データ配送ロジック) • API Server(クエリの管理や権限制御) • Analyticsツール(ワークフロー機能等含む) • 構成管理・デプロイ・起動 • その他、細かいコード • バッチジョブ(ファイルマージなど) • Presto等のUser-Defined Function 開発運用する日々 結局何を開発するのか?主なコーディング対象
Copyright © GREE, Inc. All Rights Reserved. • プロダクトマネジメント体制 •
仕様策定や利用者問い合わせ対応は別チームのタスク • 開発ツール • MacBookとAWS開発専用アカウントを駆使する • IntelliJ IDEA(IDE)のライセンスは付与 • 日々の作業 • 新規開発、bugfix、障害対応 • お昼は割と社内勉強会やコーディング系の部活 • ごく稀に、海外出張でカンファレンスに参加 開発運用する日々 開発運用体制
Copyright © GREE, Inc. All Rights Reserved. • (クラウド)データ基盤の開発運用のやりがい •
様々なミドルウェアや技術にさわれる (Mさん、Yさん) • 少さなコードで大規模なシステムが動く(Iさん) • 社内ユーザからダイレクトにFBがもらえる(Mさん) 開発運用する日々 開発メンバーの意見
Copyright © GREE, Inc. All Rights Reserved. • (クラウド)データ基盤の開発運用で大変なこと •
アラート対応 • マネージドサービスが死んだり調子が悪くなると、待つしかない • マネージドサービスの利用MWのバージョンがニーズにマッチしな いと辛い 開発運用する日々 開発メンバーの意見
目次 28 • 会社紹介 • データ基盤全般の紹介 • AWSベースのデータ基盤 • GCPベースのデータ基盤
• 開発運用する日々の話 • まとめ
Copyright © GREE, Inc. All Rights Reserved. • 開発運用対象が周縁化してる •
分散ファイルシステムやクエリエンジンなどデータパイプラインの中 心部分はマネージドサービス化が進んでいる • パイプラインの周縁は開発が必要 • 周縁部は事業依存になりがちなので • 必要な機能が増え、使えるコンポーネントも多いので、システム構成が 複雑になりがち • DXを考慮した日々の開発が重要 まとめ 開発運用する日々に対する所感