跳至主要內容
  • AWS
  • 微型服務

微型服務

建立高度可用的微型服務,以支援任何大小和規模的應用程式。

巨型與微型服務架構

在巨型架構中,所有程序皆緊密結合,並會以單一服務執行。這表示如果某個應用程式的其中一個程序需求激增,就必須擴展整個架構。隨著程式碼基底增加,要新增或改善巨型應用程式的功能也變得更加複雜。這種複雜性局限了實驗的可能,更難落實新點子。由於許多獨立且緊密結合的程序會提高對單一程序故障的影響,因此巨型架構會增加應用程式可用性的風險。

在微型服務架構中,應用程式會建立為獨立元件,並會以服務的形式執行個別應用程式程序。這些服務使用輕量型 API,透過定義良好的界面進行通訊。服務係針對商業功能所建立,且每項服務皆可執行單一功能。因為每項服務皆獨立運作,因此可以個別更新、部署和擴展,以滿足應用程式特定功能的需求。

Diagram comparing a monolithic node.js API service with users, threads, and posts grouped together, to a microservices architecture with separate services for users, threads, and posts.

微型服務的特性

自發

微型服務架構中的每項元件服務都可以自由開發、部署、運作和擴展,並不會影響其他服務的功能。這些服務不需要與其他服務分享任何程式碼或實作。獨立元件之間會經由定義良好的 API 進行所有通訊。

專門

每項服務專為一組功能設計,並著重於解決特定問題。如果開發人員不斷提供更多程式碼,導致服務變得更加複雜,可以將服務分解成較小型的服務。

微型服務的優勢

敏捷性

微型服務促進組織組成小型獨立團隊,並具備其處理之服務的擁有權。團隊可在小型簡易的環境中行動,並能夠更獨立且快速地工作。這有助於縮短開發週期時間。彙總的組織輸送量能為您帶來莫大好處。

可彈性擴展

微型服務可讓每項服務獨立擴展,以滿足其支援的應用程式功能的需求。這可讓團隊依架構需求調整合適的大小、準確地衡量功能的成本,以及在服務出現需求激增時維持可用性。

輕鬆部署

微型服務可持續整合和持續交付,方便您嘗試新點子,並在發生問題時進行復原。失敗的成本較低,可讓您進行實驗,以便更新程式碼,並縮短新功能的上市時間。

技術的自由

微服務架構不適用於「一體適用」的方法。團隊可自行選擇可解決其特定問題的最佳工具。因此,建立微型服務的團隊可為每項工作選擇最佳工具。

可重複使用的程式碼

將軟體劃分為定義良好的小型單元,可讓團隊將功能用於多種用途。專為特定功能撰寫的服務可充當其他功能的建構模塊。這可讓應用程式自行引導操作,以便開發人員建立新功能,而無需從頭開始撰寫程式碼。

恢復能力

服務的獨立性可提升應用程式的受挫能力。在巨型架構中,如果單一元件故障,可能會造成整個應用程式故障。在微型服務中,應用程式可將功能降級,以處理整個服務故障問題,避免造成整個應用程式當機。

聯網