服務導向架構 (SOA) 是過度使用術語,對不同的人來說,意義不同。 但作為一個普遍的基礎,SOA 意味著您可以將應用程式分解為多個服務(最常見的是 HTTP 服務),這些服務可歸類為不同類型,例如子系統或層級。
這些服務現在可以部署為 Docker 容器,可解決部署問題,因為所有相依性都包含在容器映射中。 不過,當您需要擴大規模 SOA 應用程式時,如果您要根據單一 Docker 主機進行部署,可能會面臨延展性和可用性的挑戰。 這是 Docker 叢集軟體或協調器可協助您的地方,如稍後的微服務部署方法所述。
Docker 容器對於傳統服務導向架構和更進階的微服務架構都很有用(但並非必要)。
微服務衍生自 SOA,但 SOA 與微服務架構不同。 大型中央代理程式、組織層級的中央協調器,以及企業 服務總線 (ESB) 等功能在SOA中很常見。 但在大部分情況下,這些是微服務社群中的反模式。 事實上,有些人認為「微服務架構是正確的SOA」。
本指南著重於微服務,因為SOA方法比微服務架構中使用的需求和技術更不規範。 如果您知道如何建置微服務型應用程式,也知道如何建置更簡單的服務導向應用程式。