2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
草野翔氏(以下、草野):ISUCON公式サイトで公開された「CTOに聞いてみたインタビュー」でも言っていたのですが、現金を使えないということはISUCONの一番大変なところです。「いったんレバレッジを効かせてから」みたいなことはできないので、わりとつらいものがあります。そういうところも含めて次のテーマに行かせてもらえればと思っているんですが、じゃじゃん!
「パフォーマンスチューニングの原体験」は何でした? みなさんは何年付き合っていますか? とりあえず10年近くはみなさんやっていると思うんですけど。みなさん本を書いちゃうぐらい、もしくは12年間付き合っちゃうぐらい、ISUCONでパフォーマンスチューニングをやっていると思うんですけれど、何がそんなに楽しかったの? 最初に楽しかったのは何? ということを聞いてみたいと思っています。
みなさんのパフォーマンスチューニングの原体験。「これで俺はパフォーマンスチューニングをやる気になったんや!!」という話が聞けたらなと思っています。ということで、逆順に回りましょう。catatsuyさんの原体験は何ですか?
金子達哉氏(以下、金子):僕はISUCONです。僕は最初、新卒は開発で入ったんだけれど、インフラに異動して、インフラ未経験の状態でやり始めたので、こういう経験がありませんでした。ISUCONに出てみたいなと思って、誘ってもらえたので、勉強をし始めたんですよね。
最初は解き方が本当に何もわからない中、いろいろ過去問をやってみて、ISUCON4に出て、それで準優勝をしたような感じだったので。そこが完全に原体験なんですよね。
草野:初手準優勝はやばいな。kazeburoさんはパフォーマンスチューニングの原体験として何があったんですか?
長野雅広氏(以下、長野):最初はやはりお金がないというところです。お金がないから何かしらパフォーマンスチューニングをして、サーバーを軽くしていかないといけないというのが最初です。
草野:「お金がない」というのは会社に?
長野:20年前なので。インターネットがまだまだ初期の頃です。小さい会社にいたので、会社にお金がない、個人にもお金がない、クラウドなんてものもないというところで、1台のサーバーを使い切らないといけなくて、パフォーマンスチューニングをしたのが最初です。
草野:waitaさんは何が原体験ですか?
中西建登氏(以下、中西):そうですね。それこそ私が最初にISUCONに出た時はまだ学生だったので、そういうプロダクショントラフィックとかもなかったので、ISUCONはかなり大きいかなと思います。それこそ、最初に知ったのがアルバイトしていた会社で、その時のCTOは馬場さんだったわけなんですけど。
その会社の先輩がISUCON3の学生枠で本選に出ていて、「こんな大会あるんだ」というところから始まったのが私の原体験です。そこから今はなぜか物理サーバーを触りながらクラウドを提供することにもつながっています。なので、ISUCONの学生枠が個人的な原体験かなという気がします。
草野:じゃあ、そのCTOをしていた馬場さんは何が原体験なんですか?
馬場俊彰氏(以下、馬場):仕事でずっとやってきていたトラブルシューティングですよね。負荷問題で、メディアサイトやメディアサーバーの運用やインフラまわりをやることが多かったので、そのトラブルシューティングとしてチューニングをやっていました。
ISUCONの前にチューニンガソンという似たようなイベントがあって、そこではアプリの中身を触ってはいけないというルールで、インフラのチューニングをしてスコアを出すことをやったりしていました。
その中で、普段やっていることがちゃんとスコアになって競争できるのが楽しかったわけです。そうこうしているうちに、kazeburoさんやtagomorisさんが「アプリに触れないとちょっとまた違うでしょ」とISUCONを始めたと私は認識はしています。
そうするともういよいよ何でもありになってきて。やっぱりできることが多いと楽しくて、それでどんどんハマっていきました。
草野:なるほど。じゃあ組長をトリに置いておいて、自分の先に話します。僕のチューニングの原体験は「ニコニコ動画」です。僕はニコニコ動画プレイヤーを作っていた時期があって。その時の僕の原体験というか、「チューニングする意味があるな」と思った体験で申し訳ないですが。
コメントサーバーでコメントが最大10分で1,000件で、要するにどんなに動画が長くても1,000件のコメントしか受信しないといっていたものが、アニメが始まるから30分になると。30分で1,000件だと薄いから、1分100件にして30分で3,000件。つまり、動画長に対してとりあえず3倍になるような話になりました。取り方も変わって、コメントサーバーが単純に最新のシーケンシャルな感じではなく、1分単位なので、幅々でシーケンシャルな感じになる仕組みになりました。
それをリリースしたら、15秒ぐらいでニコニコ動画が落ちるわけです。負荷に耐えられずコメントサーバーがバンバン落ちていって、どんどん応答不能になると。インフラエンジニアががんばって差し戻して事なきを得るようなことを、3週、4週ぐらいずっとやっていました。
毎週koizukaさん(戀塚昭彦氏)というニコニコ動画のレジェンドなエンジニアが、「今週は2倍速くした」とか、「今週は4倍速くした」とか、「今週は先週に比べて8倍速い」とか言っているわけです。
掛け算なので、倍々にずっと掛け算をしていくと、最初の状態からたぶん300倍ぐらい速くなっていて、300倍速くなると本当に耐えられるようになるんですよね。「300倍速くなるんだ! すごい!」みたいな(笑)。「プログラムで300倍とか普通になるんだ」みたいな話を見ていると、「(300倍にすることで)根本的にレベルが違うことが起こるんだ」みたいな。
同じサーバーで本当に耐えられるし、何だったらサーバーの台数が減るようなことが起こるのを見ると、やっぱり「レジェンドクラスはすごい!」みたいになって。
ちょうどフロントエンド側? ユーザーのパソコンで動くプレイヤーを書いていたのもあって、サーバーサイドでチューニングするというインパクトはメチャクチャ大きいんだと。「かっこいい! いつかやろう」と思いました。
そう思って、その「いつか」が意外とその3年後ぐらいに訪れて(ISUCON 初出場)、メチャクチャにボロ負けをしてすごくツラい思いをして「俺、絶対にISUCON勝ちたいわ」と言ってがんばり始める羽目になって、ISUCONにそのまま人生を吸われているというのが現状です。
なので、ISUCONのおかげでちゃんとチャレンジすることができたんだけれど、ISUCONのおかげで沼から帰ってこれなくなっている感じはあります。
草野:藤原さんの原体験を聞きたいですね。組長がいったいどうやってこんなに強くなったのか。
藤原俊一郎氏(以下、藤原):原体験でいうと2つあります。1つは15年以上前で、当時大学受験情報サイトを仕事でやっていました。その中にセンター試験の解答速報というのがあって。当時のiモードのサイトで(作られていて)、ふだんのトラフィックに比べて、その日だけものすごいピークを(迎えました)。
(一同笑)
土曜日の夜にビョーンッと来るんですよね。それでまんまと落とされました。しかも、そのピークは年に2回しか来ないんですよ。耐えられるようにがんばってチューニングしたとしても、それを次にできるのが結果が出るのが1年後です。
その時に初めてちゃんと複数台構成にして、ロードバランシングしようとか、いろいろ(やりました)。当時はLinuxのLVS(Linux Virtual Server)とか、そういうことをやるしかなかったのが本当に最初です。
あともう1つは、今のカヤックという会社に転職してすぐ(のこと)。「koebu」というサービスがあって、そのサービスのコードの中にすごくやばい地雷みたいなクエリがあって。それを誰かがクリックすると、サイトが落ちるんですよ。
当時はまだデータベースがハードディスクで、ちょっと重いクエリが重なるともう雪ダルマ式に負荷が上がってしまって。そうすると、30分ぐらい返って来ないんですよね。そういうのを転職した直後に見て「スロークエリを見せて」と言ったら「見てもわからないから出していません」と言われて(笑)。しょうがないからスロークエリを出して「これはここにインデックスを貼らないとダメですね」「これはちょっと1回カラムを外に出して正規化をしたらいいんじゃないですか」と言って、入ってすぐにそれを解消しました。
1ヶ月経たない、2週間ぐらいかな? 転職してすぐに、その年のISUCONで勝ちました。その前はすごく小さい会社にいたので、自分の実力がどんなものかもよくわからなかったのですが、意外と通じるなと思ったのが2011年で、ISUCONの初回の年です。
草野:良い話だな。なるほど。ありがとうございます。みんなパフォーマンスチューニングの原体験でけっこうエモい話が出てくるんですね。特にwaitaあたりは学生でISUCONに出て「俺、今かえって来てるわ」みたいな感じのエモい話で。
僕の中にはISUCON優勝者はみんなエモい話を持っている説があって。今までの延べ9,207名の参加者数のうち、優勝経験者は21名だけで、エモいエピソードがあるとISUCONに優勝できるのではという気持ちになります。
みんな練習をいっぱいして「エモいな」みたいな感じになると優勝できる気がしてきました。
草野:パフォーマンスチューニングの原体験はいろいろな人に聞いてみたいです。morisさんの原体験は何だったんだろうと気になります。ISUCONを始める理由。なんで「ISUCONを」となったのか。kazeburoさんは知っていますか?
長野雅広氏(以下、長野):そうですね。当時のライブドアで、主なサービスとしては「livedoor Blog」ですよね。あれに当時も人気のネットブログがいくつかあったので、「落ちないようにがんばろう」みたいなところですね。
草野:941さんが歴史を知っている。なぜISUCONは始まったのか。
941氏(以下、941):こんにちは。長老です。
(一同笑)
941:理由はいろいろあって、まず1つはmorisさんのテンションが上がっていたということです。他のパフォーマンスチューニングのサイトというか、コンテストがあったんですけど、それはPHPに詳しくないとぜんぜん戦えない大会だったらしくて。そうではなくて何でもOKみたいなものがやりたいというのが、沸々とあったらしいということが1つです。
もう1つは、先ほどkazeburoさんがお話されていましたが、いつでも使えるサーバーを準備できていて、それをやる環境が整っていたことが大きいので、その2つの要因かなと思っています。まぁでも、一番大きいのはmorisさんの怒りが発端であると私は認識しています。
草野:怒りか。怒りはやばいな。
馬場:名前を言ってはいけないイベントですね。
(一同笑)
941:はい。あまり。
長野:誰でもやれることじゃないというところですよね。
941:そうですね。
馬場:(その時は)タイミング的に「たまたま100台ぐらいサーバーあるよ」という話でしたよね。
941:そうですね。なので、(サーバーを)3台ずつ配って30チーム(で取り組む)みたいなことが一応。当時は序盤は25チームでしたっけ? そんな感じなはずです。
馬場:新宿の貸し会議室か何かに集まって。
941:予算がなかったから。会社近くで借りました。
草野:「日々いろいろなサービスの性能問題で毎晩障害が出て。いつもやっていたけれど、そのままコンテストにしたかった」というのが、morisさんによる昔の話が混ざった解説らしいですね。
草野:みなさんはまだ夜間に呼び出されているんですか? もうみんなオートヒーリングになった?
中西:(呼び出されないなんて)そんなことはまったくないので。
草野:みなさんのスキルでいい感じに……。
金子:起こる時は起こるので。
中西:集合する時はぜんぜんあります。
草野:僕は、自分がプライベートで抱えるMastodonが、地震が起きるとDBが突き刺さるので、毎回「地震は起きるな」と思っています。地震が来るとみんなインターネットに集中して、インターネットに集合するとSNSが重くなるという。
みんなHTMLテンプレートを書きたくないから、ISUCONの問題はどんどんSPA(Single Page Application)になるんですよね。JSONで返したい、HTMLで返したくないからみんなSPAになる。private-isuで久々に(HTMLで返す問題を見た)。
金子:あれはprivate-isuでテンプレートエンジンを他言語に移植するのが大変すぎて、次は絶対にJSONでしか返したくないとなりました。だからそれ以降の問題はJSONでしか返していないんですよ。
草野:なるほどね。そういう理屈だったのね。
金子:そうですね。しかもあれは初期実装がRubyで、僕が適当に書いたら思いのほか適当で、「これどうやってGoに移植するの? Goに移植するのは僕なんですけど」と。僕が書いたRubyのコードをGoに移植できないってイライラしていました(笑)。
草野:なるほどね。そういう出来事が。ISUCONの作問をするのもなかなか大変ですからね。
(次回に続く)
関連タグ:
ISUCONの達人たちがパフォーマンスチューニングを語る 『達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践』
ISUCONという“戦いの土俵”に立つためのものから珍しい内容まで ISUCON本各章を担当の達人が語る
ISUCONで優勝する方法は? 優勝経験者が語る、チームメンバーと情報共有の重要性
「ベンチマーカーの解像度が高くなると点数はゴリゴリ上がる」 ISUCON経験者が語る、“中毒性”のある動き方
ボトルネックを倒さないと、予選の上位には食い込めない 業務にも活用できる、上位20パーセントに入る方法
ISUCONの始まりは“怒り”がきっかけ 運営実行委員会・941氏が語る、ISUCONの歴史
「使いやすさ」「成果より進捗」「いじりやすいこと」 ISUCONの達人たちが重要視しているパフォーマンス
「『何か1問解いてみる』はメチャクチャおすすめ」 ISUCON本の著者が語る、初心者に向けたアドバイス
ISUCON当日は「ふだんやってないことはやらない」がおすすめ 達人たちが語る、食べ物・飲み物の持参状況
「ISUCONがなかったら、エンジニアとして成長できなかった」 達人たちが語る、実務ではやらない“ISUCONならでは”の技術
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05