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