微服務架構 (通常簡稱為「微服務」) 是一種應用程式開發架構類型。微服務可讓大型應用程式分解為較小的獨立元件,每個元件都有各自負責的範圍。為了服務單一的使用者要求,微服務型應用程式可呼叫許多內部微服務來建構其回應。
容器正是一個完全符合微服務架構條件的例子,如果使用容器,您就能專心開發服務,不必擔心依附元件。無伺服器運算也是常見做法,團隊不必管理伺服器或基礎架構,就能執行微服務,並根據需求自動擴充函式。
瞭解如何使用 Google Kubernetes Engine (GKE) 和 Cloud Run,透過容器建立微服務型應用程式。
準備好了嗎?新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用 Google Cloud 的各項功能。
微服務架構是一種應用程式架構,在這種架構之下,應用程式是以一組服務的形式開發而成。這種架構能讓您獨立開發、部署及維護微服務架構圖和服務。
在微服務架構中,每項微服務都是為了容納某個應用程式功能及處理獨立工作而建構的單一服務。每個微服務都會透過簡單的介面與其他服務通訊,以解決業務問題。
傳統的單體式應用程式是做為單一整合單元建構而成。所有元件為緊耦合,共用資源和資料。這可能會導致應用程式擴充、部署和維護作業出現問題,尤其現在應用程式越來越複雜。相較之下,微服務架構會將應用程式分解成一組獨立的小型服務。每個微服務都是獨立的,各有自己的程式碼、資料和依附元件。這種做法有以下幾項潛在優勢:
如果應用程式尚未龐大或複雜到需要採用完全分散的微服務架構,則「模組化單體」是強大的選項。這種做法會維持單一應用程式部署單元 (單體式應用程式),但會根據業務領域,將應用程式的程式碼集嚴格區分為高內聚、鬆耦合的內部模組。這種做法可讓組織享有微服務的優點 (界線分明、獨立開發),同時避免管理分散式系統的完整負擔。
許多不同產業的組織都採用了微服務架構,以解決特定業務難題並推動創新。以下是一些例子:
微服務通常用於加快應用程式的開發速度。使用 Java 建立的微服務架構很常見,尤其是 Spring Boot 架構。此外,微服務也常被拿來與服務導向架構做比較。這兩種架構的目標一樣都是將單體式應用程式分割為多個小型元件,但兩者採用的方法不同。以下列舉幾個微服務架構範例:
網站遷移
託管於單體式平台上的複雜網站可遷移至雲端型及容器型微服務平台。
媒體內容
在採用微服務架構的情況下,您可以將圖片和影片資產儲存在可擴充的物件儲存系統中,並將這些資產直接提供給網頁應用程式或行動應用程式。
交易和應付憑據
付款處理和訂購可分離成獨立的服務單元,這樣的話如果應付憑據服務無法運作,系統仍會持續接受付款。
資料處理
微服務平台可以為現有的模組化資料處理服務提供雲端支援。
為了管理複雜性並提升分散式系統的效能,現今的架構師會採用數種核心設計模式。
服務網格
事件導向架構 (EDA)