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
800
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
人材育成分科会.pdf
_awache
4
290
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
150
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
130
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
150
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.2k
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
Chainlitで作るお手軽チャットUI
ynt0485
0
270
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
100
When Platform Engineering Meets GenAI
sucitw
0
110
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
690
入門!AWS Blocks
ysuzuki
1
150
【NRUG vol.18】なぜ多くのオブザーバビリティ導入は失敗するのか
nrug_member
0
190
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
5.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
150
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
A better future with KSS
kneath
240
18k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Amusing Abliteration
ianozsvald
1
210
Ethics towards AI in product and experience design
skipperchong
2
310
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頑張ってください!!