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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ikura-hamu
December 23, 2023
710
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
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
400
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
220
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Automating Front-end Workflow
addyosmani
1370
210k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
540
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
320
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Become a Pro
speakerdeck
PRO
31
6k
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