WebOperations
献本頂きました。 O'Reilly Japan 様、 @kdmsnr さん、 @hmsk さん、ありがとうございます!
本書はタイトルにある通り、ウェブの運用に関わる本なんですが、僕が敬愛する John Allspaw 氏と、Chef で有名な Opscode の CEO、Jesse Robbins 氏の監修による、17 + 1 本のエッセイ集で、監修の両氏以外にも様々な方によって書かれています。(+1 は日本語版のみに収録されている、@hmsk さんによるクックパッドのインフラの話です。)
目次は以下の通りとなっています。
- 1章 ウェブオペレーション:キャリア
- 2章 Picnikにおけるクラウドコンピューティングの利用とその教訓
- 3章 インフラとアプリケーションのメトリクス
- 4章 継続的デプロイ
- 5章 コードとしてのインフラ
- 6章 監視
- 7章 いかにして複雑なシステムは失敗するか
- 8章 コミュニティ管理とウェブオペレーション
- 9章 予期しないトラフィック急増への対応
- 10章 開発と運用の協力と連携
- 11章 訪問者の気持ち:ユーザ対面メトリクス
- 12章 ウェブにおけるリレーショナルデータベースの戦略と戦術
- 13章 障害を活用する:ふりかえりの技芸と科学
- 14章 ストレージ
- 15章 非リレーショナルデータベース
- 16章 アジャイルインフラストラクチャ
- 17章 夜中に聞こえる奇妙な物音(と、ぐっすり眠る方法)
- 18章 日本の料理のインフラ
このように、運用や監視の話、運用者のキャリアに関する話、クラウドに関する話、DevOps に関する話、リレーショナルや非リレーショナルなデータベースの話、ストレージの話、障害対応に関する話、などなど、ウェブの運用に関して多岐にわたった話が掲載されています。
どの話もとても興味深いのですが、特に興味深かったのは、「2章 Picnikにおけるクラウドコンピューティングの利用とその教訓」と「12章 ウェブにおけるリレーショナルデータベースの戦略と戦術」です。
ペパボでは写真サービス 30days Album を提供していて、一時的な高負荷に対応するために、クラウドをいかに活用するかを模索しているところなので、同じ写真サービスである Picnik におけるクラウドの活用に関する話は、とても参考になります。(といってもサービスの性質が違うため、そのまま真似できるわけではありませんが。)
また、12章は、実践ハイパフォーマンスMySQL 第2版の著者の1人である、Baron Schwartz 氏によるもので、最適なデータベースアーキテクチャを選択するためにはどうすれば良いか、ということについて書いてるんですが、「GUID を(主キーに)使うのは、データベースが何であれ、最悪だ!」とか、「みんな平気な顔をしているようだが、もっとシャーディングを怖がるべきだ」「シャーディングはウェブアプリケーションに適したアーキテクチャではない」「まともなハードウェアを購入せずに大量の安いマシンでシャーディングアーキテクチャを構築し、スケーラビリティを確保しようとするのは、私に言わせれば、単なるバカだ」とか、「このプロダクトが、MySQL Cluster と呼ばれているのは残念」とか、小気味よい調子で良いアーキテクチャを選択するための指針を示してくれています。
詳しくはぜひお手元にとって読んでみて下さい。ひとつひとつの章が独立した話でそれほど長くないので、好きなところからさくっと読めるのがいいですね。自分は英語版は一通り読んだので、日本語版ではまずは 18章 のクックパッドさんの話から読んでみようと思います。