現実見せつけられて最高の学びだった
最終スコア5000ちょっと。そもそも正のスコアが出たのが半分以上終わってからでした。
私の貢献値はゼロ。完全に役立たずに徹したわけですが、役立たずだった分せめて学びにはしよう、ということで書かせていただきます。
ISUCONは、Webアプリの様々なレイヤーに強制的に触れることになります。
普段開発と運用、インフラとアプリが分離されているSIer仲間のみなさんにつきましては、ぜひ出場して一緒に打ちひしがれたいな、と思う所存です。
経緯
そもそもISUCONとは
お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル
(出典) ISUCON公式Blog http://isucon.net/
です。お題のWebアプリ(運営の方の手作り...!)がクラウドサービス上で配布されるので、決められた時間以内に決められたテストツール(こちらも手作り...!)のスコアを一番高くまで引き上げたチームが勝ちです。
私はTechCircleのコアメンバーである@shiracoさんと@ike_daiさんにお声がけいただいて参加してきました。これまでも「あ、そういうのあるんだなー、おもしろそうだなー」と思ってはいたのですが、どこか自分事ではないような気持ちでTwitterやブログエントリを横目に見ていました。誘っていただいた時に急に自分事になったので、びっくりしながら即決しました。
結果
ベストスコア5000点ちょっとだったはずです。勿論予選落ちです。
事前にしたこと
素振りを0.5回、作戦会議を1回しました。
素振りは過去問を使ってやってみました。定石も何もわからない状態での手探りで、なんとなく雰囲気は分かった程度でした。
もっとやっとけよ、以外の何物でもないですね。なんかなんとかなるような気がしていたのでしょう。こういうところが現実の認識が甘いところでした。
当日
メモを取っていないので記憶ベースですが、以下のような流れで行いました。
- まずベンチマークを取る。
- 0点が出て驚愕する。
- 開発環境を整える。(VMを誰でも触れるようにする、ソースコードをプライベートリポジトリに上げる、fluentdを仕込むなど)
- コードリーディング。めちゃめちゃコードが短くて何もすることがない気がして焦る。
- 何もしないわけにいかないので怪しげなところを考えて3人で役割分担する
- うまくいかない
- nginxのワーカー数がデフォルトで数個だったのをもう少し上げたら正のスコアが出る
- 効果測定しながら少しスコアを稼ぐ
- 終了
学び
Webアプリの高速化の価値
普通のSEがうっかり作っちゃうようなアプリケーションを、同じリソースで100倍スピードアップするってすごい価値が高いイイ仕事!
(出典) 予選後の反省飲み会メモ
私たちはせいぜい2倍程度にしかスピードを挙げられなかったのですが、上位の人たちが持っているスキルは価値が高いと心から思いました。同じサーバで100倍以上のパフォーマンス改善を行えるなら、それが大規模なアプリケーションであればあるほどリソースの購入コストを引き下げられます。それに、今あるものを使い倒してパフォーマンスを稼ぐのは美しいと思います。
現実見た
しかしそれより一番学びだったのは、今自分がなんとなく仕事をできているような気がしていても、それは誰かデキる先輩が敷いてくれたレールに沿って歩いているだけで、1人では何もできないという厳しい現実でした。
仕事はチームプレーで、私はまだ部分的に構成を決めることはあっても、最後は先輩やマネジャー、テックリードの人たちが引いた線路に乗っかることになります。そうやって下駄を履かせてもらっている中で想定通りの成果を上げたところで、こういう場にぽんと放り出されてなんでもいいからパフォーマンスの改善につながることをハックしてみろよ、と言われたら何もできませんでした。
それを痛感した1日は楽しかったですが悔しかったです。Webアプリを仕事で書いてるはずなのに、ぽんと渡されたWebアプリを全く改善できない自分を知ることができたのは、ガツンと殴られたような学びでした。
3人で良かった
歯が立たなくても一緒に頭を抱えられるチームメンバーがいるのはとてもありがたかったです。歯が立たなかったことを、一緒に悔しがって一緒に笑えたおかげで、変に苦しまずにいられました。
チームというか、応援してくれる関係者というのは仕事でも趣味でも必要だなと感じました。精神論ですが、自分の志向を知ってくれている上司がいたり、自分が作っているものに興味を持ってくれる人がいると、それだけでモチベーションが格段に保ちやすいです。
来年も!
誘ってくださった@shiracoさん、@ike_daiさん、本当にありがとうございました。
来年は同じチームか別のチームか分かりませんが、また一緒に出て今度は本選にいきましょう!
明日はユーモア溢れかつ真面目な@seiketkmさんです。お楽しみに〜