見出し画像

【おすすめ本⑤】達人が教えるWebパフォーマンスチューニング ~ISUCONから学ぶ高速化の実践

はじめまして。NRIデジタルの佐藤です。
普段の業務では、お客さまのビジネス要件に整合したアーキテクチャの設計や、プロジェクトマネジメントを担当しています。今回は、「Webサイトの高速化」という、かなり特化した領域のおすすめ本にはなりますが、ご興味ある方の参考となれば幸いです。
(執筆:NRIデジタル DXエンジニアリング1 佐藤 敦郎)


速いWebサイトは好きですか?

「速いWebサイトはお好きですか?」などと質問する機会は日常でほぼ無いとは思いますが、もし聞かれたらほぼ満場一致で「好き」となるとは思います。

ではその「速いWebサイト」はどのようにして生まれているか?というと、裏ではエンジニアたちの涙無しでは語れない努力が隠れていたりします。
なぜならば、大体のWebサイトというものは年月に比例してコンテンツがリッチになっていき、結果重く・遅くなっていくため、常に「高速化(界隈では性能改善とも言います)」を実施していく必要があります。

しかし、この「高速化」という作業、エンジニアからは疎まれることが非常に多いです。

・どこから手を付けたら良いかわからない
・そもそも何で遅くなっているかわからない
・わからないだらけで時間だけが経ち、関係者は怒髪天で胃がキリキリする

のようなことが往々にして起こり、「高速化」を達成するまでにかなりの障壁をクリアする必要があるためです。

ただ、私はこの「高速化」という業務がかなり好きです。
これを同僚の前で言うと奇異な目で見られ苦笑されるため、普段はひっそりと主張していますが、実は世の中には「高速化」を競う大会が存在します。

それは「ISUCON(イスコン)」と呼ばれる大会です。
「Iikanjini Speed Up Contest(いい感じに スピードアップ コンテスト)」を略した大会名で、決められた制限時間・レギュレーションの中で、Webサービスをどれだけ高速化できるかを競う大会です。
「ISUCON」は、既に10回以上開催されており、直近の大会の参加者は1,000人以上、No.1になると賞金も出るという、しっかりとした大会です。

前置きが長くなりましたが、この大会で優秀な成績を収めた方々や作問者の方々によって執筆されたのが、今回ご紹介する書籍、
「達人が教えるWebパフォーマンスチューニング ~ISUCONから学ぶ高速化の実践」
です。

題名の通り、高速化の達人が教えてくれる本で、普通のハンズオン形式の技術書とは毛色が少し異なりますが、Webサービスのパフォーマンスに悩む方には、ぜひ一度読んでいただきたいです。
以下、簡単におすすめポイントを紹介していきます。

【おすすめポイント①】技術TOPレベルの「高速化大好き人」のアドバイスが得られる

先にも書いた通り、「高速化」が得意な人材というのはレアであるため、実際に手を借りたい!となっても近くにはいない、もしくは数時間だけのスポット参戦、ということが良くあります。
また、今いるメンバーだけでどうにかしないといけないとなっても、何から手を付けたら良いかわからない、ということに陥りがちです。

この本は、そのような場合に索引的に使うのが非常にはまります。

・「高速化」の基本である計測(モニタリング)は何をどう測るのがよい?
・現在の高速化限界を測るにはどうしたらよい?
・実際に速度問題が起きている、どうしたらよい?

といったときに、取っ掛かりとなるようなアドバイスをスッと見つけることが出来るのです。
実際に私も何度か助けられたことがあり、非常に重宝しています。

【おすすめポイント②】「高速化大好き人」の思考トレースが出来る

「高速化」を実現していく際のステップとして、まず、現在の速度を計測したのちに、ボトルネックを特定していく形をとることがほとんどです。
その後、「どのボトルネックをどんな順番でどのように確認していくか」がかなりキモになります。仮説を立てて一つずつ可能性を潰していく、という形になるのですが、この仮説立ては、知識と経験がかなり要求されます。

この本には、あるボトルネックに対して可能性が高い箇所から順にどのように確認していくかが記載されているため、知識と経験が少し不足していたとしても仮説検証が実施可能です。困ったときにまず何かしていきたいという時にもかなり助かる内容になっています。

【おすすめポイント③】現実的な解決策が記載されている

正直に言えば、予算とやり方に糸目をつけなければ「高速化」というのはいくらでもやりようがあります。
処理のアーキテクチャを抜本的に変えてしまったり、非常にスペックの高いマシンを導入するようなパワープレイでも解決可能です。ただ、実際は予算に限りがあるため、そのような解決は現実的ではありません。

この本には、高速化についてかなり現実的な方法が記載されているため、現在稼働中のサービスでも受け入れやすいというのも、おすすめ出来るポイントとなります。

【最後に】

かなり趣味に寄ったおすすめ本の記事となってしまいましたが、いかがだったでしょうか?

Webベースのサービスが当たり前となった昨今だからこそ、「高速化」のような縁の下の力持ちの部分にも着目していただけると良いな、と思い記事を執筆しました。
私もまだまだ精進が必要な身ではありますが、ぜひこの本を読んで「高速化」について学んでいただき、少しでも「高速化大好き人」が増えてくれれば嬉しいです。