ISUCON13参加のふりかえり&社内での取り組み
この記事は カオナビ Advent Calendar 2023(シリーズ2) 9日目です。
はじめに
カオナビCTOの松下( @matsukaz )です。
11月25日に ISUCON 13 に参加したので、遅ればせながらそのふりかえりになります!
私は前職の元同僚たちとのチームで参加しているんですが、カオナビ社内にも参加者がいて、今後もっと一緒に対策に取り組めたらと話しているので、その動きについても触れたいと思いますー。
ISUCON13の内容はこちら。
ISUCON参加は今回で5回目でした。
昨年は私は参加できなかったので2年ぶり。
2年前は惜しいところまでいったので、今年こそは本戦出場を…!と意気込んでいたら、今年は予選がなく全員本戦で参加するとのことだったので、念願の本戦出場を果たせましたw
過去のふりかえりはこちら。
最終スコア
結果はどうだったかというと、最終スコアは 28,581点
でした。
まあまあ戦えてたとは思うけど、TOP30には程遠かったです。厳しい…
やったこと
事前準備
基本的には2年前と変わらずで、毎年継ぎ足ししてきた秘伝の自動化・環境構築スクリプトの使い方を軽く振り返ったぐらいでした。
├── Makefile ← デプロイやツール類の操作、設定ファイルの反映などすべてMakefile経由で
├── bin ← goのビルド結果ファイルを置くとこ
├── etc ← 各種OSとミドルウェアの設定ファイル
├── logs ← 取得した各種ログの置き場所
├── scripts ← アプリやミドルウェア、プロファイリングツールを操作する系
├── src ← アプリの実装
└── www ← 静的コンテンツ
とはいえ2年ぶりだといろいろ忘れてたので、個人的には準備不足だったなぁと反省。
本戦でやったこと
序盤はいつもの流れで
- レギュレーションの確認
- アプリの仕様や全体構成の確認
- ビルドやデプロイ、ログ収集など自動化できるようにスクリプトを準備
- 初回ベンチを回す
あたりを行い、まずは全体像の把握から。
そこからは3人でSlackのハドルで話ながら分担を決めつつ改善していきました。
私は主にインフラ・ミドルウェア周りを中心に対応しました。
具体的には
- DNSをラウンドロビンにしてアプリケーションサーバを2台構成に変更
- MySQLを別サーバに分離
- MySQLまわりのチューニング(インデックスを張ったり)
といったところ。
アプリケーションの実装周りも多少は見たものの、あまり手を出す余裕はなかったので、他のメンバーにお任せしてました。
反省点
N+1問題への対応やDNSの水責め問題など、まだまだできることも多かったのに、全然時間が足りませんでした。
思った以上に手が動かせてなかったなぁと。
普段から開発してたり手を動かしてないとダメですね…
なるべく時間作って手を動かすようにしなければー!
今後
個人としては来年もぜひ参加したいです!
同じチームで出場できるかは状況次第かな?
カオナビ社でもISUCON参加者がいるんですが、丁度このタイミングで社内で新しくWakkaという部活制度が生まれたので、ISUCONの集まりを作ってくれました!
会社から補助も出るので、みんなで集まってワイワイしながらISUCON対策やっていけるといいなー
来年は何チームか参加してくれたら嬉しい!!
まとめ
遅ればせながらのふりかえりになってしまいましたが、やはりISUCONは学びも反省点もありつつも、めちゃくちゃ楽しいイベントでした!!
ここまで準備するのはとんでもなく大変だと思うので、運営の皆様本当にありがとうございます&お疲れ様でした…!!!
Discussion