1. 程式人生 > >灰度釋出-藍綠、金絲雀、ABTesting

灰度釋出-藍綠、金絲雀、ABTesting

藍綠

主要思路是在新版本在另一套獨立的資源上上線,新版本起來後將所有流量從老版本切換到新版本上來。當新版本工作正常,則刪除老版本,當新版本工作有問題,則快速能切回到老版本。因此藍綠髮布看上是一種熱部署的方式,目的是減少釋出過程中的服務停止時間。

可以看到因為兩個版本都是可用,其升級切換和回退速度非常快。為了達到這種快速切換付出的代價是搞冗餘的資源,即2倍的原有資源,分別部署新老版本。此外一個問題是全量的切流量,如果新版本有問題,則所有的使用者將受影響。

ABTesting

場景比較明確,就是同時線上兩個版本接收流量,比較哪個版本更被訪問者接受。

當一個版本A線上處被使用,上一個新的灰度版本B,選擇一部分試驗客戶,通過評價使用者訪問來驗證不同版本在可用性、受歡迎程式等實際表現上。類似於網際網路公司同一個產品交給兩個AB團隊做,最後評價留下一個幹掉一個。

所以ABTesting裡面比較重要的環境是Test前的設計和Test後的評估。即要規劃好怎麼開始測試,是隨機的分一部分流量到灰度版本B上,還是把特定的訪問者,如來自某個區域的,某種特徵的使用者導流到灰度版本上。尤其是後者的決策過程可能是一個非常複雜或者業務特點非常強的過程,怎麼能對的斃掉一個版本,留下另外一個版本,所以一般灰度釋出都有一個平臺在支撐,除了流程上的支撐外,收集資料來支援決策是非常重要的一方面。

金絲雀釋出(灰度釋出)

從形態上看ABTest和金絲雀基本上沒有差別,都是兩個版本同時線上,引部分流量到一個灰度版本上,但ABTest更側重於有目的比較AB兩個版本的差異,並進行決策。

灰度釋出是指在黑白之間,能夠平滑過度的一種釋出方式 。類度釋出是在原有版本可用的的情況下,同是部署一個新版本應用作為“金絲雀”(金絲雀對瓦斯極敏感,礦井工人攜帶金絲雀,以便及時發現危險)。