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
3
760
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
ISUCON常勝軍団の頭の中〜メンバー集めから解き方の秘密まで〜 (
https://findy.connpass.com/event/334902/
) で発表したLTのスライドです。
to-hutohu
November 13, 2024
Tweet
Share
More Decks by to-hutohu
See All by to-hutohu
Apex Legendsにハマっています / I'm addicted to Apex Legends
tohutohu
0
1.1k
部内チャットツールのオフライン対応をした話 / Make traQ offline available
tohutohu
0
250
Other Decks in Technology
See All in Technology
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
140
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
570
Scrum Guide Expansion Pack が示す現代プロダクト開発への補完的視点
sonjin
0
220
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
210
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
350
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
280
コールドスタンバイ構成でCDは可能か
hiramax
0
130
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
270
Master Dataグループ紹介資料
sansan33
PRO
1
4.2k
AWS Lambda durable functions を使って AWS Lambda の15分の壁を超えてみよう
matsuzawatakeshi
0
120
Qiita Bash アドカレ LT #1
okaru
0
140
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
140
The Curious Case for Waylosing
cassininazir
0
200
Statistics for Hackers
jakevdp
799
230k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
74
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
100
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
680
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
270
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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頑張ってください!!