社内ISUCONを公開したら広く使われた話
ISUCON6の出題者の1人の@catatsuyです。
ISUCON6予選が開催されましたが、結果はどうでしょうか。期待通りの結果になりましたか?
ところで以前に紹介したように、我々が開催した社内ISUCONの問題はソースコード・AMIともに公開しています。
各社のISUCONを愛する人達が、社内ISUCONの問題を作成して開催したという話は聞きますが、問題が公開されているケースはあまり聞きません。今回は社内ISUCONを公開し、簡単に試せるようにしたことでどのような反応が得られたのか紹介します。
事例
我々が見つけた事例を紹介します。もし漏れがあればtwitterなどで教えていただければ幸いです。
- NTTコミュニケーションズさんの研修として使われたそうです。
- KLabさんは5回に渡る解説記事を書いてくださったり、Pythonの実装を用意してくれたりと、感無量でした。
- matsuuさんがMicrosoft Azureでも遊べるように改変してくださっています。これによって、今年の本番に近い構成で練習したいチームがたくさん使ってくれました。運営としても、本番に近い環境で練習をしたチームが多かったので、当日のトラブルが少なくしてくれたことに大変感謝しています。
- Yahoo Japanさんも研修に使ってくれました。
- MMMさんも社内ISUCONを開催されたそうです。
- GMOペパボさんも社内ISUCONで使用してくれたそうです。
ISUCON参加者で練習に使ってくれた事例も紹介します。ISUCONは練習しないと勝てない大会なので、本気で勝ちに行ってるチームは過去のISUCON問題で練習します。とはいえ過去問にも限りがありますし、過去に出場したことのある人は既に何度も練習して解いています。なので、きちんと遊べるようにオープンにした弊社の社内ISUCONは、たいへん重宝されているようです。
- 友人たちとisucon予習会をやってみた感想 - 僕とコードとブルーハワイ
- pixiv社内ISUCON: pixivで開催された社内ISUCON - ISUCON
- 「どうしてもRustでISUCONに参加したい」というあなたに | hexacosa.net Rust実装を用意してくださっています。
- 2016-09-14 cheeseinmisosoup - 日報
- ISUCON6に参加して0点で終わった | TRIAL DANCE
- ISUCON6でイスコーン - imishinist’s blog
- ISUCON6に参加しました. - chigichan24に人権はあるだろうか,いやない
- ISUCON6にmorimoto組で参加してきました - moshisora.memo
- ISUCON6予選に参加して学生枠7位で通過しました - 鉄分は大事。(特にヘム鉄) pixiv 2016 SPRING BOOT CAMPの参加者。
- hanhan's blog - ISUCON6予選で人権を取り返せなかった話
- ISUCON6予選 negainoido 参加記 - atetubou’s blog
- #ISUCON 6 に参加して僅差で人権を失いました - purintaiの日記
- ISUCON6予選 TOPで敗退するまでの道のり - チューリング不完全
- ISUCON6予選参加記 - Qiita
ポータルサイト
我々が社内ISUCON当日に使用したポータルサイトのソースコードも公開されています。しかし多くのチームが参加しても大丈夫なようにsidekiqを使用したジョブキューの仕組みを使って、ベンチマーカーを動かすサーバーを分散する機能が実装されています。このように複雑な仕組みになっているので、作った我々以外の人が動かすのは難しいと考えています。
そこでポータルサイトを独自に用意された人もいるので紹介します。
- GitHub - iwashi/private-isu-portal: Pixiv ISUCONの結果描画用のポータルページ
- NTTコミュニケーションズさんの研修で使われたそうです。
- ISUCON 練習会をするために InfluxDB + Grafana でポータルサイトを作った - ほとラボ
- GitHub - hakatashi/benchmarker-webapp: pixivの社内ISUCONのポータルサイトの簡易実装
- pixiv小説で機械学習したらどうなるのっと【学習済みモデルデータ配布あり】 - pixiv inside や Slackを一句BOTで風流に - pixiv inside などの記事を執筆した弊社のアルバイト作です。社内ISUCONでも2位を取りました。弊社からの唯一のISUCON6本選出場者です。
他言語実装
我々で用意した言語実装はRuby,PHP,Go,Node.jsに加えて、KLabさんが用意してくれたPythonがあります。
ISUCON6の参考実装はRuby,PHP,Go,Perl,Nodejs,Python,Scalaでした。なので現在PerlとScalaが足りない状況です。私も社内ISUCONのRuby実装をGo実装に移植する作業を行いましたが、移植作業を行うことで各言語の仕様について予想以上に調べる必要があることが分かります。その知見はISUCONを戦う上でも使えるものになるかもしれません。
まだ実装されていない言語の実装を用意してみませんか?
最後に
社内ISUCONを公開することで、ここまでの反応を得られました。各社の社内ISUCONも公開されてみてはいかがでしょうか。私もぜひ解いてみたいと思っています。
我々は引き続きISUCON6本選の準備を進めています。皆様お楽しみに!