窓とかペンギンとか

インフラエンジニアの色々備忘録 少しでも情報を発信できたらなと思いブログを作ってみました。 このブログの内容は個人の見解であり、所属する組織の公式見解ではありません. 趣味のこと等も書きます(たぶん)

ISUCON参加回数0回の人間が運営側にいきなり参加してみたお話。

f:id:lezoid:20181022202833p:plain


ISUCON8に運営側(インフラ提供側)として参加してきました。
個人ブログなので会社名はホームページの協賛やブログ記事から察してください。


ブログ書くまでがISUCONということで…書かないと終えられないぞ…!

ということで、、、書きました
まずは参加チーム数 528組(一般 432、学生 96) 参加者合計 1392名の方々お疲れさまでした!🎉




ISUCON8に運営側として参加する機会を頂きましたので、
個人的な記事を書きたいと思います。
なお今までISUCON自体にも参加したことがなかった ※重要

  1. なぜISUCON8に参加することになったのか
  2. ISUCON8 初顔合わせミーティング&要件ヒアリング (LINE社)
  3. ISUCON8 湯河原合宿編 ~参加して感じたこと~
  4. ISUCON8 インフラ的には本選より怖い予選編 (弊社社内待機)
  5. ISUCON8 本選で運営側としてやったこと(LINE社)
  6. ISUCON8 感想


もちろんISUCON自体は知っていたけれど。
過去問など見ても正直私のプログラミングスキルでは、関わることはないだろうな…と思っていた程度であった。

要するに私からすると憧れるエンジニア像が沢山参加しているそんな大会。

今回はそんなプログラミングスキル低い系エンジニアがISUCON8の運営に参加することになったお話です。
技術的内容は別ブログにてメイン担当者が書くので、もう少しお待ちください…🙇

## 全員がプログラミングスキル低い訳ではないです!中には参戦できるスキルを持っているエンジニアもたくさんいます。
## 裏側ではかなり事前検証、構成設計、各担当部署との調整をしていました。
## (最悪を想定して、予選・本選含め各種レイヤー層全員配置しましたし)
## 実体の裏側の詳細話や苦労話は、今回9割形実務を担当してくれた凄い弊社エンジニアが2名おりまして、
## Oさんが代表(実名公開していいかもわからないし略称)して書いてくれるので、お待ちください~!
## エンジニアとしても尊敬していますし、私はその2名に頭があがりません…🙇
## 🍖🍖🍖その2人には大量の肉を奢りたいと思います🍖🍖🍖

※こちらの記事は個人的な備忘録です。個人の見解であり、所属する組織の公式見解ではありません

ISUCON公式Blog

1.なぜISUCON8に参加することになったのか

見出しにも書きましたが、
もちろんISUCON自体は知っていたけれど。
過去問など見ても正直私のプログラミングスキルでは、関わることはないだろうな…と思っていた程度であった。

(要するに私からすると憧れるエンジニア像が沢山参加しているそんな大会。)

なんて思っていたらお偉い人を経由して
今回LINEさんから、「某VPSサービス(お察し下さい)ISUCONのインフラ提供しませんか」とお声がけ頂いた。
もちろんNoを言うことも可能だった。が
答えはYes(やります)しか出なかった。

なぜなら社外に弊社エンジニアのアピールしたかったのが正直な所です。
こんな技術力がある人が居るのに、社外には伝わらないのだろうとエンジニア同士で悩む時もありました。
その問題を悩ませた私自身も何かしている訳ではなく、言うからには何か始めないと という思いがあったのもあると思う。

実はYuya Matoba (@lezosan) | Twitterやこのブログを始めたのも、”言うだけではなくまずは自分から行動を起こさないと”という理由もあったりします。
最近忙しすぎて書けてないから、意識しなおさないと・・・

この段階ではインフラ要件はざっくりした物しかなく、話聞かないと分からないという状態であったので、まずはミーティングの設置をお願いしたのを覚えている。

すぐに941🖖 LINE DevRel (@941) | Twitterさんから連絡がきた。
さすが慣れているおはやい…スピード感凄い

2.ISUCON8 初顔合わせミーティング&要件ヒアリング (LINE社 /DeNA社/カヤック社)

正直かなり緊張した。
弊社は私(エンジニア)、該当サービスの事業部担当者(プロダクトのマーケティングなどするチーム)3名でお伺いした。
ベンダーの方とミーティング等はいくらでもするのですが、謎の緊張感を感じたのは覚えている。
なんせ目の前にいるのは過去のISUCONを制覇してきたlegend達なのである。
そして有名なオフィス紹介記事を941::blogを書かれてる、941🖖 LINE DevRel (@941) | Twitterさんもいる。

だが緊張して何も話さず終わるわけにはいかないのでw、
下記要件をまとめたのは覚えている

・ISUCON8の予選参加者は何チームを想定しているのか。

物理サーバーが何台必要になるのか計算する必要があった。
具体的に1チーム〇Core/〇GB Specが何台必要なのか見積もった。
そしてDeNAさんカヤックさんから言語によっては複数台構成が有利になってしまったり、単一構成が有利になってしまう 等 
過去のISUCONでのノウハウをご教授頂いたので、2パターンのVM構成パターンをお試しでお渡しすることにした。

・必要ネットワーク帯域等

VM同士でのトラフィックやCPUリソースの取り合い等を不安視しているように感じられた。
この点に関しては社内に持ち帰り検証をする必要があった。
ここら辺で行った検証等、具体的な技術的内容は別ブログで書いてもらうので、そちらをお待ちください。

・課題など

今までのISUCONで発生してきたトラブル(例えば開催直前に発覚する問題の作り直しなど)をお教え頂き対応できるのか 等検討
OpenStackの基盤であれば、ここら辺は柔軟に対応できそうかなと思えました。
柔軟にデプロイできる仕組みを作る必要があった。
(検証等、具体的な技術的内容は別ブログで書いてもらうので、ry略

・必要サーバー台数の概算見積もり(社内)

これでISUCON8用に発注しなければならない最低サーバー台数が算出できた。
納期や検証期間を考慮するとISUCON8予選まで時間がないので、急いで発注処理をかけないといけないなー…とか頭の中で考えてた。
到着してすぐ使える!なんて魔法はないものでして…社内に持ち帰り必要性を説明した上である程度余裕をもった事前購入許可を得ました。

早く発注かけた事が後々の検証に非常に役に立ちました。
なぜやくにたったか 検証等、具体的な技術的内容は別ブログで書いてもらうので、ry略

3. ISUCON8 湯河原合宿編 ~参加して感じたこと~

今回メインで構成案や検証を進めてもらっていたメンバーの1人であるOと一緒に参加させて頂いた。
ちなみこの合宿の目的は3つあった。
1.サーバー構成案についてのご相談 (私たち)
2.ISUCON 問題方針の発表(予選/本選含め)
3.予選と本選の問題をそれぞれ解き合う

1.941🖖 LINE DevRel (@941) | Twitterさんのスピード感まじ凄い。

品川駅に無事集合~。だったが東海道線が大遅延していた。
LINEさんの臨機応変の対応で🚅新幹線で移動…!快適でした!

2. DeNAさんとカヤックさんのエンジニアの技術力の高さ

我々は事前に検証した結果に基づいた構成案を2パータンだしたのだが、(検証等、具体的な技術的内容は別ブログで書いてもらうので、ry略
発表時に的確なツッコミも頂いたし、質問もバンバン飛んできた。※そのときのツイートはこちら
アドバイスのおかげで構成を更に良い方向に変更できたし、非常に有意義なディスカッションができました。
たしかに単価はめっちゃ高いですね…

3. 自分自身も頑張らないといけないなと意識させてくれた。

本当はインフラ提供側も予選と本選の問題をそれぞれ解き合うレビューに参加できるのが一番理想であると感じた。
私がやってもよくて定番所のミドルウェアのチューニングと冗長構成を組んでベンチマークをかける…くらいであろう。(予選も突破できない)(同席してたOさんはもっと踏み込めると思いますが)
ただ今の私にはその技術力はなかった。
もっとエンジニアとして頑張らなければならないと意識することができたのが何よりの収穫でした。

ちなみ合宿内容の詳細は941さんが書いてるのでご参照を!
isucon.net

※Oと私は終わった後、熱海駅から熱海城まで徒歩で行くという修行をしてました…
f:id:lezoid:20181022224146p:plain:w100
どうでもいいけど、熱海ロープウェイまじおすすめ
秘宝館というすげえ建物にたどり着く、次回の運営者さんはぜひ行ってみてほしい 駅からはすげえ遠く感じるけど熱海駅から徒歩でいけることは証明した
なお両名次の日は死んでました。

4.ISUCON8 インフラ的には本選より怖い予選編 (弊社社内待機)

LINE社に出題者側のカヤックさん、DeNAさん、弊社が伺って待機する方針だったが、
我々の気持ち的には”予選が本番”だった。
なんせInstance数が本戦と比べて圧倒的に多いからだ。
そして何かあったときにDiscord経由でのサポートを考え、NWレイヤーからアプリケーションエンジニアを揃えてLINE社にお伺いした。

あまりにも人数が多いので私は弊社本社待機にした。
そしてScoreの高い順でチームソートし、負荷傾向の分析等を行っていた。

f:id:lezoid:20181022222724p:plain
このテンプレート只管社内ISUCONチャットに投稿してたら、Matoba時報と現地メンバーにで呼ばれ始めていた。😇
チーム事の負荷グラフが非常に面白くて、冗長構成にしていたチームが単一構成に戻したり,,,とインフラ側でも試行錯誤が見えていました。
具体的な技術的内容は別ブログで書いてもらうので、ry略

非常に不安だった予選だったが、無事に2日間終えることができた。
これも現地に行っていただいたメンバーがインフラの注視と941さんやDeNAさんカヤックさんとご調整等してくれたからです。
予選LINE社待機メンバーには感謝しきれない。

5. ISUCON8 本選で運営側としてやったこと(LINE社)

弊社は予選の時のメンバー配置がそのまま入れ替わる形で参加させて頂きました。
(緊急時に備え本社に多数エンジニアが待機している状態)

8時15分にミライナタワー前集合。 08:30まで電動ドアが開門しないので注意
弊社、DeNA、カヤックさんで扉越しに警備員さんの前で開場待ちしてましたw

無事入場したら…本選前の準備
参加者用の椅子の配置(LINEさんが参加者の為にできるだけ柔らかい椅子💺交換してくれました!さすがISUCON!)

チームカードの準備など そして開場

ぞくぞくと参加者が入場してくる…うーん謎の緊張感。
もちろん私たちも準備しなければいけない事があるので、運営室にて準備
大型のモニタがあったので、状態確認等捗りました。ありがとうございます。
f:id:lezoid:20181022230332p:plain:w500

#例の時報も作成していたのだが、社内へのリモデがめっちゃ重い。
#あとマウス持ってくればよかった。

お昼ご飯

コーヒーの配置


※気づいていた人はいるのだろうか…?裏側にコーヒーポッドがあと3個ありました。なのでバックアップあります!
ちゃんと並列処理できるように考慮した配置。そう…これがCoffee☕CON
次回は更なる並行処理が行える高速化配置に期待したい。

あと買ったばかりのGoPro7で事あるごとに動画撮影してました。
(本選これなかったメンバーにも雰囲気を感じ取ってほしかったので社内共有用として撮影しました。)

あとはGeneralチャンネルで来た質問にお答えしたり…
.datチームの方救済できなくてすみませんでした🙇ルールなのでお許しを…

あとは弊社本社待機チームと連絡が多めですね。
こちらの状況の随時共有をメインに行っていました。

そして終了時刻まで特にインフラに問題は起きず、本選終了!おつかれさまでした!

6.最後に

最終的には 「問題なく予選・本選含め問題なく終えられた事が、インフラエンジニアとして嬉しい」それに限ります。

もちろん問題なく終えられた理由として
予選問題担当のDeNAさん、本選問題担当のカヤックさんも弊社のインフラ設計に合わせてくれた事も成功した大きな理由です。
この場を使って感謝申し上げます🙇

なお記事冒頭にも書いておりますが、今までISUCON自体にも参加したことがなかった ※重要
言いたいことは予選参加経験が無くても運営側として参加できるということです。(予選参加経験くらいはあった方が本当は良いとは思いますが)
興味があるかたは出題問題の事前答案や問題の言語移植などなど気軽にお手伝いやってみたいです と相談してみたりしても良いかもしれません。 941さんに相談だー!

弊社からも今後いずれ参加して入賞できるようなスキルアップをしていきたいですね。
だが最近私の関わってる案件はPowerShellとC#だらけで、絶対ISUCONの問題には採用されなさそうだ…

# あとちょこっとどこかで話が出てましたが、
# 本選のリアルタイム動画配信案は賛成です。面白そう
# 是非やるならYoutube 360度配信とか尖ったやつで😎
# けど映りたくない人とかもいるだろうし難しいのかなぁ。と思ったり