2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
草野翔氏(以下、草野):ここからはTwitterでみなさんに書いてもらった質問などに答えていきたいなと思っているので、いったんフリーテーマでいろんな話をしていきます。みなさん何か気になったやつありました? 「これの話をしたい」みたいなやつはありましたか? ないなら僕が拾います。
中西建登氏(以下、中西):どうぞ。
草野:拾います。「ISUCONを解く時に、自分がそのアプリをゼロベースだったらどう作るかと考えることがあるなぁ」という話があります。みなさんゼロベースでISUCONを解いて「この問題を作り直したい」とか、「この問題を根本的にやめたい」みたいなことはけっこうあるかという質問をしたいんですが、どうですか?
ISUCON本で触れなかったすごい大事な点として、要件を変えるというのがあると思います。
(一同笑)
草野:「そもそもページャーを出すのやめよう」みたいな。「続きを見る以外のページングをやめよう」みたいなこともあると思うのですが、みなさんどうですか? 「開発要件を変えたいな」ということはあったりしないんですか?
藤原俊一郎氏(以下、藤原):常にそれはあるでしょう。
金子達哉氏(以下、金子):実際にはメチャクチャありますよね。
藤原:実際の業務だと、要件をいじってゼロにできるんだったらそれに越したことはないので、コードを直すよりそちらを第1に考えます。
草野:そういう時に出がちなものはあるんですか? この要件を書いて入れるとキツくなりがちな要件。
金子:ページャーとかはあるあるじゃないですか?
草野:ページャーはあるあるだよね。あとはなんだ。
金子:ページャーで真面目に出そうとするとそこで詰まっちゃったりするので、「バカページャー」と僕は呼んでいました(笑)。あえて手抜きの実装のページャーを出すという。
草野:バカページャーはどう作るの? 何をしないの? 「次へ」があるだけ?
金子:あまり覚えていない。次のページがあると書いてあるのに、実は次のコンテンツはなかったりとか。
(一同笑)
金子:そのあたりのページ数とかが微妙に合っていなかったりとか、チェックがけっこう適当みたいなものはあるある。
草野:なるほどね。根本的にやめたいことで「gRPCをやめたい」。gRPCをやめたい人がいるのか。おもしろいな。馬場さんの章に書いてあるんですか?
馬場俊彰氏(以下、馬場):「もうその項目を画面に表示するのをやめたらいいんじゃない?」とか。
(一同笑)
馬場:「ここで『いいね』の数を出さなければいいだけじゃん」とか、「コメント数とかいらないでしょう」ということがやっぱりあるじゃないですか。そういうのを削るだけで圧倒的に有利になることもあるので、実務ではそれを(要件を変えることを考えましょう)ということは書いてありますね。
藤原俊一郎氏(以下、藤原):ISUCONでいうと、昔『クッキークリッカー』的なゲームが本選のお題に出た時があって、その時にものすごく厳密にCookieの数を数えるので、BIGINTの計算が厳密じゃなきゃいけないんだけれど、下のほうの桁はもはや画面に出ていないんですよ。指数表記になっていて、それを指数表記で計算するのでもベンチマーカーに怒られるんですよ。
「こんなん指数表記でいいやん」って思ったこともありますね(笑)。「浮動小数点で計算してもいいんじゃない?」みたいなことは思ったことがあります。
草野:なるほどな。最近やりたくないこと。なんだろう。SPAになってきたから人の名前は表示したくないのはマジでありますね。ログインしているか・していないかだけにしたい。
金子:それはCDN(Content Delivery Network)でキャッシュしたいとかじゃないですかね。
草野:そうそう。どんどんCDNでキャッシュできるパーツをとにかく増やしたい気持ちになる。とにかく特定の人にだけ見られる投稿をやめたい。パブリックかそうじゃないか、どちらかにしたい気持ちが僕はすごくありました。
金子:それはアプリケーションの重要な要件だったりするので。
草野:そうなんだよね。
馬場:本当に重要なやつはいいですけどね。「どちらでもいいんじゃない」という場合もあるので。Twitterに(コメントが)ありますけど、「全部で何件ですということを、1の位まで必要か?」というのはありますね。
草野:1の位まではいらない気はしますけどね。「『いいね』の件数とか、過去にツイートした件数とかいらなくない? あれいる?」と日々思います。
草野:他に「初心者向けのアドバイスを何か1つでもいいのでお願いします」というコメントが来ています。初心者向けのアドバイスをみなさんお好きな順番でどうぞ。
金子:それこそISUCON本を読んで、private-isuを解いてみてほしいです。
藤原:private-isuはいいですね。
金子:private-isuは初心者向けにしてあるので。
馬場:あとは事前講習。
草野:事前講習をやっています。ハンズオンに参加してね。
金子:そういう人は座学だけ聞いても、ハンズオンまで参加しないと「なんかよくわかんなかったな」で終わりそうなので、意味はないんじゃないかなと思っています。
草野:座学で一応役立つようには書いているけど、なんでわからないかわからない状態はやはりキツイので、何か1問解いてみるのは事前講習でもメチャクチャおすすめしています。とりあえず何か1問。
藤原:やはりコードをGitHubなり何なりでちゃんと管理をして、変えてプッシュして、デプロイして再起動して、ベンチをかけてスコアが出るような流れを回せないと、まず何もできないので、それだけはできるようになってから参加したほうがいいと思います。
まず「SSH(Secure Shell)って何ですか?」と聞いているとたぶん時間の無駄。当日の時間がもったいないだけなので、そういう素振りはやってから参加するのは最低限してほしいかなとは思います。
中西:先ほどの話にもありましたが、実際に手を動かしてみるのにプラスして、最初にやることは決まっていると言いつつ、「過去にこれを最初にやっていい感じにスコアが上がったから、今回のこの問題に適用できる」と思って突っ込んでみると、「そんなことはぜんぜんありませんでした」ということはわりとよくある話だと思います。
そういったスッと手を動かせるような武器というか、ツールキットみたいなものを何個か持って、「どうやってそのツールキットの一つひとつを適用するんだろう」ということを無意識にというか、スッと手が動くようになると、ファーストステップが踏みやすいのかなという感じはします。
馬場:それはdstatとかpt-query-digestとかそのあたりの(ツール)ですか。
中西:そうですね。そういったツール類もそうだし、「ここが詰まっていそうだな」というものがスッとわかってスッと直せるみたいな。まぁそんな簡単に直るものは少ないんですが(笑)。
(一同笑)
藤原:スッとわかったら苦労はいらない。
馬場:だからこの本の付録Aがすごくいいんですよね。自分で考えながらやりつつ、「藤原さんは同じ情報から何を拾っているのか」という目の付けどころみたいなのを、見ながらわかるようになっています。
金子:ISUCONを解いて、「なんかやろうとしたけどちょっとわからなかった」みたいな人は、たぶん付録Aから読んだほうがいいんじゃないかなと、僕は個人的に思っています。付録Aから読むと、「こういう知識がないと進めないんだ」ということが最初からわかります。
付録Aに、「この仕様についてはこの章に書いてありますよ」と全部書いてあるので、「そうしたらこの章を読んでみよう」みたいになると思うんですよね。だからやってみたい人は付録Aから読むと意外といいかなと思っています。
藤原:ISUCONの競技の雰囲気がよくわからないみたいな人はそうですね。そうすると流れがなんとなくわかると思うので。
草野:なるほどね。初心者向けのおすすめ情報は他にはありますか?
金子:ここ数年のISUCONの過去問は、初心者には特につらい問題が多くなってきているので、けっこう初心者寄りにしているという点で、private-isuに価値があるのかなと思っています。あれを1回ざっくり全部解いてから行けば、ここ数年の過去問もある程度解けるようになっているんじゃないかなと思っています。
草野:ありがとうございます。
藤原:private-isuはおすすめですよ。
草野:僕は事前講習で死ぬほど初心者向けの話をするので「そっちも聞いてね」と思いつつ、一応別の話をしておいてかつ本も読んでねと思いつつ話をすると、これは学生向けの話ですが、なんと(ISUCONは)現代では使われていないSSHなるものを使って開発をさせることが多くて。
Dockerという流行りのやつやコンテナという未知のものがなくて、おじさんな感じのSSHが使われたりするので、意外とそのあたりのノウハウがない。
プロダクションが「SSHは別に使わなくていいよ」という感じの世界なので、SSHのリファレンスをなんとなくやっておくとか、ポートフォワードの根本的な入り方みたいなものは練習しておくといいです。VS Codeリモートでメチャクチャ豪華になっているんだけれど、VS Codeリモートを入れたら落ちる程度のスペックのサーバーしか配布されないことがあるので。
(一同笑)
中西:ありますね。
草野:ISUCON10だよね?
金子:ISUCON10のVS Codeはしょうがないですよね。あれはリモートサーバー上ですごく計算をしてsyntax highlightとかを表示しているっぽいので、どうしようもない
草野:絶対重いので。VS Codeリモートを使ったがために予選のサーバーが返ってこなくなることがあったので、豪華な開発環境がぜんぜん使えないみたいな。「今時こんなメモリ数でサーバーやらないよ」というレベルのやつが出てきたりします。
藤原:個人的にそれは嫌なんですよね。「普通にできるようにしたい」という気持ちはありますよね。メモリ1ギガとか「今時ないやろ」という感じですよね。
草野:でも単純に物理的なコストの問題が壁として迫っているので、つらいものがあるんです。わりとオールドスタイルな開発の手法にちょびっと慣れないといけないので、素振りはやっておくとだいぶ違います。そういう意味でも、素振りをしておくとだいぶ違う。1問でもいいからやっていくのは、けっこうおすすめの話です。
(次回に続く)
関連タグ:
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