前提
- 社内でISUCONが行われました。
- 弊社に関わりのある人が作問を行い、弊社のエンジニアと数名の学生が参加しました。
- 本家のISUCONと比較すると、だいぶ簡単?になっていたようです。
- 競技時間は4時間。
- アプリケーションの速度改善だけではなく、バグを修正するとスコアが上がるという本家ISUCONにはない要素がある。
- 参考実装はRuby(sinatra/unicorn)のみ。
- ミドルウェアはNginx/MySQLを使用。
- AWS EC2を1台が競技用のインスタンスとして渡される。
どうしてこの記事を書いたのか
- 全然スコアは伸びなかったし、よく分からないところで躓いてしまい、競技時間の半分ぐらい?を無駄に使ってしまったが、とても楽しかった。
- もっと社内ISUCONをやる会社が増えればいいのにと思った。
- だったら、社内ISUCONの楽しさを広めよう!と思って、この記事を書いている。
実際にどうだったのか
私たちの背景
この記事を書いている人は主に以下の知識や経験があります。
- Ruby/Rails(業務経験あり)
- ネットクワーク/HTTP(ちょっと)
- sinatra(ちょっと)
- MySQL(ちょっと)
- Nginx(ちょっと)
- JS/TS/React(業務経験あり)
当日にチームを組んだ相方は以下のような知識や経験があります(たぶん)。
- Android(業務経験あり)
- Ruby/Rails(業務経験あり)
- JS/TS/React(業務経験あり)
だいぶアプリケーションに寄っている知識や経験を持った人がチームを組んでいました。
私たちの結果
- 順位は3位でした。ただ、再起動試験で失敗したチームもあり、それらを含めると、5位ぐらいでした(10チームぐらい参加)。
- いくつかのアプリケーションのバグを修正し、ちょっとだけスコアが伸ばせました。
辛かった/悔しかったこと
- もっとスコアを出せたなぁと思いました。
- Nginxの王道な設定については「たくさんISUCON解説記事を読んでたくさん書いてあったやん、、、。」
- Unicornの王道な設定については「ああああ!確かにUnicornプロセスがやたら少ないやん!それって設定で増やせるんか、、、、。知らなかった、、、、。あああああああ!悔しいィィィィィィ!!!!」
みたいなことや
「ん???なんかNginxが502を返してくるぞ??どうしてだ??」
~1.5時間経過~
「なんかプロセス再起動したら治った、、、、、。なんで、、、、。泣きそう。」
みたいなことがあり、自分の力量不足をとてもとても感じました。本当に泣きそうでした。
楽しかったこと
- アプリケーションのバグを修正した時にスコアが少しだけど上がったこと。
- 一人インフラ研修でRaspberry Piでsshして作業するときの経験が活きたこと。
参加したメリット
- すごい悔しかった。これから勉強して、強くなろうと改めて思った。
- すごい楽しかった。これから技術を学ぶ意欲が改めて湧いた。
- 本家ISUCONに参加したい気持ちが湧いた(するとは言ってない)。
- 他のエンジニアと技術の話で盛り上がれた。
- 普段の業務では意識することのない技術を触るきっかけになった。
終わりに
組織によると思うのですが、やったメリットはあれど、デメリットは特にないように思います。
もちろん、その時間は業務時間なので、業務との兼ね合いが大事ですが、組織の技術力の向上の機会としては素晴らしい場でしたし、これをきっかけにみんなより学習に励むのでは(少なくとも私は)と思います。