自动化 CICD 与灰度发布
作者 | 江昱 阿里云高級(jí)產(chǎn)品經(jīng)理
導(dǎo)讀:本文主要分享 Serverless 場(chǎng)景下,自動(dòng)化的部署和灰度發(fā)布的相關(guān)問(wèn)題。
環(huán)境管理和自動(dòng)化部署
當(dāng)我們從傳統(tǒng)開(kāi)發(fā)遷移到 Serverless 下,對(duì)于環(huán)境和部署的管理思路也會(huì)有所不同。當(dāng)用戶(hù)轉(zhuǎn)到 Serverless ,可以輕松地提供更多的環(huán)境,而這個(gè)好處常被忽略。
當(dāng)我們開(kāi)發(fā)項(xiàng)目時(shí),通常需要一個(gè)生產(chǎn)環(huán)境,然后需要預(yù)發(fā)環(huán)境,還有一些測(cè)試環(huán)境。但通常每個(gè)環(huán)境都需要消耗資源和成本,以保持服務(wù)在線。而大多數(shù)時(shí)候非生產(chǎn)環(huán)境上的訪問(wèn)量非常少,為此付出大量的成本很不劃算。
但是,在 Serverless 架構(gòu)中,我們可以為每位開(kāi)發(fā)人員提供一個(gè)準(zhǔn)生產(chǎn)環(huán)境。做 CI/CD 的時(shí)候,可以為每個(gè)功能分支創(chuàng)建獨(dú)立的演示環(huán)境。
當(dāng)團(tuán)隊(duì)成員在開(kāi)發(fā)功能或者修復(fù) bug 時(shí),想要預(yù)覽新功能,就可以立即部署,而不需要在自己機(jī)器上模擬或者找其他同事協(xié)調(diào)測(cè)試環(huán)境的使用時(shí)間。
這一切都受益于 Serverless,我們不需要為空閑資源付費(fèi)。當(dāng)我們?nèi)ゲ渴鹉切┗緵](méi)有訪問(wèn)量的環(huán)境時(shí),成本是極低的。
由于部署新環(huán)境變得很容易,對(duì)于自動(dòng)化部署的要求就變高了。當(dāng)然無(wú)論是否采用 Serverless 架構(gòu),自動(dòng)化部署都很重要。能否自動(dòng)化地構(gòu)建、部署和創(chuàng)建整個(gè)環(huán)境是判斷開(kāi)發(fā)團(tuán)隊(duì)優(yōu)秀與否的重要因素。在 serverless 場(chǎng)景,這種能力尤為重要,因?yàn)橹挥羞@樣才能充分利用平臺(tái)的優(yōu)勢(shì)。
后面的課程我們會(huì)了解到,借助于函數(shù)計(jì)算平臺(tái)提供的 Funcraft 工具,開(kāi)發(fā)人員可以用從前做不到的方式在準(zhǔn)生產(chǎn)環(huán)境中輕松部署和測(cè)試代碼。
灰度發(fā)布
由于 Serverless 提供的彈性機(jī)制,沒(méi)有訪問(wèn)量的時(shí)候能自動(dòng)縮容到零,極大地節(jié)約了部署的多環(huán)境的成本。然而在同一套環(huán)境內(nèi)的多個(gè)不同的版本也可以受益于這套機(jī)制。
傳統(tǒng)應(yīng)用雖然也支持在一個(gè)環(huán)境中并存多個(gè)版本,但相比于 Serverless 更加困難。首先每個(gè)版本都需要相對(duì)獨(dú)立的運(yùn)行環(huán)境,會(huì)消耗更多的資源。其次需要解決多個(gè)版本之間流量的分配問(wèn)題。
在 FaaS 上這些問(wèn)題已經(jīng)被版本和別名機(jī)制完美的解決。由于沒(méi)有流量就不消耗計(jì)算資源,所以發(fā)布一個(gè)版本的成本極低,每次發(fā)布都可以形成一個(gè)版本。然后通過(guò)別名進(jìn)行版本的切換和流量分配。
基于 FaaS 的這套抽象,讓灰度發(fā)布和 A/B 測(cè)試變得非常的簡(jiǎn)單。不再需要像 K8s 那樣復(fù)雜的基礎(chǔ)設(shè)置,開(kāi)發(fā)者也能輕松地享受到平滑升級(jí)和快速驗(yàn)證的高級(jí)特性。
結(jié)語(yǔ)
Serverless 讓開(kāi)發(fā)和部署都變得更加的簡(jiǎn)單。希望您能繼續(xù)探索其他 Serverless 和函數(shù)計(jì)算的內(nèi)容,更多相關(guān)的資料可以訪問(wèn)函數(shù)計(jì)算的產(chǎn)品頁(yè) https://www.aliyun.com/product/fc
總結(jié)
以上是生活随笔為你收集整理的自动化 CICD 与灰度发布的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。