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
January 09, 2019
Technology
3
3.2k
運用規模の拡大を乗り越える 〜Toilの撲滅〜
2018/12/15 Developers Boost
Cygames
January 09, 2019
Tweet
Share
More Decks by Cygames
See All by Cygames
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
450
雲だけじゃない!『GRANBLUE FANTASY: Relink』の世界に奥行きを出す半透明スプライト活用術
cygames
0
140
最高のアートワークを発信する『Cygames展 Artworks』企画制作事例
cygames
0
98
社内にバーチャルスタッフ!?「スイちゃん」のキャラクターデザインと施策の広げ方の秘訣
cygames
1
280
全高3m超のバハムート像がスマホを通して躍動する! ~『Cygames展 Artworks』ARコンテンツの開発プロセスと実装~
cygames
0
93
最高の資料を目指すために!社内フリーイラスト制作チームの取り組みについて
cygames
1
290
「生きているモーション」を作り出すCygamesのモーションキャプチャー
cygames
0
190
『Cygames展 Artworks』におけるShadowverseデジタルサイネージ制作事例
cygames
0
78
『GRANBLUE FANTASY: Relink』 原作の世界観に没入するステージの絵作り
cygames
0
1.7k
Other Decks in Technology
See All in Technology
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
190
2025/6/21 日本学術会議公開シンポジウム発表資料
keisuke198619
2
460
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
1
180
比起獨自升級 我更喜歡 DevOps 文化 <3
line_developers_tw
PRO
0
1.1k
キャディでのApache Iceberg, Trino採用事例 -Apache Iceberg and Trino Usecase in CADDi--
caddi_eng
0
170
Cloud Native Scalability for Internal Developer Platforms
hhiroshell
2
490
白金鉱業Meetup_Vol.19_PoCはデモで語れ!顧客の本音とインサイトを引き出すソリューション構築
brainpadpr
2
450
In Praise of "Normal" Engineers (LDX3)
charity
2
1.1k
AWS全冠したので振りかえってみる
tajimon
0
150
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.2k
~宇宙最速~2025年AWS Summit レポート
satodesu
1
640
20250623 Findy Lunch LT Brown
3150
0
700
Featured
See All Featured
BBQ
matthewcrist
89
9.7k
Six Lessons from altMBA
skipperchong
28
3.8k
4 Signs Your Business is Dying
shpigford
184
22k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
How GitHub (no longer) Works
holman
314
140k
A Modern Web Designer's Workflow
chriscoyier
693
190k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Building an army of robots
kneath
306
45k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
Gamification - CAS2011
davidbonilla
81
5.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Thoughts on Productivity
jonyablonski
69
4.7k
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を撲滅し 最高のコンテンツを効率よく届ける