微服務(英語:Microservices)是一種軟件架構風格,它是以專注于單一責任與功能的小型功能區(qū)塊 (Small Building Blocks) 為基礎,利用模塊化的方式組合出復雜的大型應用程序,各功能區(qū)塊使用與語言無關 (Language-Independent/Language agnostic)的API集相互通信。
通過微服務,可將大型應用分解成多個獨立的組件,其中每個組件都有各自的責任領域。在處理一個用戶請求時,基于微服務的應用可能會調用許多內部微服務來共同生成其響應。
微服務的起源是由 Peter Rodgers 博士于 2005 年度云計算博覽會提出的微 Web 服務(Micro-Web-Service)開始,Juval Löwy 則是與他有類似的前導想法,將類別變成細粒服務(granular services),以作為微軟下一階段的軟件架構,其核心想法是讓服務是由類似 Unix 管道的訪問方式使用,而且復雜的服務背后是使用簡單 URI 來開放接口,任何服務,任何細粒都能被開放(exposed)。這個設計在 HP 的實驗室被實現,具有改變復雜軟件系統(tǒng)的強大力量。
2014年,Martin Fowler 與 James Lewis 共同提出了微服務的概念,定義了微服務是由以單一應用程序構成的小服務,自己擁有自己的進程與輕量化處理,服務依業(yè)務功能設計,以全自動的方式部署,與其他服務使用HTTP API通信。同時服務會使用最小的規(guī)模的集中管理 (例如 Docker) 能力,服務可以用不同的編程語言與數據庫等組件實現。