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
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
to-hutohu
November 13, 2024
Technology
780
3
Share
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
ISUCON常勝軍団の頭の中〜メンバー集めから解き方の秘密まで〜 (
https://findy.connpass.com/event/334902/
) で発表したLTのスライドです。
to-hutohu
November 13, 2024
More Decks by to-hutohu
See All by to-hutohu
Apex Legendsにハマっています / I'm addicted to Apex Legends
tohutohu
0
1.2k
部内チャットツールのオフライン対応をした話 / Make traQ offline available
tohutohu
0
260
Other Decks in Technology
See All in Technology
ふりかえりを 「あそび」にしたら、 学習が勝手に進んだ / Playful Retros Drive Learning
katoaz
0
460
CDK Insightsで見る、AIによるCDKコード静的解析(+AI解析)
k_adachi_01
2
100
Digitization部 紹介資料
sansan33
PRO
1
7.2k
#jawsugyokohama 100 LT11, "My AWS Journey 2011-2026 - kwntravel"
shinichirokawano
0
100
Proxmox超入門
devops_vtj
0
180
【PHPカンファレンス小田原2026】Webアプリケーションエンジニアにも知ってほしい オブザーバビリティ の本質
fendo181
0
580
Data Hubグループ 紹介資料
sansan33
PRO
0
2.9k
CC Workflow Studio
seiyakobayashi
0
320
AI環境整備はどのくらい開発生産性を変えうるか? #AI駆動開発 #AI自走環境
ucchi0909
0
130
DevOpsDays Tokyo 2026 見えない開発現場を、見える投資に変える
rojoudotcom
3
170
JEDAI in Osaka 2026イントロ
taka_aki
0
120
仕様通り動くの先へ。Claude Codeで「使える」を検証する
gotalab555
8
3.3k
Featured
See All Featured
Fireside Chat
paigeccino
42
3.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Skip the Path - Find Your Career Trail
mkilby
1
100
Information Architects: The Missing Link in Design Systems
soysaucechin
0
870
Prompt Engineering for Job Search
mfonobong
0
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
270
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
[SF Ruby Conf 2025] Rails X
palkan
2
940
BBQ
matthewcrist
89
10k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Transcript
これまでの計測・開発・デプロイ方法全部見せます! 2024/11/14 @to-hutohu ISUCON常勝軍団の頭の中〜メンバー集めから解き方の秘密まで〜
自己紹介 2 これまでの計測・開発・デプロイ方法全部見せます! n とーふとふ(@to_hutohu) n サーバーサイドエンジニア n 元 traP
代表・SysAd班リーダー n ISUCONでサーバー開発を学び、 ISUCONでGoを知りました
NaruseJun所属です 3 これまでの計測・開発・デプロイ方法全部見せます! n ISUCON12・ISUCON13優勝チーム n 元 traP SysAd班のチーム
チーム NaruseJunとは n @sekaiをチームリーダーとしてコンテストなどに出るときのチーム名 l ISUCONだけでなくCTFやトラブルシューティングコンテストなどにも出場 n ISUCONにはサークルの実績作りのために参加を初めた n 元ネタは「心が叫びたがってるんだ」というアニメの主人公から
4 これまでの計測・開発・デプロイ方法全部見せます! https://www.kokosake.jp/character/
とーふとふのISUCON歴 5 これまでの計測・開発・デプロイ方法全部見せます! 大会 結果 メンバー ISUCON7 本戦出場 sekai to_hutohu
nari ISUCON8 本戦4位・学生2位 sekai to_hutohu azon ISUCON9 予選2位(本選辞退) to_hutohu ISUCON10 再起動試験失敗 sekai takashi to_hutohu ISUCON11 本戦2位 sekai takashi to_hutohu ISUCON12 優勝 sekai takashi to_hutohu ISUCON13 優勝 sekai takashi to_hutohu
6 これまでの計測・開発・デプロイ方法全部見せます! この後のパネルディスカッションやQ&Aのネタにもできたら と思っているので気になる箇所はコメントで教えて下さい! これまでの計測・開発・ デプロイ方法全部見せます!
ISUCON7 (結果:学生枠で本選) 7 これまでの計測・開発・デプロイ方法全部見せます! 初動周り itamaeでツール類をインストール スロークエリログとその分析ツールは難しくて使えなかった 開発方法 手元で開発(vim)してmasterに直push 動作しないコミットもそのままmasterに入る
デプロイ・ベンチ GiteaからWebhookを受けてデプロイ→Slackへの通知をするPHPサーバー アクセスログなどは毎回手で消す運用 計測系ツール myprofiler, kataribe, pprof, top, dstatなど それぞれが自分の画面で計測
ISUCON8 (結果:学生2位) 8 これまでの計測・開発・デプロイ方法全部見せます! 初動周り itamaeでツール類をインストール チートシートを自前で作って秘伝のタレを入れるように 開発方法 それぞれが手元でmasterを伸ばしてforce push
無事改善が入ったらそれを基準として宣言して他メンバーはrebase デプロイ・ベンチ サーバー上でコマンドを叩くとmasterブランチがデプロイされる仕組み アクセスログなどは毎回手で消す運用 計測系ツール myprofiler, kataribe, pprof, top, dstat, htop それぞれ自分の手元で計測
ISUCON9 (結果:予選2位) 9 これまでの計測・開発・デプロイ方法全部見せます! 初動周り make setupで必要なツールが入るように チートシートを自前で作って秘伝のタレを入れるように 開発方法 サーバー上にVSCode
Remoteで繋いで開発(基本masterのみ) 他インスタンスにはGitHub経由で展開 デプロイ・ベンチ make deploy でデプロイ、make benchでベンチ前処理 設定ファイルはそれぞれ手動で変更 計測系ツール pt-query-digest, kataribe, pprof, top, dstat make slow/kataru/pprofなどで分析結果をSlackに
ISUCON10 (結果:予選再起動試験失敗) 10 これまでの計測・開発・デプロイ方法全部見せます! 初動周り Ansibleで必要なツールを展開 チートシートを自前で作って秘伝のタレを入れるように 開発方法 それぞれがブランチを切って開発(IntelliJ IDEA)
改善が確認できたら手元でmainにマージしてpush デプロイ・ベンチ make deploy でブランチを指定してデプロイ (設定ファイルをrsync) make benchでベンチ前処理 計測系ツール pt-query-digest, kataribe, pprof, top, dstat, netdata, PHPMyAdmin make slow/kataru/pprofなどで分析結果をSlackに
ISUCON11 (結果:本選2位) 11 これまでの計測・開発・デプロイ方法全部見せます! 初動周り Ansibleで必要なツールを展開 チートシートを自前で作って秘伝のタレを入れるように 開発方法 それぞれがブランチを切って開発(IntelliJ IDEA)
改善が確認できたら手元でmainにマージしてpush デプロイ・ベンチ make deploy でブランチを指定してデプロイ (設定ファイルはcp) 計測系ツール pprotein(pt-query-digest, alp, pprof) top, dstat, netdata, PHPMyAdmin
ISUCON12 (結果:本選1位) 12 これまでの計測・開発・デプロイ方法全部見せます! 初動周り Ansibleで必要なツールを展開 チートシートを自前で作って秘伝のタレを入れるように 開発方法 それぞれがブランチを切って開発(IntelliJ IDEA)
改善が確認できたら手元でmainにマージしてpush デプロイ・ベンチ make deploy でブランチを指定してデプロイ (設定ファイルはcp) make benchでベンチ前処理 計測系ツール pprotein(slp, alp, pprof) top, dstat, netdata, PHPMyAdmin
ISUCON13 (結果:本選1位) 13 これまでの計測・開発・デプロイ方法全部見せます! 初動周り Ansibleで必要なツールを展開 チートシートを自前で作って秘伝のタレを入れるように 開発方法 それぞれがブランチを切って開発(IntelliJ IDEA)
改善が確認できたら手元でmainにマージしてpush デプロイ・ベンチ make deploy でブランチを指定してデプロイ (設定ファイルはcp) make benchでベンチ前処理 計測系ツール pprotein(slp, alp, pprof) top, dstat, netdata, PHPMyAdmin
まとめ 14 これまでの計測・開発・デプロイ方法全部見せます! 回 7 8 9 10 11 12
13 初動 itamae itamae+ チートシート Makefile+ チートシート Ansible+チートシート 開発 master運用 master force push VSC Remote 各自Branch→masterマージ デプロイ Webhook Makefile ベンチ前 手動 Makefile 自動 計測ツール myprofiler, kataribe, pprof pt-query-digest, kataribe, pprof pprotein 他ツール top, dstat, (htop) top, dstat, netdata, PHPMyAdmin 初・中級者時代 Makefile時代 pprotein時代
今から手軽に準備するなら! 15 これまでの計測・開発・デプロイ方法全部見せます! 初動周り 利用するツールを一発で入れられるスクリプトを用意 チートシートは公開されているものの中から自分ができそう・試したものを抜粋 開発方法 1人チームならVSCode Remoteを検討 複数人なら手元でのマージ運用で良い
(IssueやPRは必須ではない) デプロイ・ベンチ 一発でデプロイできるスクリプトを準備(CDの仕組みは不要だと思う) ベンチ前処理はtruncateコマンドを流すだけでも良い 計測系ツール 利用するツールのセットアップと設定方法とかを把握しておく Goならpprofだけでも戦える
今からちゃんと準備するなら! 16 これまでの計測・開発・デプロイ方法全部見せます! 初動周り 複数台に対して一度にツールや秘伝のタレなどを流し込めるようにする チートシートは終盤の動きややることがないときのチェックリストなどを 開発方法 1人チームならVSCode Remoteを検討 複数人なら手元でのマージ運用で良い
(IssueやPRは必須ではない) デプロイ・ベンチ 一発でデプロイできるスクリプトを準備 複数台に対しても同じコマンドで設定ファイル含めて正しくデプロイできるように 計測系ツール pproteinを使えるようにする(別インスタンスで準備できると尚良し) netdataとかも入っているとみんなでベンチ中に眺めたりできて良い
17 これまでの計測・開発・デプロイ方法全部見せます! ISUCON頑張ってください!!