Hateburo: kazeburo hatenablog

SRE / 運用系小姑 / Goを書くPerl Monger

電子書籍版5/30、紙版6/4「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」が発売されます!

共著で執筆しました「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」が発売されます。紙版は6/4日発売、電子書籍版は本日5/30から発売されております。通称 #ISUCON本 です。

ISUCONを例にするWebアプリケーションの主にサーバサイドのチューニングを広く扱うユニークな書籍となっております。ISUCONに参加する方はもちろん、業務でWebアプリケーションの開発運用にあたるエンジニアまで役に立ちそうな内容が盛りだくさんになります。

見本誌が届きましたが、分厚い、そして盛りだくさんな内容となっています。

技術評論社のページ

gihyo.jp

Amazon

ISUCON本 出版記念のイベントも本日やります。お時間あるかた是非どうぞ

isucon.connpass.com

執筆者

著者は、ISUCONの初期から参加者として、あるいは出題者として深く関わってきた豪華メンバーです。

藤原俊一郎さん @fujiwara
2011年より面白法人カヤック。SREチーム所属。ISUCON優勝4回、出題3回

馬場俊彰さん @netmarkjp
株式会社X-Tech 5取締役CTO、株式会社iCARE技術顧問。ISUCON第一回にプロジェクターを持ち込んで参加しSELinux=Enforcingで入賞

中西建登さん @whywaita
株式会社サイバーエージェント所属。ISUCON8にて史上初の学⽣総合優勝

長野雅広 @kazeburo
さくらインターネット株式会社所属。ISUCON1、ISUCON2、ISUCON9予選で問題作成。参加者として優勝も予選落ちも経験

金子達哉さん @catatsuy
株式会社PR TIMES開発本部長CTO。ピクシブ・メルカリを経て現職。ISUCON9予選・ISUCON6本選出題

草野 翔さん @rosylilly
宇宙海賊合同会社代表、株式会社ハンマーキットCTO、株式会社 Tech Consiglie CTO、プロモータル株式会社相談役、IPTech特許業務法人技術顧問。ISUCON9優勝、ISUCON4とISUCON10出題

目次

内容は次のようになっています。チューニングの基礎とモニタリングを最初に扱ったあと、負荷試験を紹介し、データベースやアプリケーションの高速化を扱い、最後にOSなど低いレイヤのチューニングについて書かれています。

また、付録として実際に9章までの知識を使っての private-isu のチューニングの事例、またISUCONのベンチマーカを実装するというなかなか対象読者が限られてしまいそうですが、知ると世界が広がる面白い内容もあります。

1章 チューニングの基礎知識 (@netmarkjp)
2章 モニタリング (@whywaita)
3章 基礎的な負荷試験 (@fujiwara)
4章 シナリオを持った負荷試験 (@fujiwara)
5章 データベースのチューニング (@kazeburo)
6章 リバースプロキシの利用 (@catatsuy)
7章 キャッシュの活用 (@catatsuy)
8章 押さえておきたい高速化手法 (@catatsuy)
9章 OSの基礎知識とチューニング (@whywaita)
付録A private-isuの攻略実践 (@fujiwara)
付録B ベンチマーカーの実装 (@rosylilly)

私の担当は、5章データベースです。データベースで扱う範囲は広く、本書の中で最もページ数の多い章となっています。NoSQL、NewSQLなどデータベースの種類を紹介し、データベースの負荷を知る方法として private-isuを題材にPROCESSLISTやスロークエリログ、pt-query-digestをあげ、そこで見つけた課題をインデックスやN+1を紹介することで解いていける内容となっています。

5-1 データベースの種類と選択
5-2 データベースの負荷を測る
5-3 インデックスでデータベースを速くする
5-4 N+1とは
5-5 データベースとリソースを効率的に利用する
5-6 まとめ

データベースは、ISUCONではありませんが、実際の業務ではクラウドのマネージドサービスを使うことがかなり多くなっているかと思います。執筆時にも悩みポイントではあったのですが、5章では具体的なクラウドの使い方は扱ってなく、ISUCONをベースに書かせていただいています。ISUCONの問題は今でも有用なものが多く、実際のクラウドでのパフォーマンスの問題も解決できるはずです。

本書のねらい

2019年のISUCON9の予選の問題を bokko, catatsuy, sota1235 とやらせていただいたのですが、そこで意識していたのは、着実にスコアがあがる設計をして、参加者の方にISUCONやパフォーマンスチューニングが楽しいと思っていただくということがありました。

この本もやはり、ISUCONやパフォーマンスチューニングの最初の一歩を踏み出せるよう書かせていただきました。プロファイリングを行い、そこから問題点を見つけ、修正する。そしてプロファイリングをしてみると、チューニングの作業は地味にみえるかもしれません。ただ、やれることが増え、目に見える形で結果が改善するとその分楽しくなるはずです。

内容が多く、一度に読むことは難しいかもしれません。1章から付録まで気になるところから行ったり来たり、繰り返し読んだりすることをお勧めします。

謝辞

技術評論社の皆様、共著者の皆様、レビューに協力していただいた皆様、ISUCONを運営しているLINE株式会社の皆様(特に@941さん)、大変ありがとうございました。