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