真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何通過Serverless技術(shù)降低微服務(wù)應(yīng)用資源成本

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、黟縣ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的黟縣網(wǎng)站制作公司

前言

在大型分布式 IT 架構(gòu)領(lǐng)域,微服務(wù)是一項(xiàng)必不可少的技術(shù)。從本質(zhì)上來講,微服務(wù)是一種架構(gòu)風(fēng)格,將一個(gè)大型的系統(tǒng)拆分為多個(gè)擁有獨(dú)立生命周期的應(yīng)用,應(yīng)用之間采用輕量級的通信機(jī)制進(jìn)行通信。這些應(yīng)用都是圍繞具體業(yè)務(wù)進(jìn)行構(gòu)建,可以獨(dú)立部署、獨(dú)立迭代,也可能根據(jù)業(yè)務(wù)負(fù)載獨(dú)立進(jìn)行水平擴(kuò)展。

微服務(wù)思想以及相關(guān)的技術(shù)為 IT 架構(gòu)的發(fā)展帶來了一系列深刻的變革:

**易于開發(fā)和維護(hù):**一個(gè)應(yīng)用只會關(guān)注一組特定的業(yè)務(wù)功能,通過服務(wù)拆分,能減少應(yīng)用之間的耦合度,讓開發(fā)和維護(hù)更加簡單。

**技術(shù)棧不受限制:**在微服務(wù)架構(gòu)中,可以結(jié)合項(xiàng)目業(yè)務(wù)及團(tuán)隊(duì)的特點(diǎn),合理的選擇技術(shù)棧。

**加快系統(tǒng)演進(jìn)速度:**每一個(gè)應(yīng)用都可以獨(dú)立的進(jìn)行版本更新,通過灰度發(fā)布等技術(shù)手段能確保發(fā)布過程中整個(gè)系統(tǒng)穩(wěn)定運(yùn)行。

**突破性能瓶頸:**每個(gè)應(yīng)用都能獨(dú)立的水平伸縮,使系統(tǒng)性能可以根據(jù)計(jì)算資源的增加而得到線性的擴(kuò)展。

微服務(wù)的挑戰(zhàn)

世上沒有免費(fèi)的午餐,微服務(wù)技術(shù)讓 IT 系統(tǒng)變得更敏捷、更健壯、更高性能的同時(shí),也帶來了架構(gòu)復(fù)雜度的提升。對于開發(fā)者而言,要想更好的駕馭微服務(wù)架構(gòu),需要解決持續(xù)集成、服務(wù)發(fā)現(xiàn)、應(yīng)用通信、配置管理、流量防護(hù)等一系列難題。幸運(yùn)的是,針對這些普遍存在的難題,業(yè)界涌現(xiàn)了一系列優(yōu)秀的開源技術(shù)組件和工具,讓開發(fā)者可以更輕松的構(gòu)建微服務(wù)應(yīng)用。像 Spring Cloud 和 Dubbo 這樣的技術(shù)框架,經(jīng)過多年的發(fā)展,已經(jīng)演化為微服務(wù)領(lǐng)域的通用標(biāo)準(zhǔn),極大地降低了微服務(wù)的門檻,但這些技術(shù)框架依然沒有辦法解決其中兩個(gè)最大的挑戰(zhàn),這兩個(gè)挑戰(zhàn)成為擺在開發(fā)者面前的兩座大山。

挑戰(zhàn)一:亟需完善的生命周期管理與服務(wù)治理方案

在一個(gè)頻繁迭代的系統(tǒng)中,每個(gè)應(yīng)用會經(jīng)常性面臨新版本發(fā)布需求,需要對應(yīng)用的上線、下線、更新、回滾等流程進(jìn)行集中性的管理,并配合精細(xì)粒度的灰度發(fā)布手段,減少版本迭代對業(yè)務(wù)造成的影響。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

在一個(gè)簡單的微服務(wù)架構(gòu)中,如果某應(yīng)用處于整個(gè)鏈路的入口位置,它的前端一般會掛上負(fù)載均衡組件(上圖中的應(yīng)用 A),以承接來自于最終用戶的業(yè)務(wù)請求。這類應(yīng)用在進(jìn)行生命周期管理的時(shí)候,復(fù)雜度會更高,為了確保應(yīng)用在新版本發(fā)布過程中的平衡穩(wěn)定,會經(jīng)過如下的步驟:

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

在這個(gè)流程中,還沒有涉及到對于流量精細(xì)粒度控制的高級灰度方案,但已經(jīng)足夠體現(xiàn)出其復(fù)雜性和操作難度了。如果僅僅依賴于簡單的發(fā)布腳本進(jìn)行管理,不但效率很低,還很容易導(dǎo)致顧此失彼,對系統(tǒng)穩(wěn)定性造成巨大的風(fēng)險(xiǎn)。

挑戰(zhàn)二:亟需完善的水平擴(kuò)容與縮容方案

當(dāng)某一個(gè)應(yīng)用的性能出現(xiàn)瓶頸,需要通過增加實(shí)例數(shù)量來提升性能的時(shí)候,就需要引入新的計(jì)算資源。

新的計(jì)算資源從何而來呢?

對于線下 IDC 而言,計(jì)算資源是需要預(yù)先規(guī)劃的,擴(kuò)容并不是一件簡單的事情,可能會因?yàn)楦鞣N條件的制約而導(dǎo)致擴(kuò)容無法實(shí)現(xiàn)。當(dāng)然這種困擾在云計(jì)算時(shí)代不復(fù)存在了,為一個(gè)應(yīng)用擴(kuò)充計(jì)算資源是信手拈來的事情,但光有計(jì)算資源是不夠的,還得在上面部署應(yīng)用,并將應(yīng)用容納到微服務(wù)體系中。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

根據(jù)這個(gè)流程,如果需要擴(kuò)容一個(gè)應(yīng)用實(shí)例,保守估計(jì)也需要 20 分鐘以上,其中購買、系統(tǒng)初始化、應(yīng)用部署都需要占用大量的時(shí)間。假設(shè)系統(tǒng)流量突增,需要在 2 分鐘之內(nèi)緊急擴(kuò)容,這個(gè)方案就無用武之地了。 

一劑良藥:容器化技術(shù)

為了解決這兩個(gè)難題,開發(fā)者們嘗試了各種各樣的方案,新的理念以及技術(shù)框架在過去的這五年層出不窮。在一輪輪的優(yōu)勝劣汰下,以 Docker 為代表的容器技術(shù),在 Kubernetes 生態(tài)的支撐下,在業(yè)界成為了主流,是構(gòu)建云原生(Cloud Native)應(yīng)用的必備要素。容器化相關(guān)技術(shù)能夠更大程序的挖掘云計(jì)算的價(jià)值,在一定程度上幫助開發(fā)者解決這兩個(gè)難題。

在應(yīng)用生命周期管理以及服務(wù)治理方面, Kubernetes 提供了比較完善的實(shí)現(xiàn)機(jī)制,通過構(gòu)建 Deployment 資源,配合 proStop 和 postStart 腳本,能比較方便的實(shí)現(xiàn)滾動發(fā)布以及應(yīng)用的優(yōu)雅上下線。雖然在灰度發(fā)布的過程中,依然沒有辦法直接對流量進(jìn)行精細(xì)粒度控制(引入 Service Mesh 技術(shù)能增強(qiáng)流量控制力,不在本文討論范圍),但相比簡單的發(fā)布腳本,已經(jīng)有了飛躍性的提升。

在應(yīng)用的水平擴(kuò)容與縮容方面,通過容器化技術(shù)可以極大程度的減少操作系統(tǒng)安裝以及系統(tǒng)級初始化的時(shí)間,但購買虛擬機(jī)的操作是無法避免的,所以在系統(tǒng)遇到流量增突的時(shí)候,依然沒有辦法實(shí)現(xiàn)快速水平擴(kuò)容。我們可以預(yù)留一部分計(jì)算資源,放在資源池中,當(dāng)應(yīng)用有擴(kuò)容需求的時(shí)候,就向資源池申請資源,當(dāng)業(yè)務(wù)負(fù)載下降的時(shí)候,再把多余的計(jì)算資源歸還到資源池中。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

這其實(shí)并不是一個(gè)好主意,每一個(gè)計(jì)算資源都是需要成本的,資源池雖然能夠解決計(jì)算資源快速投入使用的問題,卻造成了巨大的浪費(fèi)。另外,到底規(guī)劃多大的資源池,也是一件很傷腦筋的事情,池子越大,造成的浪費(fèi)就越大,但池子太小,又可能滿足不了擴(kuò)容的需求。 

資源成本更深層次的分析

可能有的開發(fā)者會認(rèn)為,目前的業(yè)務(wù)運(yùn)行非常的穩(wěn)定,在用戶流量上并不存在明顯的突增,所以擴(kuò)容和縮容是一個(gè)偽需求,在將來也不會有這樣的需求。這可能是對互聯(lián)網(wǎng)業(yè)務(wù)的一種誤解,因?yàn)橥耆珱]有擴(kuò)容需求的情況是不存在的。

首先,只要一個(gè)系統(tǒng)是為人服務(wù)的,就必然存在波峰和波谷。對于一個(gè) 7*24 小時(shí)運(yùn)行的系統(tǒng),不可能永遠(yuǎn)保持同樣的用戶流量,二八原則對于很多業(yè)務(wù)系統(tǒng)依然適用( 80% 的用戶流量集中在 20% 的時(shí)間段)。即便是用戶流量相對平衡的系統(tǒng),在凌晨也存在流量的低谷,如果能更進(jìn)一步的釋放閑置計(jì)算資源,提升資源利用率,就能顯著的降低資源使用成本。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

另外,相比生產(chǎn)環(huán)境,開發(fā)和測試環(huán)境對于擴(kuò)容和縮容的需求會更加迫切。一套微服務(wù)應(yīng)用由不同的團(tuán)隊(duì)進(jìn)行開發(fā),在理想的情況下,多個(gè)團(tuán)隊(duì)會共享一套測試環(huán)境:

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

然而,每個(gè)團(tuán)隊(duì)對于應(yīng)用的迭代都會有自己的節(jié)奏,與此同時(shí),他們又想擁有獨(dú)立的端到端測試環(huán)境,從而實(shí)現(xiàn)環(huán)境之間的隔離,以避免團(tuán)隊(duì)之間的相互影響。這樣的話,很有可能會形成多套測試環(huán)境:

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

隨著應(yīng)用、團(tuán)隊(duì)、業(yè)務(wù)功能點(diǎn)數(shù)量的增加,所需要的開發(fā)測試環(huán)境數(shù)量還會成倍的增長,造成巨大的資源浪費(fèi)。對于測試環(huán)境的計(jì)算資源而言,資源利用率要遠(yuǎn)低于生產(chǎn)環(huán)境。有的時(shí)候僅僅是一個(gè)簡單功能點(diǎn)的驗(yàn)證,為了端對端的跑通業(yè)務(wù)功能,又避免團(tuán)隊(duì)之間的相互影響,就會開啟一套包括全部微服務(wù)應(yīng)用的新環(huán)境。這樣的資源浪費(fèi),對于很多企業(yè),都是一個(gè)多年都未曾得到解決的難題。 

因此,微服務(wù)架構(gòu)在本質(zhì)上就是對彈性伸縮有著強(qiáng)烈訴求的,在彈性伸縮的過程中,不管是單應(yīng)用的水平彈性伸縮,還是整套環(huán)境的啟停,資源利用率都對最終的資源成本起著決定性的作用。如果能想辦法提升資源利用率,就能為企業(yè)節(jié)省大量資源成本。值得我們重視的是,絕大多數(shù)的微服務(wù)應(yīng)用的資源利用率都是非常低的。

我們可以做一個(gè)簡單的統(tǒng)計(jì):把所有服務(wù)器的 CPU 利用率每 5 分鐘導(dǎo)出一次,按照天的維度求平均值,就能從整體上了解系統(tǒng)的資源利用率數(shù)據(jù)。如果把開發(fā)測試環(huán)境的服務(wù)器資源也納入統(tǒng)計(jì)的范圍,資源利用率很有可能會更低。 

Serverless 化探索

資源利用率低的根本原因,在于以服務(wù)器為載體的應(yīng)用架構(gòu)中,開發(fā)者需要將構(gòu)建好的程序包部署到服務(wù)器上,從而對多個(gè)用戶事件進(jìn)行響應(yīng)。為了確保事件響應(yīng)的及時(shí)性,需要讓程序長駐于服務(wù)器上,而且盡可能保守的規(guī)劃資源,以避免出現(xiàn)負(fù)載過重而導(dǎo)致服務(wù)崩潰的情況。在這個(gè)過程中,實(shí)際的負(fù)載在時(shí)間上分配并不均衡,從而導(dǎo)致整體的資源利用率偏低。

Serverless 技術(shù)的出現(xiàn),為提升資源利用率提供了新的思路。Serverless 是一種構(gòu)建和管理基于微服務(wù)架構(gòu)的完整流程,允許開發(fā)者脫離服務(wù)器資源而直接部署應(yīng)用。它與傳統(tǒng)架構(gòu)的不同之處在于,完全由第三方管理,由事件觸發(fā),存在于無狀態(tài)(Stateless)的計(jì)算容器內(nèi)。構(gòu)建無服務(wù)器應(yīng)用程序意味著開發(fā)者可以專注在產(chǎn)品代碼上,而無須管理和操作服務(wù)器資源,真正做到了部署應(yīng)用無需涉及基礎(chǔ)設(shè)施的建設(shè)。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

Serverless 技術(shù)存在多種形態(tài),最典型的一種是 FaaS(Function as a Service,函數(shù)即服務(wù)),比如阿里云的函數(shù)計(jì)算(Function Compute,F(xiàn)C)產(chǎn)品。在函數(shù)計(jì)算領(lǐng)域,一切計(jì)算資源的申請和調(diào)度都由具體的業(yè)務(wù)事件觸發(fā),當(dāng)業(yè)務(wù)事件所對應(yīng)的任務(wù)完成之后,計(jì)算資源會被立即釋放。這樣的方式真做到了計(jì)算資源的按需分配,能顯著提升資源利用率,是 Serverless 技術(shù)的終極形態(tài)。

另外一種是 Serverless 化的容器技術(shù),Serverless 化的容器實(shí)例運(yùn)行在案例隔離的環(huán)境中,每個(gè)計(jì)算節(jié)點(diǎn)通過輕量級虛擬化安全沙箱技術(shù)完全強(qiáng)隔離。對于使用者而言,無需購買服務(wù)器資源即可直接部署容器應(yīng)用,也無需對集群進(jìn)行節(jié)點(diǎn)維護(hù)和容量規(guī)劃,可以根據(jù)應(yīng)用配置的 CPU 和內(nèi)存資源量進(jìn)行按需付費(fèi)。當(dāng)微服務(wù)應(yīng)用需要擴(kuò)容的時(shí)候,就可以快速獲得計(jì)算資源,不需要再經(jīng)過購買服務(wù)器這個(gè)步驟了,可以幫助開發(fā)者降低計(jì)算成本,減少閑置資源浪費(fèi),平滑應(yīng)對突發(fā)流量高峰。阿里云的 Serverless Kubernetes (ASK)就是 Serverless 化容器技術(shù)的代表產(chǎn)品。 

更進(jìn)一步發(fā)掘開發(fā)者的訴求

Serverless 技術(shù)無縫是云計(jì)算和云原生應(yīng)用架構(gòu)的發(fā)展方向,但對于微服務(wù)應(yīng)用的開發(fā)者而言,不管是 FaaS 形態(tài),還是 Serverless Kubernetes ,都存在一定的局限性。

不是每一種業(yè)務(wù)都適合通過 FaaS 的方式進(jìn)行構(gòu)建,特別是對于鏈路長,上下游依賴特別明顯的應(yīng)用,根本沒有辦法進(jìn)行 FaaS 化改造。即便某些業(yè)務(wù)系統(tǒng)的 FaaS 化改造被證明可行,把現(xiàn)有的微服務(wù)架構(gòu)改造成 FaaS 架構(gòu)也需要一定的工作量,并不能做到無縫移植。

Serverless Kubernetes 架構(gòu)雖然能適配所有的業(yè)務(wù)場景,但對于開發(fā)者而言,構(gòu)建一整套 Kubernetes 體系,需要掌握一系列跟 Kubernetes 相關(guān)復(fù)雜的概念,有著非常陡的學(xué)習(xí)曲線。而且 Kubernetes 生態(tài)中各種組件的搭建,再加上網(wǎng)絡(luò)層與存儲層的適配,都涉及非常復(fù)雜的工作。

造成這種局限性的原因很簡單,在以 Spring Cloud 為代表的微服務(wù)技術(shù)陣營中,系統(tǒng)的構(gòu)建都是圍繞著應(yīng)用(也可以理解為單個(gè)的服務(wù))而展開,不管是版本更新還是水平擴(kuò)展,都是針對應(yīng)用本身。Serverless Kubernetes 架構(gòu)的核心在于 Pod ,比應(yīng)用更偏向系統(tǒng)底層,所以使用者需要投入更多的精力用于應(yīng)用下層資源的管理。而 FaaS 架構(gòu)的核心在于函數(shù),比應(yīng)用更偏向系統(tǒng)上層,因此靈活度會降低,不能適配所有的業(yè)務(wù)場景。

對于使用主流 Spring Cloud 體系或 Dubbo 體系構(gòu)建微服務(wù)應(yīng)用的開發(fā)者而言,如果需要引入一種方案降低資源成本,他的最終訴求一定包含兩個(gè)方面:

(1)能否零改造成本,或者接近零改造成本; (2)能否適配所有的業(yè)務(wù)場景。

應(yīng)用層 Serverless 技術(shù)

是否有一種介于 FaaS 和 Serverless 化容器之間的技術(shù),可以實(shí)現(xiàn)上述重要訴求呢?當(dāng)然有,這就是以阿里云 Serverless 應(yīng)用引擎(SAE)為代表的應(yīng)用層 Serverless 技術(shù)。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本 (圖:不同層級的 Serverless 技術(shù) )

SAE 實(shí)現(xiàn)了 Serverless 架構(gòu) + 微服務(wù)架構(gòu)的完美融合,對于 Spring Cloud 和 Dubbo 等主流的微服務(wù)架構(gòu),可以實(shí)現(xiàn)無縫兼容,基本上沒有改造成本,并真正按需使用、按量計(jì)費(fèi),節(jié)省閑置計(jì)算資源,同時(shí)免去 IaaS 層運(yùn)維方面的工作,有效提升開發(fā)運(yùn)維效率。

以 Spring Cloud 應(yīng)用為例,如果需要部署一個(gè)新的應(yīng)用,只需要 2 個(gè)步驟:

(1)告訴 SAE 這個(gè)應(yīng)用需要多少個(gè)實(shí)例,并指定每個(gè)實(shí)例需要的 CPU / 內(nèi)存規(guī)格。 (2)上傳應(yīng)用的 JAR 包 / WAR 包,并啟動應(yīng)用。

我們發(fā)現(xiàn),這兩個(gè)步驟中并不涉及容量評估、服務(wù)器購買、操作系統(tǒng)安裝、資源初始化等工作,就能讓包含多個(gè)對等實(shí)例的微服務(wù)應(yīng)用運(yùn)行起來。這是因?yàn)樵?Serverless 的世界中,不再具有服務(wù)器資源這樣的概念,應(yīng)用的載體是 SAE 調(diào)度出來的沙箱容器,每個(gè)實(shí)例只有在真正投入使用后,才會按使用時(shí)長進(jìn)行計(jì)費(fèi)。

對于開發(fā)者而言,他們不用關(guān)心應(yīng)用到底部署在物理機(jī)里面,還是虛擬機(jī)里面,或是容器里面,也不需要知道底層的操作系統(tǒng)是什么版本的,只需要關(guān)注每個(gè)應(yīng)用實(shí)例占據(jù)多少運(yùn)算資源就可以了。如果應(yīng)用需要從 4 個(gè)實(shí)例擴(kuò)容到 6 個(gè)實(shí)例,或者縮容到 2 個(gè)實(shí)例,只需要一個(gè)指令就可以完成,甚至與 SLB 的綁定關(guān)系,都可以自動的建立或解除,這是 Serverless 技術(shù)為開發(fā)者帶來的巨大價(jià)值。

使用 SAE 部署微服務(wù)應(yīng)用,因?yàn)橹皇亲兏藨?yīng)用運(yùn)行的載體,所以可以 100% 的兼容現(xiàn)有的技術(shù)架構(gòu)和業(yè)務(wù)功能,遷移成本可以忽略不計(jì)。 

SAE 的極致彈性能力

除了手動的擴(kuò)縮容指令,SAE 還支持 2 種自動彈性機(jī)制,可以對微服務(wù)應(yīng)用進(jìn)行靈活的水平擴(kuò)展,更進(jìn)一步的發(fā)揮云計(jì)算的彈性能力。

**定時(shí)彈性機(jī)制:**對于會預(yù)期發(fā)生的周期性行為,可以設(shè)置定時(shí)彈性策略。舉例:如果每天的上午 9 點(diǎn)是業(yè)務(wù)高峰,可以定時(shí)每天 8 點(diǎn)半增加實(shí)例數(shù)量,并在 9 點(diǎn)半減少實(shí)例數(shù)量。

**基于指標(biāo)閾值的彈性機(jī)制:**對于超出預(yù)期的業(yè)務(wù)流量突增,可以設(shè)置基于指標(biāo)閾值的彈性策略,根據(jù) CPU 、內(nèi)存等資源指標(biāo),以有 QPS 等業(yè)務(wù)指標(biāo)讓應(yīng)用實(shí)現(xiàn)自動的彈性縮。

通過多種彈性機(jī)制,能夠?qū)ο到y(tǒng)容量進(jìn)行精細(xì)粒度的管理,使資源的使用量能隨著業(yè)務(wù)流量的變化而調(diào)整,從而極大程度的增加資源利用率,大幅降低資源成本。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

在計(jì)算資源的調(diào)度和啟動上, SAE 做了多項(xiàng)優(yōu)化,對于擴(kuò)容出來的新實(shí)例,只需要幾秒鐘的時(shí)間就能拉起,這項(xiàng)能力對于一些需要緊急快速擴(kuò)容的突發(fā)場景,是具有重大意義的。

對于開發(fā)測試環(huán)境而言,SAE 的機(jī)制彈性能力能體現(xiàn)得更加淋漓盡致,得益于 SAE 出色的資源調(diào)度能力,可以一鍵啟停一整套微服務(wù)應(yīng)用。即便僅對一項(xiàng)簡單的新功能進(jìn)行冒煙測試,也完全可以新啟一套完整而隔離的測試環(huán)境來進(jìn)行。新的環(huán)境可以在秒級搭建完成,快速投入使用,而測試完畢后,又可以立即釋放。從成本上來講,一套新環(huán)境實(shí)際投入使用的時(shí)間很短,因此只會消耗極少的費(fèi)用。這對于微服務(wù)應(yīng)用開發(fā)過程中的多團(tuán)隊(duì)協(xié)作,是一個(gè)巨大的變革。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

成本分析

SAE 通過資源的實(shí)際使用量來付費(fèi),費(fèi)用由兩部分組成,每部分根據(jù)統(tǒng)計(jì)結(jié)果和計(jì)算方式進(jìn)行費(fèi)用結(jié)算,按小時(shí)出賬單扣款。每個(gè)應(yīng)用使用的資源計(jì)量方式如下所示:

應(yīng)用 CPU 資源使用量=∑實(shí)例 CPU 規(guī)格×本月運(yùn)行時(shí)長(以分鐘計(jì)),即應(yīng)用中所有實(shí)例的 CPU 規(guī)格乘以本月運(yùn)行時(shí)長的總和。

應(yīng)用內(nèi)存資源使用量=∑實(shí)例內(nèi)存規(guī)格×本月運(yùn)行時(shí)長(以分鐘計(jì)),即應(yīng)用中所有實(shí)例的內(nèi)存規(guī)格乘以本月運(yùn)行時(shí)長的總和。

其中 CPU 部分的價(jià)格為 0.0021605 元/分鐘/Core,內(nèi)存部分的價(jià)格為 0.0005401 元/分鐘/GiB。SAE 還提供預(yù)付費(fèi)資源包,相當(dāng)于批發(fā)的方式預(yù)購計(jì)算資源,只要能要有效期內(nèi)消耗完,就能更進(jìn)一步的節(jié)省使用成本,當(dāng)資源包扣完以后,系統(tǒng)會自動變更為按量付費(fèi)的模式。

讓我們通過一個(gè)實(shí)際案例來進(jìn)一步體會 SAE 如何幫助微服務(wù)應(yīng)用降低資源成本。假設(shè)一個(gè)微服務(wù)系統(tǒng)包含 87 個(gè)應(yīng)用實(shí)例,每個(gè)時(shí)間每天的平均運(yùn)行時(shí)長為 8 小時(shí),實(shí)例的配置為 2 Core + 4 GiB + 20 G 磁盤。

  • 使用包年包月的 ECS 部署應(yīng)用:需要購買 87 臺計(jì)算型 c5 ,單臺的月成本為 186 元,每月總成本 16146 元。

  • 使用按量付費(fèi)的 ECS 部署應(yīng)用:單臺價(jià)格為 0.63 元/小時(shí),每月累計(jì)使用 20880 小時(shí),總成本 13154 元。

  • 使用 SAE 部署應(yīng)用:購買 1 個(gè) 75000 元的包年資源包,87 個(gè)實(shí)例每天運(yùn)行 8 個(gè)小時(shí),剛好把資源包額度用完,折合每月總成本 6250 元。

從這個(gè)對比我們可以得出,只要能夠合理的運(yùn)行 SAE 的彈性能力,就可以為微服務(wù)應(yīng)用大幅度降低資源成本。  

附加能力

SAE 除了可以簡化運(yùn)維工作量,降低資源成本以外,還為微服務(wù)應(yīng)用提升了一系列附加的功能,這是應(yīng)用層 Serverless 技術(shù)為開發(fā)者帶來的額外價(jià)值,我們可以盡可能的利用這些開箱即用的功能,讓建設(shè)微服務(wù)應(yīng)用變成更加簡單。

**完整的應(yīng)用生命周期管理:**應(yīng)用托管至 SAE 后,可以對應(yīng)用執(zhí)行更新、擴(kuò)縮容、啟停、刪除、監(jiān)控啟停等應(yīng)用生命周期管理操作。

**開箱即用的注冊中心:**SAE 自帶商業(yè)版 Nacos 注冊中心,可以免費(fèi)使用,不需要自行搭建。如果有特殊的需求,比如讓部署在 SAE 的應(yīng)用和其他應(yīng)用相互發(fā)現(xiàn),也可以使用微服務(wù)引擎(MSE)產(chǎn)品提供的注冊中心,或者自建的注冊中心。

**開箱即用的配置管理中心:**SAE 集成了 ACM(Application Configuration Management,應(yīng)用配置管理)中的配置管理功能,可以在 SAE 中使用 ACM 對應(yīng)用配置進(jìn)行集中管理。

應(yīng)用級流量防護(hù): SAE 集成 AHAS 實(shí)現(xiàn)應(yīng)用級別的流控與降級能力,全面保障應(yīng)用的高可用性。

**監(jiān)控能力:**應(yīng)用托管到 SAE 以后,可以免費(fèi)獲得基礎(chǔ)資源(包括 CPU、內(nèi)存、負(fù)載和網(wǎng)絡(luò))以及應(yīng)用層(包括 JVM 分析、接口調(diào)用分析等方面)的監(jiān)控能力。如果需要更高級的 SQL 分析、異常分析、鏈路上下游和接口快照,可以集成阿里云應(yīng)用時(shí)間監(jiān)控產(chǎn)品(ARMS)。

**CI/CD 集成能力:**SAE 與云效、云效 2020、 Jenkins 等產(chǎn)品進(jìn)行了深入集成,可以方便開發(fā)者將構(gòu)建好的應(yīng)用快速部署。

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

多語言支持

對于非 Java 語言編寫的應(yīng)用,或者沒有使用 Spring Cloud 等微服務(wù)框架的 Java 應(yīng)用, SAE 能不能完美支持,并幫助企業(yè)降低資源成本呢?

當(dāng)然是可以的。SAE 提供容器鏡像部署方式,這就代表著不管采用哪種編程語言,只要最終的應(yīng)用能夠發(fā)布成容器鏡像,就可以部署在 SAE 上。

對于 Java 系的微服務(wù)應(yīng)用, Java 系統(tǒng)的普通應(yīng)用,以及非 Java 系應(yīng)用而言,SAE 的極致彈性能力并沒有本質(zhì)的區(qū)別,都能通過 Serverless 技術(shù)提供系統(tǒng)的資源利用率。只不過 SAE 提供的一些附加價(jià)值,比如免費(fèi)的微服務(wù)注冊中心,就只能為 Spring Cloud 或 Dubbo 應(yīng)用服務(wù)罷了。 

讓我們用這張圖回顧 Serverless 技術(shù)的巨大價(jià)值:

如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本

常見問題

1.問:應(yīng)用實(shí)例沒有固定的機(jī)器資源,連固定的 IP 地址都沒有,如何 SSH 到一臺服務(wù)器排查問題?

答:并不需要有固定的機(jī)器資源和固定的IP地址才能排查問題,在云計(jì)算時(shí)代,通過 SSH 登錄到一臺機(jī)器排查問題的方式并不是一個(gè)好的實(shí)踐。相反, SAE 提供了完善的監(jiān)控能力,還可以方便的與云監(jiān)控、 ARMS 等新一代監(jiān)控診斷類產(chǎn)品進(jìn)行了集成,為排查故障提供了更大的便利。當(dāng)然,如果一定要登錄到某一臺機(jī)器,SSH 依然是可以支持的,也可以利用 SAE 提供的 Webshell 工具簡化這個(gè)流程。

2.問:磁盤不是計(jì)費(fèi)的維度嗎?應(yīng)用需要大容量磁盤怎么辦?應(yīng)用重啟后碰盤中的數(shù)據(jù)還保留嗎?

答:在微服務(wù)領(lǐng)域,應(yīng)用一般是無狀態(tài)(Stateless)的,不需要保存大量的本地?cái)?shù)據(jù)。如果在特殊的場景下離不開這個(gè)需求,可以集成 NAS ,使用集中式的存儲實(shí)現(xiàn)。

3.問:應(yīng)用的日志怎么查看?

答:SAE 控制臺界面提供了對于文件日志的實(shí)時(shí)查閱能力,相當(dāng)于免費(fèi)提供了一個(gè)分布式日志采集平臺。當(dāng)然強(qiáng)烈建議接入阿里云日志服務(wù)(SLS)產(chǎn)品,更進(jìn)一步的發(fā)揮應(yīng)用日志的價(jià)值。

上述就是小編為大家分享的如何通過Serverless 技術(shù)降低微服務(wù)應(yīng)用資源成本了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前名稱:如何通過Serverless技術(shù)降低微服務(wù)應(yīng)用資源成本
當(dāng)前地址:http://weahome.cn/article/pdsooi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部