パート I. システム設計の基本
完璧さは、加えるものがなくなったときではなく、取り除くものがなくなったときにようやく達成される。
アントワーヌ・ド・サン=テグジュペリ
本書の第1部では、システム設計の基礎を固め、トレードオフから適切なツールや技術、ひいては適切なアーキテクチャパターンを選択する基準まで、あらゆるタイプのソフトウェアシステムを支える基本原則についての洞察を提供する。
第一部では、次のことを学ぶ:
-
大規模分散システム特有のトレードオフを把握し、スケーラビリティ、信頼性、保守性といった相反する要求のバランスをとる方法を知る。
-
ファイルストア、ブロックストア、オブジェクトストア、リレーショナルデータベース、非リレーショナルデータベース、およびそれらのスケーリングメソッドなど、データストアのオプションについて明確に理解する。
-
キャッシュとコンテンツ・デリバリー・ネットワーク(CDN)を通じて、ストレージとコンピュートで低遅延と高スループットを実現するテクニックをマスターする。
-
ロードバランサ、APIゲートウェイ、リバースプロキシを使ってシステムを水平スケールする方法を学ぶ
-
Open Systems Interconnection (OSI)モデルやTCP/IPモデルのさまざまなレイヤーにおける通信プロトコルやネットワークプロトコルの選択肢をナビゲートし、いつ何を使うべきかを選択する方法を知る。
-
業界で一般的に使用されているシステム設計アーキテクチャパターンに精通し、様々なシステム要件に適合させる方法を学ぶ。
-
異なるシステム設計パラダイムにマッピングされるAWSサービスについての洞察を得る。
第1章では、大規模分散システムにおけるトレードオフの世界を掘り下げる。信頼性、スケーラビリティ、保守性といった重要な概念を探求し、なぜトレードオフが生じるのかに光を当てる。分散コンピューティングの誤謬を通して一般的な誤解に取り組み、スペース対時間、遅延対スループット、パフォーマンス対スケーラビリティ、一貫性対可用性といった極めて重要な選択を取り上げる。また、長年のシステム設計の知恵から生まれた実践的なガイドラインと戦略を提示し、システムのパフォーマンスと効率を高める具体的なアプローチを提供する。
第2章では、ファイルストア、ブロックストア、オブジェクトストアなど、さまざまなタイプのデータストアを紹介する。この章では、リレーショナルデータベースとその概念、アーキテクチャを取り上げる。パーティショニング、インデックス作成、レプリケーション、フェデレーション、シャーディング、非正規化などのテクニックを含め、リレーショナルデータベースのスケーリングと最適化の複雑さについて理解を深める。
第3章では、キーバリューデータベース、ワイドカラムデータベース、ドキュメントデータベース、グラフデータベースなどの非リレーショナルデータベースのアーキテクチャを公開し、リーダーレスアーキテクチャがクォーラムベースのレプリケーション、一貫性のあるハッシュ、最終的な一貫性などのメカニズムを通じて、どのようにスケーラビリティを実現するかについて議論する。
第4章ではキャッシュを紹介し、クライアント、サーバからアプリケーション、データベースレベルまで、さまざまな階層にまたがる多様なキャッシュ戦略を探る。ライトスルー、リードスルー、リフレッシュ・アヘッド、ライトバック、キャッシュ・サイドといったコアなキャッシング・アプローチを解剖する。さらに、遅延を削減し、コンテンツデリバリーの効率を向上させるプッシュ型CDNとプル型CDNの両方の可能性を解明する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access