TOMOLOG

こにゃにゃちわ

社内ISUCON TOTEC2015で優勝しました!

TOTECという、サイバーエージェントの社内ISUCON的なエンジニアコンペで優勝しました!

今年はチーム戦ということで以下のメンバーで参戦しました。
ともっくす - infla
はぎ - server
ゆし - front

このメンバーは、ピグブレイブというサービスの立ち上げを一緒にやったメンバーで、お互いのことを熟知した状態で大会に望めたのが大きかったなと思います。当日も阿吽の呼吸感がすんごかった。チーム力大事ですね。

事前準備から当日まで、本当にわいわい楽しくやれたのもこのメンバーだからこそなので、改めてはぎとゆしにはありがとうと伝えたいです。

チーム名のマイナスツンデレーションについて、
「そのチーム名なんなん」
と聞かれることが多かったのですが、説明が難しいので決まるまでの過程を貼っておきますね。 f:id:tomox1001:20151114140328p:plainf:id:tomox1001:20151114091821p:plain

やったこと - 事前準備

コンペに向けて、事前準備はかなり念入りにやりました。
「入賞しなくてもベスト準備賞は狙えるかもねw」 という話も出るくらいに。 ベスト準備賞なんてないけどw

事前すり合わせでやっておいてよかったと感じたのは、やることの優先順位をチームとして決めておいたことです。
我々は「まずはアプリを作る、動かす!」をポリシーとしていました。
当日は時間がない中でやることが無限にあるので、まずは動くものを最速で作ることを決めておいたことで何をすればいいのかが明確になったかなと思います。

以下、事前準備用のメモです。
こうしてみるとほんと色々やったなぁとしみじみ。
f:id:tomox1001:20151114095038p:plainf:id:tomox1001:20151114095042p:plain

やったこと - 当日

「まずは動くものを最速で作る」
のポリシーに従い、よいスタートダッシュを切るために、事前に用意していたSTART:DASH!!!というToDoリストを元に環境構築をしました。
大きな事故もなく、開始1時間くらいでアプリが動くところまでいけました。 f:id:tomox1001:20151114095939p:plainf:id:tomox1001:20151114095947p:plain

システム構成は、2インスタンスがアプリサーバー(計測用の1台にはリバプロとロードバランサー - nginx が共存)、1インスタンスがDBサーバーというシンプルな構成でした。 アプリはnodejs、テンプレートエンジンはectを使いました。自分の手に馴染んでいるもので、というのが選択理由です。
データストアはmongoredisを予定してたのですが、渡されたデータの容量がjson化しても1.5GBぐらいだったので、「オンメモリわんちゃん」というはぎの一声でDB全部捨ててオンメモリでいく方針にしました。起動まで3分くらいかかりましたが、なんとかメモリに載りきりました。この時点でDB用に用意していたインスタンスもアプリサーバーに切り替えることにし、再プロビジョニングしました。

一応、newrelickataribeなどのパフォーマンス計測ツールも用意していたのですが、そもそもの実装量が膨大だったのでチューニングにはあまり時間をかけられなそうでした。ので、割り切りでこの辺のツールも事前にオフっておきました。
ちなみに、競技終了前にやるべきことは忘れそうだったのでEND:DASH!!!というToDoリストにまとめてありました。 f:id:tomox1001:20151114095956p:plain

まとめ

色々書きましたが、 まとめると
- オンメモリわんちゃん
- 最速実装への振り切り
- チーム力!!

が、主な勝因かなと思っております。
あとは、運の要素も大きいです。はっていたヤマが当たったり、定めていたチームポリシーがたまたま競技にマッチしたり。

個人的にはエンジニアが一同に介してわいわいやるのは本当に楽しかったのでぜひ来年も期待しております!

運営のみなさま、参加者のみなさま、本当にお疲れ様でした!!