展會(huì)信息港展會(huì)大全

與Azure Spring Cloud云端應(yīng)用服務(wù)全接觸
來(lái)源:互聯(lián)網(wǎng)   發(fā)布日期:2020-10-23 12:16:19   瀏覽:30071次  

導(dǎo)讀:【51CTO.com快譯】近年來(lái),Java持續(xù)在企業(yè)中得到廣泛地運(yùn)用。例如:LinkedIn正使用著500多個(gè)Java微服務(wù),Minecraft的游戲客戶端是由Java編寫而成,而Yammer的后端也是用Java編寫的,甚至連Microsoft的Azure云也包含了一些可與Java應(yīng)用進(jìn)行交互組件,以及為Ja...

【51CTO.com快譯】近年來(lái),Java持續(xù)在企業(yè)中得到廣泛地運(yùn)用。例如:LinkedIn正使用著500多個(gè)Java微服務(wù),Minecraft的游戲客戶端是由Java編寫而成,而Yammer的后端也是用Java編寫的,甚至連Microsoft的Azure云也包含了一些可與Java應(yīng)用進(jìn)行交互組件,以及為Java特定的應(yīng)用?梢哉f(shuō),隨著Java生態(tài)系統(tǒng)逐漸被Spring所主導(dǎo),Microsoft不但積極地參與到Java社區(qū)中,而且推出了Azure Spring Cloud等開(kāi)源的Java項(xiàng)目,以便更好地支持Java應(yīng)用程序和集成Azure Cloud組件。

每10個(gè)開(kāi)發(fā)人員中就有6個(gè)會(huì)使用Spring來(lái)開(kāi)發(fā)他們的應(yīng)用程序

Azure Spring Cloud是Azure系列產(chǎn)品中的一款PaaS產(chǎn)品,是由Microsoft和VMware共同努力構(gòu)建的。通過(guò)依靠Spring Boot,Spring Cloud能夠與Azure云組件相集成,并為用戶提供無(wú)縫的云原生應(yīng)用開(kāi)發(fā)體驗(yàn)。

作為一項(xiàng)完全托管的云服務(wù),Azure Spring Cloud是由完全托管的AKS群集提供支持的。因此,它能夠?yàn)樵贫说臉?gòu)建、部署、以及管理微服務(wù),提供真正的無(wú)服務(wù)器體驗(yàn)。

快速入門

為了簡(jiǎn)單起見(jiàn),我們假定已經(jīng)擁有了一個(gè)有效的Azure訂閱帳戶,并且選用Maven(https://maven.apache.org/)作為生成與依賴關(guān)系管理的工具。

請(qǐng)參照如下步驟,在Azure Spring Cloud上部署Spring Boot + Spring Cloud應(yīng)用:

通過(guò)Azure門戶創(chuàng)建新的Azure Spring Cloud實(shí)例。

請(qǐng)下載并安裝Azure CLI。

通過(guò)命令“az extension add -n spring-cloud -y”,來(lái)添加Azure Spring Cloud的擴(kuò)展。注意,由于Azure CLI版本的不同,spring-cloud命令集可能已經(jīng)被添加到了默認(rèn)的Azure CLI命令中,因此該步驟不一定需要。

通過(guò)“az configure --defaults group=”和“az configure --defaults spring-cloud=”,來(lái)設(shè)置資源組和Azure Spring Cloud實(shí)例的默認(rèn)值。

請(qǐng)按照如下代碼,將Azure Spring Cloud Client的依賴項(xiàng)包含到您的項(xiàng)目中。您可能需要在單獨(dú)的配置文件中進(jìn)行,以免“污染”那些本地開(kāi)發(fā)的依賴項(xiàng)。

cloud com.microsoft.azure spring-cloud-starter-azure-spring-cloud-client 2.2.0

通過(guò)命令:mvn clean package -Pcloud,來(lái)啟用在上一步中添加的配置文件,并構(gòu)建應(yīng)用程序。

使用:az spring-cloud app create -n ,在Azure Spring Cloud實(shí)例中創(chuàng)建一個(gè)新的Azure Spring Cloud應(yīng)用(只需在首次進(jìn)行該操作)。

通過(guò)如下命令,將應(yīng)用程序部署到Azure Spring Cloud處:

az spring-cloud app deploy -n --jar-path target/my-app.jar

如此零代碼量、和對(duì)項(xiàng)目的影響最小,我們?cè)跀?shù)分鐘之內(nèi),成功地將第一個(gè)應(yīng)用程序部署到了完全托管的AKS群集中。

分布式跟蹤

在Azure Application Insights上的應(yīng)用程序映射示例

Azure Spring Cloud能夠?yàn)槟膽?yīng)用程序提供現(xiàn)成的分布式跟蹤功能。它主要依靠Azure Application Insights來(lái)構(gòu)建完整的“應(yīng)用程序映射”,以展示傳入的請(qǐng)求將如何流入系統(tǒng),組件之間如何交互,采樣調(diào)用的跟蹤,以及有關(guān)調(diào)用的輸出和持續(xù)時(shí)間等信息。

您既可以指定被依賴的Azure Application Insights預(yù)存實(shí)例,也可以通過(guò)啟用分布式跟蹤的設(shè)置,以專門創(chuàng)建一個(gè)全新的Azure Application Insights實(shí)例,供Azure Spring Cloud使用。

日志存儲(chǔ)

診斷設(shè)置的示例,實(shí)現(xiàn)了將日志和各項(xiàng)指標(biāo)重定向到Log Analytics上

Azure Spring Cloud通過(guò)Log Analytics、Azure存儲(chǔ)或Azure事件中心,來(lái)提供日志與各項(xiàng)指標(biāo)的收集和存儲(chǔ)。我們可以通過(guò)“診斷設(shè)置”,來(lái)指定用于存儲(chǔ)日志和指標(biāo)的方式,并啟用該功能。

在實(shí)際操作中,最常用的方法是:將所有日志和指標(biāo)都發(fā)送到Azure Log Analytics的工作區(qū)中,以便依靠強(qiáng)大的Log Analytics Query Language(日志分析查詢語(yǔ)言),對(duì)收集到的數(shù)據(jù)執(zhí)行特定、且準(zhǔn)確的各種歷史信息檢查。

值得一提的是,我們也可以使用一個(gè)特殊的表AppPlatformLogsForSpring,來(lái)查詢Log Analytics。該表包含了部署在Azure Spring Cloud上的各種應(yīng)用程序中的所有日志。

日志跟蹤

根據(jù)Azure Spring Cloud的一月份更新,我們已經(jīng)可以通過(guò)運(yùn)行如下命令,將流式日志實(shí)時(shí)地傳輸?shù)浇K端上了:

az spring-cloud app logs --name --resource-group --service -f

在開(kāi)發(fā)過(guò)程中,該功能對(duì)于驗(yàn)證應(yīng)用程序的行為,或嘗試著解決“類生產(chǎn)環(huán)境”中的難題,都具有非常實(shí)用的價(jià)值。

監(jiān)控和警報(bào)

https://devblogs.microsoft.com/java/whats-new-in-azure-spring-cloud-jan-update/

Azure Spring Cloud在其一月份的更新中,還添加了創(chuàng)建警報(bào)規(guī)則的功能。它有助于用戶實(shí)現(xiàn)如下方面:

從應(yīng)用程序中提取和分析相關(guān)指標(biāo)。

根據(jù)這些指標(biāo)的設(shè)置條件,觸發(fā)警報(bào)等操作。

定義警報(bào)執(zhí)行的方式(如,發(fā)送警告類電子郵件等)。

而且,這些關(guān)鍵功能的設(shè)置并不復(fù)雜。

集中式配置

當(dāng)需要針對(duì)云原生應(yīng)用進(jìn)行集中式配置時(shí),Spring用戶往往需要用到Spring Cloud Config Server。而在使用Azure Spring Cloud時(shí),我們不需要自行構(gòu)建和部署Spring Cloud Config Server,而只需配置一個(gè)自動(dòng)化的部署,然后完全交給由Azure Spring Cloud管理的Spring Cloud Config Server打理便可。

完全托管的Spring Cloud Config Server配置示例

此外,需要聯(lián)系Spring Cloud Config Server的應(yīng)用程序也無(wú)需任何配置,我們只需要準(zhǔn)備好spring-cloud-starter-config的依賴關(guān)系即可。Azure Spring Cloud將確保在部署時(shí)自動(dòng)配置所有的客戶端應(yīng)用,以安全地連接到上述完全托管的Spring Cloud Config Server上。

服務(wù)發(fā)現(xiàn)

應(yīng)用程序在完全托管的服務(wù)注冊(cè)表中實(shí)現(xiàn)注冊(cè)

服務(wù)發(fā)現(xiàn)與集中式配置非常相似,它能夠提供開(kāi)箱即用的服務(wù)。即:完全托管的Spring Cloud Eureka Server始終在后臺(tái)運(yùn)行,以方便客戶端在其服務(wù)注冊(cè)表中進(jìn)行注冊(cè)。

同樣,客戶端應(yīng)用程序也無(wú)需任何配置,即可與上述Spring Cloud Eureka Server進(jìn)行交互。它們只需要包含spring-cloud-starter-netflix-eureka-client的依賴項(xiàng)。

服務(wù)綁定

設(shè)置Azure Cosmos DB的綁定

Azure Spring Cloud有一個(gè)非常獨(dú)特的功能,稱為“服務(wù)綁定”。它允許應(yīng)用程序與Azure云組件(例如:Azure Cosmos DB、Azure Cache for Redis、以及Azure Database for MySQL)進(jìn)行交互,而無(wú)需為待建立的連接提供憑據(jù)。一旦我們?yōu)閼?yīng)用程序創(chuàng)建了服務(wù)綁定,那么在運(yùn)行時(shí)(runtime),Azure Spring Cloud將自動(dòng)注入那些可以連接到與Azure服務(wù)相匹配的屬性。

縱向擴(kuò)展(Scale up)

我們可以按需通過(guò)Azure門戶、或等效的Azure CLI命令,輕松地?cái)U(kuò)展Azure Spring Cloud上應(yīng)用程序的資源。如上圖所示,我們可以采用“標(biāo)準(zhǔn)”的擴(kuò)展計(jì)費(fèi)方式,即:每個(gè)應(yīng)用的最大vCPU數(shù)為4,而分配給應(yīng)用的最大內(nèi)存GB數(shù)為8。那么縱向擴(kuò)展便可以此為基數(shù)進(jìn)行擴(kuò)展。

橫向擴(kuò)展(Scaling Out)

在Azure Spring Cloud上手動(dòng)擴(kuò)展應(yīng)用程序

類似地,我們也可以通過(guò)Azure門戶、或等效的Azure CLI命令,來(lái)手動(dòng)執(zhí)行橫向擴(kuò)展,以指定在特定時(shí)間內(nèi)存在的實(shí)例副本總數(shù)(最多為500)。

只要出現(xiàn)超過(guò)10分鐘的CPU平均使用率≥70%,就應(yīng)擴(kuò)展應(yīng)用程序

更有趣的是,我們可以選擇基于實(shí)時(shí)收集與分析指標(biāo)的自動(dòng)化過(guò)程,來(lái)擴(kuò)展應(yīng)用程序。正如前面在“監(jiān)控和警報(bào)”部分提到的,我們可以通過(guò)選擇任意的度量標(biāo)準(zhǔn),來(lái)設(shè)置某個(gè)觸發(fā)條件。當(dāng)該條件滿足時(shí),它將觸發(fā)用戶自定義的橫向擴(kuò)展操作(例如,將實(shí)例的個(gè)數(shù)增加1)。

設(shè)置最孝最大、以及默認(rèn)的自動(dòng)擴(kuò)展限制

如上圖所示,對(duì)于任何給定的應(yīng)用程序,我們需要為自動(dòng)化擴(kuò)展設(shè)定一套觸發(fā)機(jī)制,其中可以包括實(shí)例的最孝最大、以及默認(rèn)的實(shí)例數(shù)量。

可用性

只需幾步點(diǎn)擊,即可部署到生產(chǎn)環(huán)境中

通過(guò)Azure Spring Cloud,我們可以輕松地實(shí)現(xiàn)最少的停機(jī)時(shí)間。首先,“標(biāo)準(zhǔn)”的Azure Spring Cloud層會(huì)遵守“至少99.9%的可用性”--這一服務(wù)級(jí)別協(xié)議。其次,我們也可以通過(guò)幾步點(diǎn)擊,執(zhí)行藍(lán)/綠部署,進(jìn)而讓開(kāi)發(fā)人員可以在“類生產(chǎn)”環(huán)境中驗(yàn)證各項(xiàng)功能,最大程度地減少對(duì)于最終用戶的影響,以及消除在發(fā)布更新時(shí)的停機(jī)時(shí)間。

計(jì)費(fèi)

Azure Spring Cloud采用 “按使用付費(fèi)”的模式,在“經(jīng)濟(jì)”地實(shí)現(xiàn)可擴(kuò)展性的基礎(chǔ)上,滿足用戶的各種實(shí)際使用情況。

“標(biāo)準(zhǔn)”的計(jì)費(fèi)模式說(shuō)明

具體而言,它的基本費(fèi)率為:用戶每小時(shí)最多可使用16個(gè)vCPU和32 GB的內(nèi)存。對(duì)于超出部分,則會(huì)按小時(shí)進(jìn)行計(jì)費(fèi)。

服務(wù)小結(jié)

總體而言,Azure Spring Cloud可以提供如下服務(wù):

縮短開(kāi)發(fā)周期,便于部署到生產(chǎn)環(huán)境中。

更少的基礎(chǔ)設(shè)施管理開(kāi)銷,便于開(kāi)發(fā)人員專注于軟件應(yīng)用本身,而非Kubernetes集群。

通過(guò)SLA和易于實(shí)施的藍(lán)/綠部署,大幅減少停機(jī)時(shí)間。

將網(wǎng)絡(luò)的管理任務(wù),完全委托給Microsoft的安全網(wǎng)絡(luò)。

既提供彈性和可擴(kuò)展的基礎(chǔ)架構(gòu),又具有靈活匹配的計(jì)費(fèi)模式。

實(shí)用資源

如果您想進(jìn)一步熟悉Azure Spring Cloud,請(qǐng)參考如下資源:

Azure Spring Cloud官方文檔(https://azure.microsoft.com/en-us/services/spring-cloud/)

Azure Spring Cloud培訓(xùn)文檔(https://github.com/microsoft/azure-spring-cloud-training)

由Josh Long和Julien Dubois撰寫的《Bootiful Azure Spring Cloud》(https://www.youtube.com/watch?v=WAuGojnf2lA)

結(jié)論

Azure Spring Cloud是一款可用來(lái)快速構(gòu)建、部署和管理的云端應(yīng)用服務(wù)。您不必花費(fèi)太多的精力,便可快速地享用其豐富的功能。如果您當(dāng)前的應(yīng)用程序恰好依賴的是與Azure Spring Cloud相同的技術(shù)棧,那么您絕對(duì)值得一試。

原文標(biāo)題:Azure Spring Cloud: A Comprehensive Overview,作者:Domenico Sibilio

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】


贊助本站

相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開(kāi)

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實(shí)驗(yàn)室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動(dòng)態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機(jī)會(huì) | 展會(huì)港