灰度發佈是什麼?

聽羣裏大牛聊天,又聽到一個新的詞彙,灰度發佈。
搜索了一圈,寫寫自己的理解

灰度發佈

我第一個想到了灰色收入,多指那些不正當的收入。
灰度發佈似乎是介於發佈和不發佈中間的一個地帶。而且常見於互聯網公司。爲了不影響用戶的使用,不中斷服務進行升級。

尤其是體量巨大的互聯網公司幾乎沒有哪家會發布公告,停機更新。

灰度發佈是指在黑與白之間,能夠平滑過渡的一種發佈方式。AB test就是一種灰度發佈方式,讓一部分用戶繼續用A,一部分用戶開始用B,如果用戶對B沒有什麼反對意見,那麼逐步擴大範圍,把所有用戶都遷移到B上面來。灰度發佈可以保證整體系統的穩定,在初始灰度的時候就可以發現、調整問題,以保證其影響度。

對於app來說,可以通過對用戶行爲的推斷,例如每次更新版本就會有一批用戶熱衷於嚐鮮,也有一部分用戶,基本從不更新。在這批用戶使用過程中,根據他們的意見改進,同時也可以測試生產環境下新的系統,算法等健壯性,穩定性。爲真正發佈版本提供寶貴的反饋。

對於一個後臺服務的升級,通常企業級都需要集羣來提供服務,通過調節負載均衡的權重,讓新的代碼暫時只處理少部分的業務,根據生產環境下的日誌信息等,修改bug,優化性能。逐漸完善,同時逐漸增加新服務的權重,平穩的過渡到新系統上。

系統的升級總是伴隨着風險,無論測試過幾遍,總是不可能完全覆蓋生產環境上的極端情況。

傳統的升級,被稱爲系統的切割,老系統退役,新系統上線。一旦出現問題,回退非常的棘手。但是灰度發佈可以靈活的處理這些問題,把不可控因素一點點暴露,不會導致災難性的服務停止。

微信前不久推出了實驗室這個功能,裏面包括了搜一搜,看一看等。

其實這個先進的想法來自於google lab。google lab可以讓用戶自己選擇是否嘗試新的特性,並且可以隨時關閉,可以說是非常的人性化,也可以看到國內企業在吸收國際公司的有點。

參考文章都非常的不錯,分享給大家,有興趣的可以看一看。

關於灰度發佈的實現方法,架構邏輯等等,不要覺得自己離這些很遙遠,做一個視野廣闊的程序員。

參考文章

http://blog.csdn.net/hys19920320/article/details/50899932
http://blog.csdn.net/aresiii/article/details/49125369
http://www.jianshu.com/p/eeceac29f390

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章