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
to-hutohu
November 13, 2024
Technology
810
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
これまでの計測・開発・デプロイ方法全部見せます! / 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
270
Other Decks in Technology
See All in Technology
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.8k
関東Kaggler会発表資料
takoi
1
160
ガバメントクラウドでのランサムウェア対策
techniczna
2
980
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
6
2.1k
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
300
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
190
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
350
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.9k
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
190
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
20分でわかるセキュアAPI
nwiizo
0
180
Webアクセシビリティ入門 2026
recruitengineers
PRO
2
450
Featured
See All Featured
Leo the Paperboy
mayatellez
8
2.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
A Modern Web Designer's Workflow
chriscoyier
698
190k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.7k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
460
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
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頑張ってください!!