お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル「ISUCON」。今回、LINEの主催で記念となる10回目の「ISUCON 10」が開催された。
エンジニア1200人超がしのぎを削る「ISUCON」
ISUCON 10は9月12日に参加チーム490組、参加者1209人(うち学生245人)によるオンライン予選を経て、10月3日に予選を通過した33組91人(同28人)による本選が開催され、日本のエンジニア達がしのぎを削った。参加費は無料で優勝賞金は100万円となり、本選の総合1~3位のチーム、学生1~2位のチームに対する賞、および特定スコアに対して特別賞を用意した。本選出題はクックパッドと宇宙海賊、インフラ提供はサイバーエージェントが担い、性能値の高さを競う採点方式とした。
本選ではアプリケーションの「XSUCON」が出題され、ISUCONを模した仮想的な競技のポータルサイトとした。シナリオは以下の通り。
1. 最初に仮想選手登録・仮想チーム登録リクエストが押し寄せる(初期状態では10チームが締め切り)
2. 仮想選手達が仮想負荷走行をエンキューしたり、仮想運営に質問を投げたりする
3. 仮想運営は質問が来たら返答を返す
4. 仮想選手達は仮想負荷走行の完了や質問の回答が来たかどうかを把握するために通知のエンドポイントをポーリング
5. その間も仮想選手や仮想オーディエンスが常にダッシュボードをポーリング
アプリケーションは仮想ポータルと仮想ベンチマークサーバの2つのサーバとなり、仮想ポータルはHTTPSを、仮想ベンチマークサーバはgRPCを、それぞれ採用。仮想ポータルのフロントエンドはReact.jsで実装(チューニング対象外)したが、フロントエンドとサーバとの通信にはJSONではなく、Protocol Buffers(protobuf)を利用した。アプリケーションの前段にはEnvoyがあり、これが仮想ポータルと仮想ベンチマークサーバへのリクエストを振り分けた。
スコア設計は「仮想選手・仮想オーディエンス・仮想運営それぞれの視点からのXSUCONの満足度の高さ」がスコアになるように設計した。本選問題では予選と同様に、スポンサーであるサイバーエージェントから競技サーバとして1チームあたり3台が提供され、競技サーバ1が1GB RAM、2vCPUs、競技サーバ2が2GB RAM、2vCPUs、競技サーバ3が1GB RAM、4vCPUs。本選に進出した33チームの利用言語の内訳はGoが28組(84.8%)、Nodejsが3組(9.1%)、RubyとRustが各1組(3.0%)となった。
最終スコアの算出手順は、(1)全チームのサーバを再起動し、10分以上待つ、(2)全チームのベンチマークを運営より実行(計測は各チーム3回ずつ実施)、(3)(2)で実施した最後の負荷走行がfailとなっているチームに関しては、再度計測を実施(この際、再度failとなったチームは失格。これは、負荷走行をpassした直後の状態で(4)の「再起動・ブラウザ動作確認」を行うことを目的とした手順)、(4)全チームのサーバを1と同手順で再起動し、ブラウザから動作確認を行う(ここで正常な動作が確認できなかったチームは失格)、(5)(2)の負荷走行で計測したスコアのうち、その中で最も高いスコアをそのチームの最終スコアとする(failについては0点)。
トップ3を学生が占める結果に
優勝賞金に加え、総合2位に賞金30万円、総合3位に同10万円、学生1位に同30万円、学生2位に同10万円、特別賞に同5万円を授与した。各賞の受賞チームとランキングは以下のとおり。
総合1位および学生1位
takonomura(学生):4万8344点
総合2位および学生2位
Azeit(学生):4万3366点
総合3位
がんもどき(学生):3万4767点
特別賞(最初に2万点を越えたチーム)
第5西東京市 (12:26時点で 2万113点を達成)
総合4位
一口坂46:3万1432点
総合5位
百万円ドリブン:3万834点
総合6位
FetchDecodeExecWrite:3万766点
総合7位
ヌルポインターマリアユニバース:2万8628点
総合8位
hidekiy:2万8244点
総合9位
shallowverse(学生):2万6249点
総合10位
ふんばり温泉チーム:2万5080点
総合11位
101010:2万4870点
総合12位
MN:2万3438点
総合13位
hoge:2万3294点
総合14位
BruteForce(学生):1万6321点
総合15位
SNE:1万4494点
総合16位
😇😇😇(学生):1万4206点
総合17位
FCCPC_かみのやま温泉:1万751点
総合18位
いすこんがさき、しゅうろんはあと(学生):1万177点
総合19位
curl gotti:7747
総合20位
牡蠣の鋭利な殻が指に突き刺さり利き手を負傷:6805
以上がランキングだが、トップ3を学生が占める形となり、隔世の感すら覚える。若い人材が今後、日本のIT業界を支えるためにもISUCONの存在意義は大きいものだと感じた。