** 本文同步發表於 FB社群-軟體設計鮮思維 **
所以,微服務的定義是什麼呢?(What is Microservices)
它其實是一種架構設計的風格 (architecture design style) ,並沒有一種很絕對嚴謹的定義,要說較通用的說明,可以參考如下:
「用以描述將系統依據業務能力 (business capability) 分解為多個可獨立 (independent) 被建構 (built)、部署 (deployed) 與延展 (scaled) 的服務 (services)。」
微服務的表現 (represent) 可以參考如圖所繪製的醫療業務領域 (health care business domain),這是可以建構微服務系統的最佳應用。
- 將單個應用程序開發爲一組小服務。
- 每組小服務均有自己的進程 (Process)。
- 每組小服務各自建構、部署與維護。
- 每組小服務可透過輕量化的溝通機制,例如 HTTP based 的 API,與其它小服務互動。
- 這些小服務有最低限度的集中管理,它們可以使用不同的程序語言,並使用不同的資料儲存技術。