常用于生产部署方式详解 灰度发布 滚动发布 蓝绿发布
傳統(tǒng)型
??????????????? 這種方式基本上很多中小型企業(yè)都在用,尤其是政府或是對企業(yè)內(nèi)部的系統(tǒng)。通常都是直接停服務,將正在運行的程序包備份到指定目錄,將新的程序包上傳到服務器,停服務,替換老的包,啟動服務。
????? 優(yōu)點:
??????????????? 1、操作人員容易理解,服務少時操作簡單。
????????????????? 2、節(jié)省資源。
????? 缺點:
?????????????? 1、服務多的時候操作繁瑣,效率極低。
???????????????? 2、需要停很長時間服務,所以通常都是晚上或是用戶不使用階段進行。如果是要求停服務時間短的產(chǎn)品或是公司不建議使用這種方式。
?
藍綠發(fā)布
??????? 什么是藍綠發(fā)布?
??????? 理解:就是在運行環(huán)境下再每個服務對應的準備一套服務器,例如:現(xiàn)在生產(chǎn)時A套服務服務器,再根據(jù)A套服務器準備相同數(shù)據(jù)的服務器(B),在發(fā)布的時候在B服務上部署本次要上生產(chǎn)的服務。然后啟動B套服務器上的服務,切網(wǎng)關(guān)代理到B上,停A上的上官服務。通常生產(chǎn)上部署在的A稱為藍色,部署在B上的稱為綠色。
??????? 優(yōu)點:
?????????????????? 1、在綠色環(huán)境下進行測試驗證,驗證通過后可以直接切換為生產(chǎn)。
?????????????????? 2、停服務時間幾乎可以忽略,用戶無感知,平滑過渡。
?????????????????? 3、回退速度非???。
??????? 缺點:
?????????????????? 1、服務器是需要的二倍,成本較高。
?????????????????? 2、服務配置等操作更復雜。
????????????????
?
滾動發(fā)布
??????? 什么是滾動發(fā)布?
??????? 主要是解決藍綠發(fā)布設(shè)備硬件倍增的問題。新服務和老服務是混在一起的。就是在升級部署過程中,并不是啟動所有新版本服務,而是先啟動一臺新版本,再停止一臺老版本,然后再啟動一臺新版本,再停止一臺老版本,直到升級完成,這樣的話,如果日常需要10臺服務器,那么升級過程中也就只需要11臺就行了。
?
??????? 優(yōu)勢:
??????????????? 1、用戶無感知,平滑過渡
??????????????? 2、服務器成本新增較低。
??????? 劣勢:
??????????????? 1、回滾困難,尤其是微服務,互相調(diào)用關(guān)系復雜情況下那將是災難的。將新版本流量從 LB 上摘除,清除新版本,發(fā)老版本,再將 LB 流量接入老版本。和發(fā)布過程一樣。
??????????????? 2、部署時間慢,取決于每階段更新時間;
??????????????? 3、發(fā)布策略較復雜;
灰度發(fā)布(金絲雀發(fā)布)
??????? 什么是灰度發(fā)布?
????????灰度發(fā)布只升級部分服務,類似于藍綠部署,但又不完全相同?;叶劝l(fā)布采用對用戶有篩選的分流機制,將新版本應用只針對少量用戶開放,在保障整體系統(tǒng)穩(wěn)定的情況下,盡早發(fā)現(xiàn)、調(diào)整問題,這種方式也叫金絲雀發(fā)布。只準備幾臺服務器,在上面部署新版本的系統(tǒng)并測試驗證。測試通過之后,擔心出現(xiàn)意外,還不敢立即更新所有的服務器。 先將線上的一萬臺服務器中的10臺更新為最新的系統(tǒng),然后觀察驗證。確認沒有異常之后,再將剩余的所有服務器更新。
灰度發(fā)布操作過程:
1、區(qū)分用戶規(guī)則,就是讓那些用戶走那些服務。可以一用權(quán)重、權(quán)限、用戶id等來區(qū)分控制。
2、預制規(guī)則代碼,在網(wǎng)關(guān)中寫好。
3、看選用的什么區(qū)分控制方式,來確定是否需要修改元數(shù)據(jù)。
如果選用權(quán)重的方式那么只需要在網(wǎng)關(guān)中將規(guī)則代碼寫好即可。
?
優(yōu)點:
??????? 1、用戶無感知,平滑過渡。
????????2、初始灰度的時候就可以發(fā)現(xiàn)、調(diào)整問題,影響范圍可控。
??????? 3、相對節(jié)省服務器成本。
缺點:
??????? 1、時間成本高,整個灰度從前期的灰度策略直到最后完全上線要耗費很大的時間
同時維護新舊兩套代碼、兩套配置,以及版本之間的耦合問題
??????? 2、自動化要求高
可以支持A/B測試:就是一部份用戶A使用,一部分用戶B來測試。
參考:1、常見應用發(fā)布方式淺析_zhinengyunwei的博客-CSDN博客_應用發(fā)布
?????????? 2、一文搞懂藍綠發(fā)布、灰度發(fā)布和滾動發(fā)布 - 努力哥 - 博客園
??????? ?
總結(jié)
以上是生活随笔為你收集整理的常用于生产部署方式详解 灰度发布 滚动发布 蓝绿发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle查询所有表结构和表名称及备注
- 下一篇: gitlub统计一个人提交代码行数