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
250
これまでの計測・開発・デプロイ方法全部見せます! / 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
980
部内チャットツールのオフライン対応をした話 / Make traQ offline available
tohutohu
0
180
Other Decks in Technology
See All in Technology
20241108_CS_LLMMT
shigashiyama
0
250
Terraform Stacks入門 #HashiTalks
msato
0
220
Microsoft Fabric OneLake の実体について
ryomaru0825
0
190
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1.6k
RAGのためのビジネス文書解析技術
eida
3
660
End of Barrel Files: New Modularization Techniques with Sheriff
rainerhahnekamp
0
280
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
470
AI機能の開発運用のリアルと今後のリアル
akiroom
0
250
Datadog RUM を用いた UX 指標の監視・顧客対応への活用
imamura_ko_0314
0
110
株式会社島津製作所_研究開発(集団協業と知的生産)の現場を支える、OSS知識基盤システムの導入
akahane92
1
180
Windows Autopilot Deployment by OSD Guy
tamaiyutaro
0
300
Forget efficiency – Become more productive without the stress
ufried
0
240
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
How to Ace a Technical Interview
jacobian
276
23k
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Building Your Own Lightsaber
phodgson
102
6.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Visualization
eitanlees
145
15k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Building Applications with DynamoDB
mza
90
6.1k
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頑張ってください!!