データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

  • オライリージャパン
4.43
  • (27)
  • (11)
  • (4)
  • (2)
  • (0)
本棚登録 : 562
感想 : 16
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (660ページ)
  • / ISBN・EAN: 9784873118703

作品紹介・あらすじ

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • データモデルとデータ構造、それを格納するストレージ、前方/後方互換性を持ったスキーマ定義、レプリケーションとシャーディング、分散トランザクションの問題、一貫性と合意アルゴリズム、バッチ処理とストリーム処理など、大量のトラフィックと大量のデータを扱う現代の分散システムを構成する要素一つ一つに対して詳しい説明を行い、分散システムの本質的な難しさに正面から立ち向かって解説しています。分厚く歯応えのある大著であり、分散システム設計の教科書のような存在です。

  • 分厚い上に内容は抽象的なので、実務経験を積んでいなければ理解することは難しい。その上で、実務で大規模なデータを取り扱うITエンジニアにとっては有用な指針となるだろう。

    スケーラブルで信頼性のあるシステムをどう作れば良いか、という点について絶対の解は存在しない。その上で、どうやって立ち向かっていけば良いかを丁寧に説明してくれる。

    中盤、特に5章のレプリケーションと7章のトランザクションについては理解が曖昧だったり足りなかった部分を説明してくれて非常に良い。コードレビューの際にこういった部分を指摘できるようになれたら開発の安全性に寄与するだろう。

    秀逸なのが9章で合意が取り扱われることで、8章までの内容を理解しなければ合意アルゴリズムの妙を理解できないということが嫌でも分かる構成になっていることだ。

    終盤はRDBやKVSにまつわる問題よりはデータエコシステム全体に関することが説明されるが、モダンなシステムにおいてはやはり考えるべきことであり、学びの多い一冊だった。

  • 素晴らしい本。めちゃくちゃ骨があるが学びがある。
    1ヶ月半くらいかかって読了。
    ソフトウェア開発に携わるエンジニアであれば全員読んだ方がいいと思った。
    特に3章のデータベースエンジンの歴史的な経緯と詳しい実装、7章のトランザクションと発生しうるスキュー、8章のネットワークとクロックの信頼性の低さとそれに対する担保、についての学びが深かった。
    障害が起きてから考えるのではなく、実装の段階からこれらの例外を考慮できると一個レベルが上のエンジニアになれると思う。

    いくつか実装をしながら記事とかにまとめたい。

  • 実務で大規模なシステムの設計や実装をしてる人じゃないと、ついていけない所がいろいろ出てくる。それでも興味がある人は、エンジニアでなくとも読むと面白いと思える内容。
    自分は、すべて理解できた訳ではないので、手元に置いといてまたいつか読み直そうと思う。

  • 学生購入希望で購入した図書(2022年度)
    【所在】図・3F開架
    【請求記号】007.6||KL
    【OPACへのリンク】
    https://opac.lib.tut.ac.jp/opac/volume/463098

  • 読んでよかったと思う。
    例えば、自分たちが仕事で持っている設計で自然と意識していることが、「スキーマオンリード」という発想に基づく、という名前を得られたといったレベルでの発見や、分散システム上でのデータの分散のさせ方、フェンシングトークンのような自分が今まで知らなかった概念の発見など、触れられてよかった。

    もう少し具体としてデータ指向アプリをデザインすることについて語られることを期待していたから、少し抽象度が高いというか、方向性が期待とは異なっていた部分はあるけれど、依然として人に薦められる内容だった。

    一回で全て吸収するのは難しい場合もありそうだから、そういう前提で読んでいく方が良さそう。

  • 資料ID :82000592
    請求記号 : 007.64||T
    配置場所:工枚教員推薦図書
    (※配置場所は、レビュー投稿時のものです。)

    ☆特集展示「ITエンジニア本大賞」☆

  • 今年、部で輪読していた本。
    600Pの分厚い壁をなんとか突破。
    途中冗長な部分もあったが、後半はかなり今風の内容もあり、データ志向のアプリケーションをデザインするにはDBの所作や分散システムを理解しておかねばならないということがわかった

  • 2021年に読んだ技術書の中では一番おもしろかった気がする。タイトルにある分散システムは本書の後半で出てくるが、前半のデータベース基礎論みたいな部分だけでも十分におもしろいし、分散システムを扱わないアプリケーションエンジニアでも有益。実装しながら読むとなお身になりそう。

  • データを分散処理する基盤の設計に関する体系的な知識をまとめたもの。以下のように構成されており、順序立てて理解を深めることができる。
    1. データを取り扱うための基盤となる技術 (データベースやクエリ言語、ストレージやエンコード)
    2. データシステムを複数のマシン上で動作させるやり方 (レプリケーション、パーティショニング、トランザクション)とその問題点
    3. 複数のシステムの統合 (バッチ処理、ストリーミング処理)

    とても秀逸に感じたのが最終章。システムを完全に信用することはできないから、システムが期待通りに動作しない場合に備えて顧客への謝罪の手はずを整えておく、データを取り扱うにあたってエンジニアには高い倫理性が求められる、といった著者の哲学が垣間見える。それまでに章で著者の幅広く深い知識を目の当たりにしているだけに、より深く響いた。

    ちなみに、私の実務経験が足りていないこともあって、イメージできない話題も多く、ちょっとずつ読んで1ヶ月以上かかった。

全16件中 1 - 10件を表示

Martin Kleppmannの作品

  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×