
基礎設施架構
📘 深度概覽
資料來源與整理脈絡#
本筆記整合自十個左右的技術專欄,涵蓋《透視 HTTP 協定》《趣談網路協定》《MySQL 實戰 45 講》《從零開始學架構》《郭東白的架構課》、三本微服務專欄、《持續交付 36 講》《Docker 實戰》等,加上 Kubernetes、Observability、儲存架構(電商實戰)等獨立主題。切入角度刻意避開「工具速查」,以「為什麼這樣設計」與「真實場景下如何取捨」為主軸,把分散在各書的概念縱向串成跨層級的知識網。相較於官方文件聚焦 API、面試題集聚焦記憶點,本倉庫補上的是長文專欄與場景化推演之間缺失的中間層。
完整摘要#
全書共十一個頂層模組、170 篇章節,依「從底層往上、從單機往分散式」的順序鋪陳。計算機網路(01) 從物理層 / 資料鏈結層一路推到 HTTP/HTTPS、DNS、CDN、雲網路與容器網路 Flannel/Calico;資料庫核心(02) 以 MySQL 一條 SQL 的完整執行流程為骨架,涵蓋連接器、解析器、最佳化器、執行器、B+ 樹索引、MVCC、redo/undo/binlog 三大日誌、主從複製與 Redis 跳表/壓縮列表。架構設計(03) 引入 4R 模型(Rank/Role/Relation/Rule)與「合適、簡單、演化」三原則,搭配高效能、高可用、可擴展、複雜度管理四大面向。微服務(04) 從拆分時機、有界上下文(Bounded Context)、服務通訊、註冊發現、API Gateway、組態中心、五大容錯模式、OAuth2 四種流程到限流演算法,幾乎涵蓋一個完整微服務平台。DevOps(05) 拉開 CI/CD 全景:分支策略、IaC、灰度發布、監控回滾、GitHub Actions 與 GitLab CI 實作。分散式系統(06) 補上 CAP/BASE 理論基礎、彈性設計與 Design for Failure 心法。Kubernetes(08)、可觀測性(09)、容器底層(10) 三章串起雲原生(Cloud Native)的編排、訊號(Logs/Metrics/Traces)與內核機制(Namespaces、cgroups、Union FS)。儲存系統架構(11) 以電商從零到 100 億訂單為案例,貫穿訂單冪等、分散式事務(2PC/TCC/Saga/Outbox)、不停機換庫、NewSQL 與 LSM-Tree。各章透過交叉連結互相引用,例如可觀測性連回 DevOps 的監控章、儲存架構連回 MySQL 章節,形成可雙向跳轉的網狀結構。
適用情境與閱讀路徑#
主要讀者是具備基本後端開發經驗、正要把職涯推進到「能設計系統」的工程師,以及準備系統設計面試、SRE / DevOps 轉型、或微服務化專案啟動前需要全景圖的人。建議路徑:新進後端工程師依 01 → 02 → 03 順序打底;微服務專案聚焦 04 → 06 → 08;DevOps / SRE 以 05 → 09 為主幹,回頭補 10 的容器內核;資料層深化則走 02 → 11 → 06。讀完應能在面對「為什麼用這個技術」「換成另一種會怎樣」「故障時哪裡會先壞」等問題時,有結構化的答題骨架,而非零散的關鍵字。
知識架構總覽#
| 模組 | 說明 | 章節數 |
|---|---|---|
| 計算機網路 | 從實體層到應用層,包含 HTTPS、DNS、CDN | 8 |
| 資料庫 | MySQL 架構、索引、事務、效能、Redis 快取 | 7 |
| 架構設計 | 高效能、高可用、可擴展、複雜度管理 | 6 |
| 微服務 | 拆分、通訊、發現、閘道、治理、案例研究 | 10 |
| DevOps | CI/CD、版本控制、流水線、發布、GitHub/GitLab | 11 |
| 分散式系統 | 一致性、容錯、效能、架構模式 | 4 |
| 系統設計 | 搜尋引擎、短網址等典型系統題型 | 2 |
閱讀建議#
- 新進後端工程師:依序閱讀網路 → 資料庫 → 架構設計,建立基礎
- 微服務 / 分散式專案:聚焦 04-microservices、06-distributed-systems
- DevOps / SRE:05-devops 是核心
- 面試系統設計題:07-system-design 與 04-microservices/10-case-studies
關聯倉庫#
- 程式語言層的並行與 IO →
java-mastery↗、programming-languages↗ - 工程實踐(Clean Code、測試、Git)→
software-engineering-practice↗ - 推薦系統的架構章節可對照閱讀 →
recommendation-system↗