云計(jì)算正在快速發(fā)展?;谖⒎?wù)的體系結(jié)構(gòu)有助于提高云原生應(yīng)用程序的可擴(kuò)展性和速度,但實(shí)現(xiàn)它們?nèi)匀恍枰鉀Q不少的挑戰(zhàn)。對(duì)于Java應(yīng)用程序,Spring Boot可以快速啟動(dòng)微服務(wù),而Spring Cloud通過(guò)實(shí)現(xiàn)經(jīng)過(guò)驗(yàn)證的模式簡(jiǎn)化了分布式微服務(wù)的架構(gòu)。Spring Boot和Spring Cloud可以幫助您輕松構(gòu)建一個(gè)云原生應(yīng)用程序,然而在運(yùn)行和管理您的云原生應(yīng)用程序時(shí),如何保持一致性?如何快速更新?如何協(xié)調(diào)資源以滿足動(dòng)態(tài)增長(zhǎng)的業(yè)務(wù)需求?如何與先進(jìn)的云監(jiān)控和跟蹤解決方案實(shí)現(xiàn)無(wú)縫流水線?
為了幫助在云環(huán)境中簡(jiǎn)化部署和操作Spring Boot應(yīng)用程序,Microsoft與VMware合作發(fā)布了Azure Spring Cloud服務(wù)。今天,我們很高興的宣布,由世紀(jì)互聯(lián)運(yùn)營(yíng)的Microsoft Azure將正式為所有客戶提供Azure Spring Cloud服務(wù)的支持!
什么是Spring Cloud
Spring Cloud是一套完整的微服務(wù)解決方案。它利用Spring Boot的開發(fā)便利性簡(jiǎn)化了復(fù)雜的分布式系統(tǒng)的開發(fā),他不重復(fù)造輪子,而是將市面上開發(fā)得比較好的組件集成進(jìn)去,進(jìn)行封裝,從而減少了各模塊的開發(fā)成本。比如
1.Spring Cloud Gateway不僅提供統(tǒng)一的路由方式,還增加了安全,限流以及和其他Spring模塊的整合等功能。
2.在云中,應(yīng)用程序不能始終知道其他服務(wù)的確切位置。Spring Cloud Service Registry(服務(wù)注冊(cè)表,如Netflix Eureka)可以提供幫助。
3.在云中,也不能簡(jiǎn)單地將配置嵌入到應(yīng)用程序中。配置必須足夠靈活,才能處理多個(gè)應(yīng)用程序、環(huán)境和服務(wù)實(shí)例,以及處理動(dòng)態(tài)更改,而不會(huì)停機(jī)。Spring Cloud Config旨在減輕負(fù)擔(dān),并與Git等版本控制系統(tǒng)集成,幫助您保持配置安全。
4.調(diào)試分布式應(yīng)用程序可能很復(fù)雜,需要很長(zhǎng)時(shí)間。Spring Cloud Sleuth提供了分布式跟蹤的功能,包括數(shù)據(jù)采集,數(shù)據(jù)傳輸,數(shù)據(jù)分析等。
簡(jiǎn)而言之,Spring Cloud可以幫助您輕松構(gòu)建云原生微服務(wù)。
什么是Azure Spring Cloud服務(wù)
隨著微服務(wù)發(fā)展到跨多個(gè)虛擬機(jī)部署多個(gè)容器,操作它們變得更加復(fù)雜。為了管理這種復(fù)雜性,Kubernetes提供了一套開源API,用于控制這些容器的運(yùn)行方式和位置。Kubernetes會(huì)協(xié)調(diào)虛擬機(jī)集群,并根據(jù)這些虛擬機(jī)的可用計(jì)算資源和每個(gè)容器的資源要求安排在虛擬機(jī)上運(yùn)行容器。在Kubernetes上如何運(yùn)行Spring Boot微服務(wù)并管理整個(gè)生命周期呢?首先,您需要搭建和管理Kubernetes,然后構(gòu)建和管理Spring Cloud組件。這一切就緒后可以開始將Spring Boot應(yīng)用程序容器化,將它們部署到Kubernetes集群,并將應(yīng)用程序與Spring Cloud組件連接起來(lái)。之后需要根據(jù)業(yè)務(wù)需求執(zhí)行啟動(dòng)、停止、縮放和其他操作來(lái)管理應(yīng)用程序的生命周期。有沒(méi)有更輕松的方式來(lái)管理Spring Boot應(yīng)用呢?
Azure Spring Cloud就是為幫助Spring Boot應(yīng)用快速上云而創(chuàng)建的。它是一種托管服務(wù),構(gòu)建在Azure Kubernetes服務(wù)之上,具有預(yù)先配置的Spring Cloud組件和可部署的用戶應(yīng)用環(huán)境。因此,您可以只關(guān)注微服務(wù)應(yīng)用本身,其他的事情包括Kubernetes和Spring Cloud組件的管理都交給Azure。
分布式追蹤
分析分布式系統(tǒng)中的問(wèn)題可能很困難,例如,如何跟蹤從一個(gè)微服務(wù)鏈接到另一個(gè)微服務(wù)的請(qǐng)求。Spring Cloud Sleuth結(jié)合Azure Monitor,可以看到微服務(wù)的整個(gè)調(diào)用鏈的視圖。從而輕松觀察到應(yīng)用程序如何執(zhí)行,并根據(jù)異常數(shù)據(jù)進(jìn)行快速故障排除。
監(jiān)控報(bào)警
用戶不僅可以在Azure Spring Cloud的門戶查看實(shí)時(shí)的指標(biāo),也可以根據(jù)指標(biāo)自定義報(bào)警功能。這樣運(yùn)維人員不需要隨時(shí)留意門戶上的性能數(shù)據(jù),或者借助其他工具來(lái)進(jìn)行性能檢測(cè)并產(chǎn)生故障報(bào)警。
彈性伸縮
Azure Spring Cloud服務(wù)允許用戶通過(guò)根據(jù)應(yīng)用性能指標(biāo)或時(shí)間計(jì)劃自動(dòng)彈性伸縮應(yīng)用程序,從而能夠提高生產(chǎn)力和成本效益。比如您可以在CPU利用率大于70%的時(shí)候增加應(yīng)用實(shí)例數(shù)并在小于50%的時(shí)候減少實(shí)例數(shù),也可以根據(jù)活動(dòng)時(shí)間來(lái)定義早上9點(diǎn)增加應(yīng)用實(shí)例數(shù)并與下午六點(diǎn)減少實(shí)例數(shù)。另外,還支持手動(dòng)調(diào)整每個(gè)實(shí)例的CPU或內(nèi)存的大小。
最后,如果您希望了解關(guān)于Azure Spring Cloud的更多資料,請(qǐng)?jiān)L問(wèn)Azure Spring Cloud中文官方文檔,或在文章下方評(píng)論區(qū)與我們的專家交流探討。