微服務

微服務  是一種軟體架構風格 ， 它是以專注於單一責任與功能的小型功能區塊 ( Small Building Blocks ) 爲基礎 ， 利用模組化的方式組合出複雜的大型應用程式 ， 各功能區塊使用與語言無關 ( Language - Independent / Language agnostic ） 的API集相互通訊 。 微服務的起源是由 Peter Rodgers 博士於 2005 年度雲端運算博覽會提出的微 Web 服務 （ Micro-Web-Service ） 開始 ， Juval Löwy 則是與他有類似的前導想法 ， 將類別變成細粒服務 （ granular services ） ， 以作爲微軟下一階段的軟體架構 ， 其核心想法是讓服務是由類似 Unix 管道的存取方式使用 ， 而且複雜的服務背後是使用簡單 URI 來開放介面 ， 任何服務 ， 任何細粒都能被開放 （ exposed ） 。 這個設計在 HP 的實驗室被實現 ， 具有改變複雜軟體系統的強大力量 。 2014年 ， Martin Fowler 與 James Lewis 共同提出了微服務的概念 ， 定義了微服務是由以單一應用程式構成的小服務 ， 自己擁有自己的進程與輕量化處理 ， 服務依業務功能設計 ， 以全自動的方式部署 ， 與其他服務使用HTTP API通訊 。 同時服務會使用最小的規模的集中管理 ( 例如 Docker ) 能力 ， 服務可以用不同的程式語言與資料庫等元件實作 。