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