Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
運用規模の拡大を乗り越える 〜Toilの撲滅〜
Search
Cygames, Inc.
PRO
January 09, 2019
Technology
3.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
運用規模の拡大を乗り越える 〜Toilの撲滅〜
2018/12/15 Developers Boost
Cygames, Inc.
PRO
January 09, 2019
More Decks by Cygames, Inc.
See All by Cygames, Inc.
【ゲームメーカーズスクランブル2026】『Shadowverse: Worlds Beyond』UIとアニメーションで実現する最高のユーザー体験を叶えるプロトタイピング
cygames
PRO
1
860
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
5
28k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
1
1.4k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
4
1.4k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
3
2.2k
【CEDEC2026】派手さと見やすさは両立できる!『Shadowverse: Worlds Beyond』エフェクト・3D背景の超進化したビジュアル設計
cygames
PRO
2
2.2k
【CEDEC2026】『Shadowverse: Worlds Beyond』続編開発におけるUIデザイン・アニメーション演出の「超進化」 ~継承と挑戦を両立するデザイン手法~
cygames
PRO
4
5.4k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
2
480
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
3
650
Other Decks in Technology
See All in Technology
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
1k
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
770
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
300
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
470
フィンテック養成勉強会#68
finengine
0
150
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
280
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
120
React改造してみた
tsukina_7mochi
0
120
Featured
See All Featured
From π to Pie charts
rasagy
1
400
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Six Lessons from altMBA
skipperchong
29
4.5k
The Curious Case for Waylosing
cassininazir
1
570
Google's AI Overviews - The New Search
badams
0
1.6k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
Fireside Chat
paigeccino
43
4.1k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
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を撲滅し 最高のコンテンツを効率よく届ける