「Web開発者のための大規模サービス技術入門」読書感想
タイトル
Web開発者のための大規模サービス技術入門 データ構造、メモリ、OS、DB、サーバ/インフラ
著者
購入のきっかけ
少し前に「Web配信の技術―HTTPキャッシュ・リバースプロキシ・CDNを活用する」を読み、キャッシュやメモリを考慮した大規模インフラについて興味が出たので、この本を購入しました。
大規模サービス系の本はほとんどなく、10年前の本なのでどうかな〜と思いましたが、設計思想や心構えは今でも通用しそうなものでした。
前提
- 大規模サービスの開発経験はない
- AWSのインフラ設計構築の経験あり
- 読んだことのある技術書
- インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門
- インフラデザインパターン ── 安定稼動に導く127の設計方式
- Amazon Web Services 基礎からのネットワーク&サーバー構築
読んでほしい層
- 大規模サービスのインフラ設計に興味があるエンジニア
- 大規模サービスのアプリケーション開発に興味があるエンジニア
感想
約10年前の技術書ですが、サービスの成長を見据えた設計開発を学習できる良書だと思いました。インフラ構成はオンプレ中心の話ですが、クラウド主流の今でも全然通用します。
第2回〜第5回は大規模サービスのデータ処理についてです。
サーバーの負荷やスケーラビリティ、キャッシュ、CPUの記載が中心で低レイヤーのように感じました。DBのI/O負荷軽減の経緯や対応は、理論と実践と失敗と成功を踏まえたものですので、勉強になりました。
第6回〜第10回はアプリケーション寄りの話になります。
アルゴリズムでデータをどう処理していくのかが記載されています。ちょっとレベルが高いのでもう少し読み込みます。アルゴリズムを理解していることを前提に「ここ◯◯って方法で実装できるね」って会話をしているそうですが、、、私はまだそのレベルではないので、精進しないとと考えています。
第11回〜第15回はインフラ寄りの話になります。
冗長性やスケーラビリティ、ハード面を理想と現実を踏まえながらの対応が記載されています。高性能のメモリを購入できたら良いけど高いよね〜って話が現実味があって面白いです。
昨今はクラウドで性能はすぐに調整できますが、必ずオンプレでというプロジェクトもあるので、インフラ寄りのエンジニアは読んでおくのが良いかもしれないです。
私自身、大規模サービスのプロジェクトに携わったことがないですが、この本を読んで開発初期からサービスが大きくなることを想定した設計実装が大事だなと思わせてくれました。
これオススメです。
Discussion