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
最近の若者はsshしないらしいですよ / isu-isu-h
Search
ikura-hamu
December 23, 2023
720
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
最近の若者はsshしないらしいですよ / isu-isu-h
https://github.com/reactive-futakotamagawa/isu-isu-h-13
https://trap.jp/post/2047/
ikura-hamu
December 23, 2023
More Decks by ikura-hamu
See All by ikura-hamu
ゲーム大量生産サークルを支えるゲーム管理プラットフォーム / Supporting a High-Output Game Development Circle with a Game Management Platform
ikura_hamu
1
98
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
410
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
エンジニアに許された特別な時間の終わり
watany
108
250k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
220
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Building AI with AI
inesmontani
PRO
1
1.1k
Code Review Best Practice
trishagee
74
20k
Designing Experiences People Love
moore
143
24k
Exploring anti-patterns in Rails
aemeredith
3
450
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
First, design no harm
axbom
PRO
2
1.2k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
420
Transcript
最近の若者はssh しない( する) らしいですよ @ikura-hamu / traP ISUCON LT
自己紹介 いくら・はむ (@ikura-hamu) 東京工業大学 学士2 年 Go (サーバーサイド) ISUCON13 は「リアクティブ二子玉川~♪ 」とし
て初めて出場しました。 2023/12/23 traP ISUCON LT 2 / 20
今日話す内容 ISUCON 用ツール群 「isu-isu-h 」 https://trap.jp/post/2047/ 2023/12/23 traP ISUCON LT
3 / 20
ISUCON で、何してますか? 2023/12/23 traP ISUCON LT 4 / 20
ISUCON で、何してますか? 高速化のために改善 それはそう 本質 改善以外は? ツール導入 計測 デプロイ などなど…
2023/12/23 traP ISUCON LT 5 / 20
ISUCON で、何してますか? 高速化のために改善 それはそう 本質 改善以外は? ツール導入 計測 デプロイ などなど…
ここ、もったいなくないですか? 2023/12/23 traP ISUCON LT 6 / 20
isu-isu-h 出現前の作業 場所 やること 1 手元のターミナル commit 、push 2 問題サーバー
各サーバーに ssh して pull 、設定ファイルの反映 (Makefile) 3 問題サーバー いろいろビルド、再起動 4 ブラウザ ベンチマーク回す 5 問題サーバー プロファイラ(pprof) を動かす 6 問題サーバー CPU などのメトリクスを眺める 7 問題サーバー スローログ、アクセスログをまとめて Discord に送る 8 ブラウザ pprof の結果を見る 9 ブラウザ、Discord 、エディタ … 計測結果を踏まえて改善する 2023/12/23 traP ISUCON LT 7 / 20
isu-isu-h 出現前の作業 場所 やること 1 手元 commit 、push 2 サーバー
各サーバーに ssh して pull 、設定ファイルの反映 3 サーバー いろいろビルド、再起動 4 ブラウザ ベンチマーク回す 5 サーバー プロファイラ(pprof) を動かす 6 サーバー CPU などのメトリクスを眺める 7 サーバー スローログ、アクセスログをまとめて Discord に送 る 8 ブラウザ pprof の結果を見る 9 たくさん 計測結果を踏まえて改善する 問題点 たくさんあるサーバーごと に ssh 接続してコマンドを 実行する必要がある サーバー間違いが発生 するかも 改善するときに見る場所が 散らばる スロークエリとアクセ スログは Discord pprof はブラウザ 2023/12/23 traP ISUCON LT 8 / 20
思想 ISUCON は入れた改善が多ければ多いほどいい 改善と直接関係ない作業は極力減らしたい ⇒ ツールを作ろう 2023/12/23 traP ISUCON LT
9 / 20
isu-isu-h 1. デプロイを 1 コマンドで 2. 見たい情報は全部ブラウザで を実現して、 改善サイクルのスピードを上げる ためのツール
ansible と observer の 2 つに大きく分けられる 2023/12/23 traP ISUCON LT 10 / 20
デプロイを 1 コマンドで ansible を使う 初動 計測で用いるツールの導入 Git リポジトリのセットアップ 設定ファイルのコピー
2023/12/23 traP ISUCON LT 11 / 20
デプロイを 1 コマンドで ansible を使う デプロイ ブランチを指定して GitHub から pull
設定ファイルの反映 MySQL 、nginx などのミドルウェア再起動 アプリのビルド、再起動 ログローテーション 2023/12/23 traP ISUCON LT 12 / 20
見たい情報を全部ブラウザで メトリクス、ログ確認 ⇒ Grafana Prometheus を使って node_exporter 、systemd_exporter からメトリクスを取ってきて、 Grafana
で表示した。 Promtail で systemd のログを送り、 Loki に貯めてブラウザで見れるよう にした プリントデバッグで活躍。 2023/12/23 traP ISUCON LT 13 / 20
見たい情報を全部ブラウザで 計測結果確認 ⇒ pprotein (NaruseJun 製ツール) スローログ (slp) アクセスログ (alp)
pprof を見れるツール。 これを改造して pt-query-digest も見れるようにした。 めっちゃ使いやすかったです。ありがとうございます。 2023/12/23 traP ISUCON LT 14 / 20
見たい情報を全部ブラウザで データベース操作 ⇒ adminer MySQL をブラウザから操作する。インデックスを貼ったり EXPLAIN を 実行したりするのに使った。 2023/12/23
traP ISUCON LT 15 / 20
isu-isu-h が あらわれた ! 場所 やること 1 手元 commit 、push
2 手元 ansible でデプロイ 3 ブラウザ ベンチマーク回す 4 ブラウザ いろいろな計測結果を見る 5 ブラウザ/ エディタ 計測結果を踏まえて改善する 変わったところ ベンチマークを回すまでの 過程がシンプルに 使う場所が「手元のターミ ナル」「ブラウザ」「エデ ィタ」だけ ssh して行う作業が無くな った ( ツール名の由来) 2023/12/23 traP ISUCON LT 16 / 20
isu-isu-h を作ってよかったこと 初動(~GitHub リポジトリ に設定済みのファイルがす べて上がっている状態)ま で15 分 見る場所が減るのは想像以 上に楽
ベンチマークを回すまでの 手間が少ないので、気軽に 回せる いろんな技術にちょっとず つ詳しくなった ansible Docker 、Docker Compose Grafana 、Prometheus 、 Loki ssh ( 結局内部では ssh している) などなど 2023/12/23 traP ISUCON LT 17 / 20
isu-isu-h のよくないところ 管理しにくい 「当日までに動けばいいや」で作ってたのでコードが読みにくい チームメンバーのうち自分しか構成が分からない 一部設定がURL 依存 脳内ドキュメント 2023/12/23 traP
ISUCON LT 18 / 20
isu-isu-h のよくないところ 管理しにくい 「当日までに動けばいいや」で作ってたのでコードが読みにくい チームメンバーのうち自分しか構成が分からない 一部設定がURL 依存 脳内ドキュメント ツールづくりに夢中になって練習できなかった 2023/12/23
traP ISUCON LT 19 / 20
来年は isu-isu-h で たくさん練習して 勝つ! GitHub reactive-futakotamagawa/ isu-isu-h-13 2023/12/23 traP
ISUCON LT 20 / 20