使用這8款工具將微服務部署在Azure上
譯文【51CTO.com快譯】面對基于云的分布式系統,IT團隊可以踐行持續交付、減少管理開銷,更有效地構建和部署軟件。然而,微服務方法需要在存儲、網絡、更新、API和容器等方面有明確的策略和慎重的考慮。
對于微軟Azure用戶而言,有幾種原生服務和實現框架有助于降低復雜性,更易于管理分布式資源。 IT技術人員可以借助Azure Service Fabric訪問各種工具,Azure Service Fabric是微軟基于云的中心,可用于部署容器技術、調用函數即服務(FaaS)或創建API協議以公開微服務。
我們在本文中介紹微軟Azure如何支持微服務,包括它如何與容器和無服務器技術協同使用。我們主要介紹了用于構建分布式系統的八款主要的Azure工具以及部署微服務時需要考慮的幾個優秀實踐。
在Azure上部署微服務的幾款工具
借助微服務,IT團隊通常可以更快速更靈活地構建和部署軟件。應用程序分成幾個基于服務的較小組件,因而更易于自動擴展和調整。然而,管理員和開發人員要準備好應對這些互連服務所帶來的復雜性。
圖1. 整體式架構和微服務架構的對比
下列Azure工具和服務是為微服務部署而設計的:
Azure Service Fabric
Azure Service Fabric 是一種應用程序平臺,面向在本地或Azure中運行的微服務。DevOps團隊可以使用其聲明性模型來部署應用程序及依賴項,無需搭建和管理基礎架構。它可全局運行,這減少了瓶頸,并提供了現代應用程序所需的高可用性。
該框架提供了從初始部署、日常維護再到報廢的整個應用程序生命周期管理。管理員可以用它來檢測并重啟發生故障的系統、發現服務位置、監控應用程序運行狀況并管理狀態。與Kubernetes相似,Azure Service Fabric簡化了這項工作:配置和部署由容器托管的微服務和Azure自己的平臺服務組成的應用程序。
Azure Service Fabric Mesh
有了Azure Service Fabric Mesh,IT團隊可以表明所需的資源、服務可用性要求以及任何資源限制,它可以處理底層工具和基礎架構的所有細節任務。該平臺為.NET Core微服務提供了無服務器主機,使開發人員能夠使用Docker容器支持的任何語言。Service Fabric Mesh可自動處理升級,提供部署新的應用程序版本時換掉容器的功能。除了對云原生工作負載而言可高度擴展外,該平臺還具有模塊化和自適應性。
Azure Functions
通常,FaaS確保被某些服務事件觸發時代碼按需運行。有了Azure Functions,你可以安裝應用程序的某部分,僅在需要時才加載函數。它們還可以按需并行執行。因而,管理員就不需要配置和構建應用程序基礎架構,只需為運行顯式代碼段所花費的時間段付費。
Azure Event Grid
開發人員和管理員使用基于事件的架構來接收有關應用程序狀態更改的警報。Azure Event Grid提供警報,以便開發人員和管理員可以立即響應這些更改。該工具實際上充當了構建事件驅動型微服務應用程序的粘合劑。
Azure Kubernetes Service
Azure Kubernetes Service便于部署,并簡化容器實例的日常測試和管理。DevOps團隊可以使用Azure Cloud Shell或遠程Azure命令行接口(CLI),快速構建和啟動容器化的應用程序。
Azure Container Instances(ACI)
容器包含微服務需要運行的所有要素,包括代碼、運行時環境、工具集、系統庫和設置。由于ACI本質上是容器即服務,最終用戶不受編排工具和CLI的影響。唯一的要求是,擁有待創建容器的準確映像。ACI還可以處理集群初創化、更新和打補丁。
Azure API Management
Azure API Management為服務功能確保了單一入口點。通過API管理集成,DevOps團隊可以訪問多個工具和服務,無需更改應用程序代碼。這包括導入服務定義、定義復雜的路由規則、將發生的事件記入日志以及緩存響應。
Service Fabric Reliable Volume
作為一種臨時容器磁盤,Service Fabric Reliable Volume可幫助微服務應用程序保持持久狀態,同時消除通常與訪問容器化應用程序的存儲有關的延遲問題。然而,雖然Service Fabric Reliable Volume確實提供了通用文件存儲,并支持讀/寫功能,但管理員還可以訪問Azure File Storage以確保數據可靠性。
要考慮的最佳做法
開發人員和管理員需要部署統一的監控工具和實踐,才能在Azure上成功部署微服務。比如結合使用Azure Monitor的數據度量指標和Log Analytics代理用于分析性能和成本。 DevOps團隊可以分析不同的數據流以量化寫入事務或關聯服務分區以幫助監控成本。
切勿使用傳統的錯誤處理方法(比如依賴返回碼),改而使用Azure Service Fabric運行狀況策略。該平臺為評估和報告提供了一種詳細、靈活、可擴展的模式。通過積極監控服務部署的運行狀況,IT團隊可以防止問題擴大、導致嚴重停機。
此外,通過基于本地視圖收集基于服務的報告,DevOps團隊可以捕獲集群級視圖,并事先診斷潛在問題。實際上,這種方法可以在Azure中加以更廣泛的應用。因此對工作負載響應能力的改善將使IT團隊能夠更專注于應用開發上,少專注于基礎架構管理上。
原文標題:Use these 8 tools to deploy microservices on Azure,作者:Kerry Doyle
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】