為什麼幾乎所有應用都是分散式系統#
- 今日「永遠在線」的應用程式與 API,其可用性(availability)與可靠性(reliability)要求,在幾十年前只有全球少數關鍵任務服務才需要達到。
- 服務可能爆發性、病毒式成長,意味著每個應用都必須能近乎即時地隨使用者需求擴展。
- 在這些限制與要求下,幾乎所有應用——無論是消費性行動 App 還是後端支付系統——都必須是分散式系統。
挑戰與轉機#
- 建構分散式系統相當困難,且常常是一次性的客製解法(one-off bespoke solutions)——這與現代物件導向程式語言出現之前的軟體開發世界驚人地相似。
- 正如物件導向語言曾大幅降低軟體開發的難度,如今容器與容器編排器的興起也在為分散式系統帶來同樣的變革。
如同物件導向程式設計中的「物件」概念,容器化的建構區塊(containerized building blocks)是發展可重用元件與模式的基礎——它們讓建構可靠分散式系統的實務大幅簡化、人人可及。
本章以下各節將簡要回顧走到今日的歷史發展脈絡。