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
運用規模の拡大を乗り越える 〜Toilの撲滅〜
Search
Cygames
PRO
January 09, 2019
Technology
3
3.2k
運用規模の拡大を乗り越える 〜Toilの撲滅〜
2018/12/15 Developers Boost
Cygames
PRO
January 09, 2019
Tweet
Share
More Decks by Cygames
See All by Cygames
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
2
420
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
2
1.1k
【CEDEC2025】現場を理解して実現!ゲーム開発を効率化するWebサービスの開発と、利用促進のための継続的な改善
cygames
PRO
0
940
【CEDEC2025】ブランド力アップのためのコンテンツマーケティング~ゲーム会社における情報資産の活かし方~
cygames
PRO
0
470
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
300
【CEDEC2025】LLMを活用したゲーム開発支援と、生成AIの利活用を進める組織的な取り組み
cygames
PRO
1
3k
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
PRO
0
2.1k
雲だけじゃない!『GRANBLUE FANTASY: Relink』の世界に奥行きを出す半透明スプライト活用術
cygames
PRO
0
1k
最高のアートワークを発信する『Cygames展 Artworks』企画制作事例
cygames
PRO
0
160
Other Decks in Technology
See All in Technology
どこで動かすか、誰が動かすか 〜 kintoneのインフラ基盤刷新と運用体制のシフト 〜
ueokande
0
200
ソフトウェア エンジニアとしての 姿勢と心構え
recruitengineers
PRO
10
3k
Postman MCP 関連機能アップデート / Postman MCP feature updates
yokawasa
1
160
攻撃と防御で実践するプロダクトセキュリティ演習~導入パート~
recruitengineers
PRO
3
650
Understanding Go GC #coefl_go_jp
bengo4com
0
1.1k
Product Management Conference -AI時代に進化するPdM-
kojima111
0
230
実践アプリケーション設計 ③ドメイン駆動設計
recruitengineers
PRO
8
1.2k
広島発!スタートアップ開発の裏側
tsankyo
0
260
Gaze-LLE: Gaze Target Estimation via Large-Scale Learned Encoders
kzykmyzw
0
350
kintone開発チームの紹介
cybozuinsideout
PRO
0
73k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.6k
JOAI発表資料 @ 関東kaggler会
joai_committee
1
410
Featured
See All Featured
It's Worth the Effort
3n
187
28k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
What's in a price? How to price your products and services
michaelherold
246
12k
4 Signs Your Business is Dying
shpigford
184
22k
Faster Mobile Websites
deanohume
309
31k
Site-Speed That Sticks
csswizardry
10
790
Automating Front-end Workflow
addyosmani
1370
200k
Statistics for Hackers
jakevdp
799
220k
Transcript
None
2
3 and more!
4 アジェンダ • Cygamesのインフラチームについて • 運用負荷を下げるために行っていること ◦ 自動化の取り組み ◦ ナレッジ共有の取り組み
5 Cygamesのインフラチーム
インフラチーム 6 Project A Project B Project C … 横断部署になっています
7 インフラチームの職務 • サーバー構築 • ソフトウェアインストール • モニタリング • 負荷対策
• オンコール対応 • 基盤ソフトウェア開発 • データ処理パイプライン構築
8 運用タイトル数は年々増加
9 ゲーム性・インフラ構成も多様化 グローバル化 スマートフォンアプリ開発 オンプレミス・クラウドのハイブリッド
10 運用負荷との戦い • 運用中タイトルで… ◦ アクセス数変動に合わせたスケーリング ◦ 大量のサーバーのモニタリング ◦ アップデートなどの保守作業
• 新規開発で… ◦ 開発環境の作成 ◦ 構成の検証
11 Toilを減らしエンジニアリングをして 運用負荷を下げる
12 “トイルとは、プロダクションサービスを動作させることに関係する作業で、 手作業で繰り返し行われ、自動化することが可能であり、戦術的で長期的な価値を持たず、 作業量がサービスの成長に比例するといった傾向を持つものです。” “エンジニアリングの作業とは、新しいことをするものであり、本質的に人間の判断を必要とします。 エンジニアリングの作業は、サービスに恒久的な改善を加え、戦略によって導かれるものです。” ―SRE サイトリライアビリティエンジニアリング Googleの信頼性を支えるエンジニアリングチーム. O'Reilly
Japan, Inc.
13 Engineering Toil Toilの作業時間は運用規模の拡大とともに肥大化し エンジニアリングができなくなっていく 繰り返す作業 手作業 恒久的な改善
14 Toilを放置 運用負荷が 規模に比例して増大 更新・開発の速度が低下
15 自動化でToilを減らす
16 • サーバー構成情報管理のToil • サーバー構築のToil
17 ホスト追加のたびに /etc/hosts の編集… 特定の環境や種別のサーバー群のリストアップ… ミドルウェアのバージョン情報の管理… サーバー構成情報管理のToil
サーバー情報データベース 18 プライベートDNS 構成情報の収集・活用を自動化してToilを減らす DNS 自動登録 On-Premise Cloud 情報取得 Database
Project Type Hostname IP 自動登録 情報取得
19 AWS Cloud Servers On-Premise EC2 Client Client Servers On-Premise
EC2
20 AWS Cloud Servers On-Premise EC2 Client Client エージェントをインストールすると 検索・名前解決が可能になる
Servers On-Premise EC2
21 AWS Cloud Servers On-Premise EC2 Client Client Servers On-Premise
EC2 マネージドサービス構成でサーバーレス
AWS Cloud 22 Servers On-Premise EC2 Client Client Servers On-Premise
EC2 非同期処理 スケーラブル
23 $ eshosttag -qs "hostname:test-web01" | jq . { "hits":
[ { "_index": "hosts", "_type": "hosts", "_id": "test-web-192.168.1.1", "_source": { "created_at": "2018-10-09T21:34:21+09:00", "datacenter": "aws", "env": "dev", "hostname": "test-web01", "ip": "192.168.1.1", "lastping_at": "2018-12-14T09:17:37+09:00", "project": "test", "type": "dev", "dead": null, "ver_apache": "Apache/2.4.6 (CentOS)", "ver_hash_httpd_conf": "abcdefghijklmnopqrstuvwxyz123456", "ver_os": "CentOS Linux release 7.4.1708 (Core)", "ver_hash_php_ini": "abcdefghijklmnopqrstuvwxyz123456", "ver_php": "7.2.8" } } ] } 使用イメージ
24 • サーバー構成情報管理のToil • サーバー構築のToil
25 手順書に沿ってセットアップ… 既存のものと同様のサーバーの増築… 認証情報の受け渡し… サーバー構築のToil
26 サーバー構築を自動化してToilを減らす 保存 利用 playbook セットアップ RPM repository プライベートリポジトリ プロビジョニングツール
27 • S3にプライベートリポジトリを構築 ◦ 内製ツール ◦ ビルド済みのミドルウェア・ライブラリ ◦ 過去バージョンのアーカイブ •
yumで簡単にインストール RPM repository tool Web server software PHP Library
28 Key Web server ansible common apache php playbook RPM
repository Encrypted credentials • 作業をplaybookにコード化し ansibleでプロビジョニング ◦ ロールごとに再利用が可能 ◦ オンプレミス・クラウド両用 • プライベートリポジトリを活用 • ホスト用の認証情報は KMSを使用して暗号化保存
29 自動化以外の方法でToilを減らす
30 障害対応をToilとして考える • 緊急の障害対応はそれまでの作業を中断させ エンジニアリングの時間を奪ってしまう • 障害対応にかける時間が減る=Toilが減る
31 ナレッジの属人化… 手探りの原因調査… 障害対応の課題
32 ポストモーテム • 障害対応の後に作成する チーム共有用のドキュメント • Pagerdutyを使用 • チーム全体で学びを得て 障害対応の時間を減らす
33 Toilを放置 運用負荷が 規模に比例して増大 更新・開発の速度が低下
34 Toilが減る エンジニアリングが できる チームが改善する
35 Toilを撲滅し 最高のコンテンツを効率よく届ける