「プログラムはなぜ動くのか」「ネットワークははなぜつながるのか」「コンピュータはなぜ動くのか」と同じシリーズで、システムエンジニア、プログラマの初級者のための読み物です。
コンピュータ関係のたいていの入門書は、言語の文法の解説であったり、ミドルウェアの機能や設定の解説であったりすることが多いです。コーディングをしたり、ミドルウェアのセットアップをしたりするだけであればそれで十分なのですが、「どう作ったらよいのか」というアーキテクチャを考えるスキルは身につきません。個人的には、いろいろ経験するしかないかな、と思っていました。すなわち、若い頃から、詳細設計ーコーディング、アプリケーション運用、システム基盤の運用を経験することで、作りやすい設計、保守しやすい設計、安全・安定したシステム基盤はそれぞれどういうものかがその人なりに身につく、というものです。
ですが、これではあまりに効率が悪いのと、こういった育成を考えてくれる上司のもとでないといろいろ経験することができません。組織としても、人を育てるというミッションと、プロジェクトを成功させるというミッションとがあるので、単にやってみたいから、では経験させてもらえません。
前置きが長くなりましたが、この本、「システムはなぜダウンするのか ー 知っておきたいシステム障害、信頼性の基礎知識」は、運がよくなければ経験できないシステムトラブルを書籍で再現して、追体験できるように構成されています。トラブルを経験するのが「運がよい」のかは別にしてw、トラブルの経験が人を育てるのもまた事実だと思います。設計した内容を上席や有識者のレビューにかけることがあるのですが、経験されているかたからはもっともな指摘をいただきます。失敗の経験、成功の経験が、アーキテクチャを評価する材料となるのでしょう。
一通り目を通していて、あー、あるある!といった、私も経験のあるトラブルも紹介されています。トラブル対応やリスク対策はコストとパフォーマンス、納期などの制約のバランス感覚が求められるので、本で追体験しただけで十分とは思いませんが、きっかけとしては良いと思います。入門書としては取り上げられている対象が大規模な案件が多いようにも見えますが、お話として知っておくのはいいのでは。