新聞中心
與Azure Spring Cloud云端應(yīng)用服務(wù)全接觸
譯文
作者:陳峻編譯 2020-10-21 09:00:15
云計算 本文將和您討論Azure Spring Cloud的主要功能,以及如何使用它在云端構(gòu)建,部署,擴展和管理應(yīng)用程序。

平川ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
【51CTO.com快譯】近年來,Java持續(xù)在企業(yè)中得到廣泛地運用。例如:LinkedIn正使用著500多個Java微服務(wù),Minecraft的游戲客戶端是由Java編寫而成,而Yammer的后端也是用Java編寫的,甚至連Microsoft的Azure云也包含了一些可與Java應(yīng)用進行交互組件,以及為Java特定的應(yīng)用。可以說,隨著Java生態(tài)系統(tǒng)逐漸被Spring所主導(dǎo),Microsoft不但積極地參與到Java社區(qū)中,而且推出了Azure Spring Cloud等開源的Java項目,以便更好地支持Java應(yīng)用程序和集成Azure Cloud組件。
每10個開發(fā)人員中就有6個會使用Spring來開發(fā)他們的應(yīng)用程序
Azure Spring Cloud是Azure系列產(chǎn)品中的一款PaaS產(chǎn)品,是由Microsoft和VMware共同努力構(gòu)建的。通過依靠Spring Boot,Spring Cloud能夠與Azure云組件相集成,并為用戶提供無縫的云原生應(yīng)用開發(fā)體驗。
作為一項完全托管的云服務(wù),Azure Spring Cloud是由完全托管的AKS群集提供支持的。因此,它能夠為云端的構(gòu)建、部署、以及管理微服務(wù),提供真正的無服務(wù)器體驗。
快速入門
為了簡單起見,我們假定已經(jīng)擁有了一個有效的Azure訂閱帳戶,并且選用Maven(https://maven.apache.org/)作為生成與依賴關(guān)系管理的工具。
請參照如下步驟,在Azure Spring Cloud上部署Spring Boot + Spring Cloud應(yīng)用:
- 通過Azure門戶創(chuàng)建新的Azure Spring Cloud實例。
- 請下載并安裝Azure CLI。
- 通過命令“az extension add -n spring-cloud -y”,來添加Azure Spring Cloud的擴展。注意,由于Azure CLI版本的不同,spring-cloud命令集可能已經(jīng)被添加到了默認的Azure CLI命令中,因此該步驟不一定需要。
- 通過“az configure --defaults group={resource_group}”和“az configure --defaults spring-cloud={asc_instance}”,來設(shè)置資源組和Azure Spring Cloud實例的默認值。
- 請按照如下代碼,將Azure Spring Cloud Client的依賴項包含到您的項目中。您可能需要在單獨的配置文件中進行,以免“污染”那些本地開發(fā)的依賴項。
cloud com.microsoft.azure spring-cloud-starter-azure-spring-cloud-client 2.2.0
- 通過命令:mvn clean package -Pcloud,來啟用在上一步中添加的配置文件,并構(gòu)建應(yīng)用程序。
- 使用:az spring-cloud app create -n {my-app},在Azure Spring Cloud實例中創(chuàng)建一個新的Azure Spring Cloud應(yīng)用(只需在首次進行該操作)。
- 通過如下命令,將應(yīng)用程序部署到Azure Spring Cloud處:
- az spring-cloud app deploy -n {my-app}
- --jar-path target/my-app.jar
如此零代碼量、和對項目的影響最小,我們在數(shù)分鐘之內(nèi),成功地將第一個應(yīng)用程序部署到了完全托管的AKS群集中。
分布式跟蹤
在Azure Application Insights上的應(yīng)用程序映射示例
Azure Spring Cloud能夠為您的應(yīng)用程序提供現(xiàn)成的分布式跟蹤功能。它主要依靠Azure Application Insights來構(gòu)建完整的“應(yīng)用程序映射”,以展示傳入的請求將如何流入系統(tǒng),組件之間如何交互,采樣調(diào)用的跟蹤,以及有關(guān)調(diào)用的輸出和持續(xù)時間等信息。
您既可以指定被依賴的Azure Application Insights預(yù)存實例,也可以通過啟用分布式跟蹤的設(shè)置,以專門創(chuàng)建一個全新的Azure Application Insights實例,供Azure Spring Cloud使用。
日志存儲
診斷設(shè)置的示例,實現(xiàn)了將日志和各項指標重定向到Log Analytics上
Azure Spring Cloud通過Log Analytics、Azure存儲或Azure事件中心,來提供日志與各項指標的收集和存儲。我們可以通過“診斷設(shè)置”,來指定用于存儲日志和指標的方式,并啟用該功能。
在實際操作中,最常用的方法是:將所有日志和指標都發(fā)送到Azure Log Analytics的工作區(qū)中,以便依靠強大的Log Analytics Query Language(日志分析查詢語言),對收集到的數(shù)據(jù)執(zhí)行特定、且準確的各種歷史信息檢查。
值得一提的是,我們也可以使用一個特殊的表—AppPlatformLogsForSpring,來查詢Log Analytics。該表包含了部署在Azure Spring Cloud上的各種應(yīng)用程序中的所有日志。
日志跟蹤
根據(jù)Azure Spring Cloud的一月份更新,我們已經(jīng)可以通過運行如下命令,將流式日志實時地傳輸?shù)浇K端上了:
- az spring-cloud app logs --name {app-name} --resource-group {resource-group} --service {asc-instance} -f
在開發(fā)過程中,該功能對于驗證應(yīng)用程序的行為,或嘗試著解決“類生產(chǎn)環(huán)境”中的難題,都具有非常實用的價值。
監(jiān)控和警報
https://devblogs.microsoft.com/java/whats-new-in-azure-spring-cloud-jan-update/
Azure Spring Cloud在其一月份的更新中,還添加了創(chuàng)建警報規(guī)則的功能。它有助于用戶實現(xiàn)如下方面:
- 從應(yīng)用程序中提取和分析相關(guān)指標。
- 根據(jù)這些指標的設(shè)置條件,觸發(fā)警報等操作。
- 定義警報執(zhí)行的方式(如,發(fā)送警告類電子郵件等)。
而且,這些關(guān)鍵功能的設(shè)置并不復(fù)雜。
集中式配置
當需要針對云原生應(yīng)用進行集中式配置時,Spring用戶往往需要用到Spring Cloud Config Server。而在使用Azure Spring Cloud時,我們不需要自行構(gòu)建和部署Spring Cloud Config Server,而只需配置一個自動化的部署,然后完全交給由Azure Spring Cloud管理的Spring Cloud Config Server打理便可。
完全托管的Spring Cloud Config Server配置示例
此外,需要聯(lián)系Spring Cloud Config Server的應(yīng)用程序也無需任何配置,我們只需要準備好spring-cloud-starter-config的依賴關(guān)系即可。Azure Spring Cloud將確保在部署時自動配置所有的客戶端應(yīng)用,以安全地連接到上述完全托管的Spring Cloud Config Server上。
服務(wù)發(fā)現(xiàn)
應(yīng)用程序在完全托管的服務(wù)注冊表中實現(xiàn)注冊
服務(wù)發(fā)現(xiàn)與集中式配置非常相似,它能夠提供開箱即用的服務(wù)。即:完全托管的Spring Cloud Eureka Server始終在后臺運行,以方便客戶端在其服務(wù)注冊表中進行注冊。
同樣,客戶端應(yīng)用程序也無需任何配置,即可與上述Spring Cloud Eureka Server進行交互。它們只需要包含spring-cloud-starter-netflix-eureka-client的依賴項。
服務(wù)綁定
設(shè)置Azure Cosmos DB的綁定
Azure Spring Cloud有一個非常獨特的功能,稱為“服務(wù)綁定”。它允許應(yīng)用程序與Azure云組件(例如:Azure Cosmos DB、Azure Cache for Redis、以及Azure Database for MySQL)進行交互,而無需為待建立的連接提供憑據(jù)。一旦我們?yōu)閼?yīng)用程序創(chuàng)建了服務(wù)綁定,那么在運行時(runtime),Azure Spring Cloud將自動注入那些可以連接到與Azure服務(wù)相匹配的屬性。
縱向擴展(Scale up)
我們可以按需通過Azure門戶、或等效的Azure CLI命令,輕松地擴展Azure Spring Cloud上應(yīng)用程序的資源。如上圖所示,我們可以采用“標準”的擴展計費方式,即:每個應(yīng)用的最大vCPU數(shù)為4,而分配給應(yīng)用的最大內(nèi)存GB數(shù)為8。那么縱向擴展便可以此為基數(shù)進行擴展。
橫向擴展(Scaling Out)
在Azure Spring Cloud上手動擴展應(yīng)用程序
類似地,我們也可以通過Azure門戶、或等效的Azure CLI命令,來手動執(zhí)行橫向擴展,以指定在特定時間內(nèi)存在的實例副本總數(shù)(最多為500)。
只要出現(xiàn)超過10分鐘的CPU平均使用率≥70%,就應(yīng)擴展應(yīng)用程序
更有趣的是,我們可以選擇基于實時收集與分析指標的自動化過程,來擴展應(yīng)用程序。正如前面在“監(jiān)控和警報”部分提到的,我們可以通過選擇任意的度量標準,來設(shè)置某個觸發(fā)條件。當該條件滿足時,它將觸發(fā)用戶自定義的橫向擴展操作(例如,將實例的個數(shù)增加1)。
設(shè)置最小、最大、以及默認的自動擴展限制
如上圖所示,對于任何給定的應(yīng)用程序,我們需要為自動化擴展設(shè)定一套觸發(fā)機制,其中可以包括實例的最小、最大、以及默認的實例數(shù)量。
可用性
只需幾步點擊,即可部署到生產(chǎn)環(huán)境中
通過Azure Spring Cloud,我們可以輕松地實現(xiàn)最少的停機時間。首先,“標準”的Azure Spring Cloud層會遵守“至少99.9%的可用性”--這一服務(wù)級別協(xié)議。其次,我們也可以通過幾步點擊,執(zhí)行藍/綠部署,進而讓開發(fā)人員可以在“類生產(chǎn)”環(huán)境中驗證各項功能,最大程度地減少對于最終用戶的影響,以及消除在發(fā)布更新時的停機時間。
計費
Azure Spring Cloud采用 “按使用付費”的模式,在“經(jīng)濟”地實現(xiàn)可擴展性的基礎(chǔ)上,滿足用戶的各種實際使用情況。
“標準”的計費模式說明
具體而言,它的基本費率為:用戶每小時最多可使用16個vCPU和32 GB的內(nèi)存。對于超出部分,則會按小時進行計費。
服務(wù)小結(jié)
總體而言,Azure Spring Cloud可以提供如下服務(wù):
- 縮短開發(fā)周期,便于部署到生產(chǎn)環(huán)境中。
- 更少的基礎(chǔ)設(shè)施管理開銷,便于開發(fā)人員專注于軟件應(yīng)用本身,而非Kubernetes集群。
- 通過SLA和易于實施的藍/綠部署,大幅減少停機時間。
- 將網(wǎng)絡(luò)的管理任務(wù),完全委托給Microsoft的安全網(wǎng)絡(luò)。
- 既提供彈性和可擴展的基礎(chǔ)架構(gòu),又具有靈活匹配的計費模式。
實用資源
如果您想進一步熟悉Azure Spring Cloud,請參考如下資源:
- Azure Spring Cloud官方文檔(https://azure.microsoft.com/en-us/services/spring-cloud/)
- Azure Spring Cloud培訓文檔(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是一款可用來快速構(gòu)建、部署和管理的云端應(yīng)用服務(wù)。您不必花費太多的精力,便可快速地享用其豐富的功能。如果您當前的應(yīng)用程序恰好依賴的是與Azure Spring Cloud相同的技術(shù)棧,那么您絕對值得一試。
原文標題:Azure Spring Cloud: A Comprehensive Overview,作者:Domenico Sibilio
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】
當前標題:與AzureSpringCloud云端應(yīng)用服務(wù)全接觸
URL網(wǎng)址:http://www.5511xx.com/article/coephpo.html


咨詢
建站咨詢
