Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
最近の若者はsshしないらしいですよ / isu-isu-h
Search
ikura-hamu
December 23, 2023
740
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
110
traP の部内 ISUCON とそれを支えるポータル / PISCON Portal
ikura_hamu
0
440
Featured
See All Featured
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Scaling GitHub
holman
464
140k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Design in an AI World
tapps
1
320
The agentic SEO stack - context over prompts
schlessera
0
940
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
So, you think you're a good person
axbom
PRO
2
2.2k
The browser strikes back
jonoalderson
0
1.7k
Visualization
eitanlees
152
17k
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