什麼是微服務架構?

微服務架構 (通常簡稱為「微服務」) 是一種應用程式開發架構類型。微服務可讓大型應用程式分解為較小的獨立元件,每個元件都有各自負責的範圍。為了服務單一的使用者要求,微服務型應用程式可呼叫許多內部微服務來建構其回應。

容器正是一個完全符合微服務架構條件的例子,如果使用容器,您就能專心開發服務,不必擔心依附元件。無伺服器運算也是常見做法,團隊不必管理伺服器或基礎架構,就能執行微服務,並根據需求自動擴充函式。

瞭解如何使用 Google Kubernetes Engine (GKE)Cloud Run,透過容器建立微服務型應用程式。

準備好了嗎?新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用 Google Cloud 的各項功能。

進一步瞭解微服務架構
進一步瞭解微服務架構

微服務架構的定義

微服務架構是一種應用程式架構,在這種架構之下,應用程式是以一組服務的形式開發而成。這種架構能讓您獨立開發、部署及維護微服務架構圖和服務。

在微服務架構中,每項微服務都是為了容納某個應用程式功能及處理獨立工作而建構的單一服務。每個微服務都會透過簡單的介面與其他服務通訊,以解決業務問題。

單體架構與微服務架構

傳統的單體式應用程式是做為單一整合單元建構而成。所有元件為緊耦合,共用資源和資料。這可能會導致應用程式擴充、部署和維護作業出現問題,尤其現在應用程式越來越複雜。相較之下,微服務架構會將應用程式分解成一組獨立的小型服務。每個微服務都是獨立的,各有自己的程式碼、資料和依附元件。這種做法有以下幾項潛在優勢:

  • 擴充性更高:可視個別微服務的需求獨立調度資源
  • 靈活性更好:微服務可獨立開發、部署及更新,因此可加快發布週期
  • 韌性更佳:如果某個微服務發生故障,不一定會影響整個應用程式
  • 技術多元:微服務的靈活性讓團隊能為每項服務使用最合適的技術

如果應用程式尚未龐大或複雜到需要採用完全分散的微服務架構,則「模組化單體」是強大的選項。這種做法會維持單一應用程式部署單元 (單體式應用程式),但會根據業務領域,將應用程式的程式碼集嚴格區分為高內聚、鬆耦合的內部模組。這種做法可讓組織享有微服務的優點 (界線分明、獨立開發),同時避免管理分散式系統的完整負擔。

產業範例

許多不同產業的組織都採用了微服務架構,以解決特定業務難題並推動創新。以下是一些例子:

  • 電子商務:許多電子商務平台會使用微服務來管理營運的各個面向,例如產品目錄、購物車、訂單處理程序和客戶帳戶。這有助於他們根據需求調整個別服務規模、提供個人化客戶體驗,以及快速部署新功能。
  • 串流服務:串流服務通常會使用微服務來處理影片編碼、內容傳遞、使用者驗證和推薦引擎等工作。這讓他們能同時為數百萬名使用者提供高品質的串流體驗。
  • 金融服務:金融機構使用微服務來管理業務的各個層面,例如偵測詐欺、處理付款和管理風險。因此能迅速因應市場變化、提升安全性,並遵守法規要求。

微服務架構的用途有哪些?

微服務通常用於加快應用程式的開發速度。使用 Java 建立的微服務架構很常見,尤其是 Spring Boot 架構。此外,微服務也常被拿來與服務導向架構做比較。這兩種架構的目標一樣都是將單體式應用程式分割為多個小型元件,但兩者採用的方法不同。以下列舉幾個微服務架構範例:

網站遷移

託管於單體式平台上的複雜網站可遷移至雲端型及容器型微服務平台。

媒體內容

在採用微服務架構的情況下,您可以將圖片和影片資產儲存在可擴充的物件儲存系統中,並將這些資產直接提供給網頁應用程式或行動應用程式。

交易和應付憑據

付款處理和訂購可分離成獨立的服務單元,這樣的話如果應付憑據服務無法運作,系統仍會持續接受付款。

資料處理

微服務平台可以為現有的模組化資料處理服務提供雲端支援。

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。
聯絡 Google Cloud 銷售專員,深入探討公司面臨的獨特挑戰。

微服務設計模式

為了管理複雜性並提升分散式系統的效能,現今的架構師會採用數種核心設計模式。

服務網格

  • 服務網格是專門處理服務間通訊的基礎架構層
  • 通常會使用 Sidecar Proxy (例如 Istio 或 Envoy),與各微服務容器一同部署,以管理流量
  • 這個模式提供重要功能,例子包括復原力 (例如:重試和斷路器)、安全性 (mTLS 驗證) 和觀測能力 (詳細追蹤和指標),而且不必變更服務程式碼本身

事件導向架構 (EDA)

  • 傳統微服務通常透過 REST API 同步通訊,但現代架構越來越偏好使用事件進行非同步通訊
  • 在 EDA 中,服務會將事件 (狀態變更) 發布至訊息代理程式 (例如 Google Cloud Pub/Sub),其他服務則訂閱這些事件
  • 這有助於降低服務間的耦合程度、提升即時回應能力,並改善故障隔離機制,因為服務不必直接瞭解彼此

後續行動

運用價值 $300 美元的免費抵免額和 20 多項一律免費的產品,開始在 Google Cloud 建構產品與服務。

Google Cloud