システム設計の面接試験 (Alex Xu)
書籍情報
書籍目次
- はじめに
- 1章 ユーザ数ゼロから数百万人へのスケールアップ
- 単一サーバのセットアップ
- データベース
- 垂直スケーリングと水平スケーリング
- ロードバランサ
- データベースレプリケーション
- キャッシュ
- コンテンツデリバリーネットワーク(CDN)
- ステートレスWEB層
- データセンター
- メッセージキュー
- ログ取得、定量化、自動化
- データベースのスケーリング
- 数百万のユーザーとそれ以上
- 2章 おおまかな見積もり
- 2のべき乗
- プログラマが知っておくべきレイテンシの数値
- 可用性の数値
- 例:TwiterのQPSと必要なストレージの見積もり
- ヒント
- 3章 システム設計の面接試験のフレームワーク
- 4章 レートリミッターの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 5章 コンシステントハッシュの設計
- 6章 キーバリューストアの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- 単一サーバのキーバリューストア
- ステップ4: まとめ
- 7章 分散システムにおけるユニークIDジェネレータの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 8章 URL短縮サービスの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 9章 Webクローラの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 10章 通知システムの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 11章 ニュースフィードシステムの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 12章 チャットシステムの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 13章 検索オートコンプリートシステムの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 14章 YouTubeの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 15章 Googleドライブの設計
- ステップ1: 問題を理解し、設計範囲を明確にする
- ステップ2: 高度な設計を提案し、賛同を得る
- ステップ3: 設計の深堀り
- ステップ4: まとめ
- 16章 学習は続く
- おわりに