・“負荷”という仕組みを体系的に理解できる良書
書籍やWEBで技術解説を読んでも、分かったようで分からないという経験はよくありませんか?
読んでいる時は自分なりに解釈しながら理解したつもりでも、今度はそれを他人へ説明しようとすると出来ないことがあります。
その理由は、ある技術にフォーカスした断片的な解説をした書籍/WEBだからではないでしょうか。
本書は読者にそんな思いをさせません。読むだけでこれほど技術UPさせてくれた書籍とは久しぶりに出会いました。
もともとこの本を買った目的は、有名サイトのシステムで導入されている分散/冗長技術を構成図や具体的な設定例が紹介されているという理由でしたが、それ以外にも、負荷の正体やカーネルの役割など、断片的に分かったつもりでいた知識を、体系的なものに基礎固めしてくれました。
この本を読んだ後、当時モヤモヤして読んだ書籍やWEBの技術解説を読み返してみたところ、スッキリ理解できました。というより、それら書籍/WEBの解説が中途半端で読者のことを考えずに執筆していることに不満を感じたほどです。
・現場の著者が執筆
24時間365日止まらないサーバー技術が知りたくて購入。
現場での実務経験ある著者による解説で大方のことがわかりました。
・ネットワークを気にしたことのないサーバエンジニアに捧ぐ
大多数のサーバエンジニアって生き物は、ネットワークエンジニアの目から見ると、驚くほどネットワークに無頓着です。「ping通るからネットワークは大丈夫なんでしょ?RTTのジッターって何ですか?」とか言っちゃいます。
大半のアプリケーションプログラマって生き物は、カーネルエンジニアやライブラリ設計者の目から見ると、驚くほどOSやハードウェアに興味がありません。「なんかmmap(2)ってのもあったんですけど、引数が多くて意味がわからなかったので、データは全部一度メモリに読み込んでから処理するようにしました。データは大きいけどmalloc(3)使ったので大丈夫です」とか言っちゃう若者は実在します。
ええ、確かに、階層化アーキテクチャのいいところはカプセル化ですよ。上位のエンティティは下位の実装の詳細は気にせず、インターフェースだけ見ればいいとされてますよ。
下位のスタックやライブラリを実装したのが全知全能の神で、どんな無頓着なリクエストもノーバグで期待通りに神パフォーマンスで処理してくれるってんならそれでもいいかも知れません。
でも、TCP/IPやUNIXやWindowsの仕様を書いたのも実装したのも、ただの人間。必ず限界が存在しますし、使い方が悪けりゃ性能も出ません。工夫がいるんです。
この本は、インターネット上でサービスを提供するシステムについて、「現場では何が問題になりやすいのか」を明らかにし、性能や信頼性を出すためのコツと、そのコツを理解するために必要な技術的理由を説明してくれています。
しかし、手取り足取り手順を書いてるような本ではありません。
この本は、読んで、ググって、手足を動かして、頭を使って、はじめて身になるという種類の本です。
いうなればスポーツの教本みたいなもんです。読むだけではできるようにならない。できるようになってきて、初めて書いてあることが理解できるようになる。
じゃそういう本は役に立たないかっていうとそうじゃない。同じ練習量なら、読んだやつのほうが確実にうまくなるんです。
甘やかしてくれる本じゃありませんが、取り組んだら、必ず力になるんじゃないですかね。
ご同輩に:若手にOJTがてら読ませるのがお勧めです。ご自身にも「へ〜」があることと思います。
若手に:「よく嫁」「ググレカス」「ヴォゲ」と言われることを恐れずに先輩に聞き倒せ!
・現場の知恵が豊富
実際に構築運用経験のある方が執筆されていることから、地に足のついたわかりやすい内容が豊富です。特に、システムの負荷をLinuxのカーネルの動きと関連させて解説する章はとても面白く読めました。sarなど普段使用するコマンドの見方が変わりました。他にも有益な情報が多く、漫然とWeb検索をしていた場合では容易に入手できない水準のもので、ためになりました。
・これからって人向けの本
これからサーバ/インフラを勉強していこうという人向けの本。一通りサーバの立ち上げから運用管理の方法まで網羅している入門書です。ちょっと期待していた内容よりも優しかったので辛めの評価ですが、これから勉強していく人には、ちょうどいい内容だと思います。