灰度發(fā)布

藍(lán)綠部署

藍(lán)綠部署叁怪,英文名為 Blue Green Deployment蕊连,是一種可以保證系統(tǒng)在不間斷提供服務(wù)的情況下上線的部署方式缎脾。

如何保證系統(tǒng)不間斷提供服務(wù)呢祝闻?那就是同時部署兩個集群,但僅對外提供一個集群的服務(wù)遗菠,當(dāng)需要升級時联喘,切換集群進(jìn)行升級华蜒。藍(lán)綠部署無需停機(jī),并且風(fēng)險較小豁遭。其大致步驟為:

部署集群 1 的應(yīng)用(初始狀態(tài))叭喜,將所有外部請求的流量都打到這個集群上
部署集群 2 的應(yīng)用,集群 2 的代碼與集群 1 不同蓖谢,如新功能或者 Bug 修復(fù)等
將流量從集群 1 切換到集群 2
如集群 2 測試正常捂蕴,就刪除集群 1 正在使用的資源(例如實例),使用集群 2 對外提供服務(wù)

因為在使用藍(lán)綠部署的方式時闪幽,我們需要控制流量啥辨,所以我們需要借助路由服務(wù),如 Nginx 等盯腌。

滾動部署

滾動部署溉知,英文名為 Rolling Update,同樣是一種可以保證系統(tǒng)在不間斷提供服務(wù)的情況下上線的部署方式腊嗡。和藍(lán)綠部署不同的是着倾,滾動部署對外提供服務(wù)的版本并不是非此即彼拾酝,而是在更細(xì)的粒度下平滑完成版本的升級燕少。

如何做到細(xì)粒度平滑升級版本呢?滾動部署只需要一個集群蒿囤,集群下的不同節(jié)點可以獨立進(jìn)行版本升級客们。比如在一個 12 節(jié)點的集群中,我們每次升級 4 個節(jié)點材诽,并將升級后的節(jié)點重新投入使用底挫,周而復(fù)始,直到集群中所有的節(jié)點都更新為新版本脸侥。

這種部署方式相對于藍(lán)綠部署建邓,更加節(jié)約資源,因為它不需要運行兩個集群睁枕。但這種方式也有很多缺點官边,例如:

沒有一個確定 OK 的環(huán)境。使用藍(lán)綠部署外遇,我們能夠清晰地知道老版本是 OK 的注簿,而使用滾動發(fā)布,我們無法確定跳仿。
修改了現(xiàn)有的環(huán)境诡渴。
如果需要回滾,很困難菲语。舉個例子妄辩,在某一次發(fā)布中惑灵,我們需要更新 100 個實例,每次更新 10 個實例眼耀,每次部署需要 5 分鐘泣棋。當(dāng)滾動發(fā)布到第 80 個實例時,發(fā)現(xiàn)了問題畔塔,需要回滾潭辈。這時,我們估計就要瘋了澈吨。
有的時候把敢,我們還可能對系統(tǒng)進(jìn)行動態(tài)伸縮,如果部署期間谅辣,系統(tǒng)自動擴(kuò)容/縮容了修赞,我們還需判斷到底哪個節(jié)點使用的是哪個代碼。盡管有一些自動化的運維工具桑阶,但是依然令人心驚膽戰(zhàn)柏副。

并不是說滾動發(fā)布不好,滾動發(fā)布也有它非常合適的場景蚣录。

金絲雀部署

金絲雀部署又稱灰度部署(或者割择,灰度發(fā)布),英文名為 Canary Deployment萎河,是指在黑與白之間荔泳,能夠平滑過渡的一種發(fā)布方式。

金絲雀的名稱來源于「礦井中的金絲雀」虐杯,早在 17 世紀(jì)玛歌,英國礦井工人發(fā)現(xiàn),金絲雀對瓦斯這種氣體十分敏感擎椰,空氣中哪怕有極其微量的瓦斯支子,金絲雀也會停止歌唱;而當(dāng)瓦斯含量超過一定限度時达舒,雖然魯鈍的人類毫無察覺值朋,金絲雀卻早已毒發(fā)身亡。當(dāng)時在采礦設(shè)備相對簡陋的條件下休弃,工人們每次下井都會帶上一只金絲雀作為“瓦斯檢測指標(biāo)”吞歼,以便在危險狀況下緊急撤離。

我們來看一下金絲雀部署的步驟:

準(zhǔn)備好部署各個階段的工件塔猾,包括:構(gòu)建工件篙骡,測試腳本,配置文件和部署清單文件
從負(fù)載均衡列表中移除掉“金絲雀”服務(wù)器
升級“金絲雀”應(yīng)用(切斷原有流量并進(jìn)行部署)
對應(yīng)用進(jìn)行自動化測試
將“金絲雀”服務(wù)器重新添加到負(fù)載均衡列表中(連通性和健康檢查)
如果“金絲雀”在線使用測試成功,升級剩余的其他服務(wù)器(否則就回滾)

在金絲雀部署中糯俗,常常按照用戶量設(shè)置路由權(quán)重尿褪,例如 90% 的用戶維持使用老版本,10% 的用戶嘗鮮新版本得湘。不同版本應(yīng)用共存杖玲,經(jīng)常與 A/B 測試一起使用,用于測試選擇多種方案淘正。

金絲雀部署比較典型的例子摆马,就是我們在使用某個應(yīng)用的時候,該應(yīng)用邀請我們進(jìn)行“內(nèi)測”或者“新版本體驗”鸿吆,如果我們同意了囤采,那么我們就成了金絲雀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惩淳,一起剝皮案震驚了整個濱河市蕉毯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌思犁,老刑警劉巖代虾,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異激蹲,居然都是意外死亡棉磨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門托呕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來含蓉,“玉大人,你說我怎么就攤上這事项郊。” “怎么了斟赚?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵着降,是天一觀的道長。 經(jīng)常有香客問我拗军,道長任洞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任发侵,我火速辦了婚禮交掏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刃鳄。我一直安慰自己盅弛,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挪鹏,像睡著了一般见秽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上讨盒,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天解取,我揣著相機(jī)與錄音,去河邊找鬼返顺。 笑死禀苦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遂鹊。 我是一名探鬼主播伦忠,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稿辙!你這毒婦竟也來了昆码?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤邻储,失蹤者是張志新(化名)和其女友劉穎赋咽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吨娜,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡脓匿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宦赠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陪毡。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖勾扭,靈堂內(nèi)的尸體忽然破棺而出毡琉,到底是詐尸還是另有隱情,我是刑警寧澤妙色,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布桅滋,位于F島的核電站,受9級特大地震影響身辨,放射性物質(zhì)發(fā)生泄漏丐谋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一煌珊、第九天 我趴在偏房一處隱蔽的房頂上張望号俐。 院中可真熱鬧,春花似錦定庵、人聲如沸吏饿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽找岖。三九已至陨倡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間许布,已是汗流浹背兴革。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留蜜唾,地道東北人杂曲。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像袁余,于是被迫代替她去往敵國和親擎勘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容