第一章 可靠性,可擴展性,可維護性的應用系統

背景

目前多數的系統,屬於資料密集型 (data-intensive),著重於資料的量級、複雜度、快速變化等狀況延伸的問題。 主要組成為:資料庫、 cache 、 search index 、 steam processing 、 batch processing。 會根據情境來設計出相對合適的架構。

資料系統思維

書中將 Redis 、 Apache Kafka 等非 DB 也歸類在資料系統下的原因為,這些也根據情境提供了類似的功能使用, 不再是以傳統的角度,去分類這些服務。會透過組合這些服務,設計出系統。

三個思路

  • 可靠 p.6
  • 可擴展 p.10
    • twitter tweets 優化
      • user 觀看 feed 時,會先將關注的人的 feed 拉出合併,但在後續量級提昇造成查詢負擔。
      • user 增加一個 cache feed ,當有新 tweet 時,放入到對應的 cache feed。
      • 這邊最後的方式,根據 user 的 關注的人,來做兩種方式混合使用。
    • Amazon SLO 用 P99.9
  • 可維護 p.18