1. 一文搞懂藍綠發(fā)布、灰度發(fā)布和滾動發(fā)布

        共 1551字,需瀏覽 4分鐘

         ·

        2020-11-12 12:27

        應用程序升級面臨最大挑戰(zhàn)是新舊業(yè)務切換,將軟件從測試的最后階段帶到生產(chǎn)環(huán)境,同時要保證系統(tǒng)不間斷提供服務。

        長期以來,業(yè)務升級漸漸形成了幾個發(fā)布策略:藍綠發(fā)布、灰度發(fā)布和滾動發(fā)布,目的是盡可能避免因發(fā)布導致的流量丟失或服務不可用問題。

        一、 藍綠發(fā)布

        項目邏輯上分為AB組,在項目系統(tǒng)時,首先把A組從負載均衡中摘除,進行新版本的部署。B組仍然繼續(xù)提供服務。??


        當A組升級完畢,負載均衡重新接入A組,再把B組從負載列表中摘除,進行新版本的部署。A組重新提供服務。??



        最后,B組也升級完成,負載均衡重新接入B組,此時,AB組版本都已經(jīng)升級完成,并且都對外提供服務。

        特點

        • 如果出問題,影響范圍較大;

        • 發(fā)布策略簡單;

        • 用戶無感知,平滑過渡;

        • 升級/回滾速度快。

        缺點

        • 需要準備正常業(yè)務使用資源的兩倍以上服務器,防止升級期間單組無法承載業(yè)務突發(fā);

        • 短時間內浪費一定資源成本;

        • 基礎設施無改動,增大升級穩(wěn)定性。


        藍綠發(fā)布在早期物理服務器時代,還是比較昂貴的,由于云計算普及,成本也大大降低。

        二、 灰度發(fā)布

        灰度發(fā)布只升級部分服務,即讓一部分用戶繼續(xù)用老版本,一部分用戶開始用新版本,如果用戶對新版本沒什么意見,那么逐步擴大范圍,把所有用戶都遷移到新版本上面來。

        特點

        • 保證整體系統(tǒng)穩(wěn)定性,在初始灰度的時候就可以發(fā)現(xiàn)、調整問題,影響范圍可控;

        • 新功能逐步評估性能,穩(wěn)定性和健康狀況,如果出問題影響范圍很小,相對用戶體驗也少;

        • 用戶無感知,平滑過渡。

        缺點

        • 自動化要求高

        部署過程

        • 從LB摘掉灰度服務器,升級成功后再加入LB;

        • 少量用戶流量到新版本;

        • 如果灰度服務器測試成功,升級剩余服務器。


        灰度發(fā)布是通過切換線上并存版本之間的路由權重,逐步從一個版本切換為另一個版本的過程。

        三、 滾動發(fā)布

        滾動發(fā)布是指每次只升級一個或多個服務,升級完成后加入生產(chǎn)環(huán)境,不斷執(zhí)行這個過程,直到集群中的全部舊版本升級新版本。?


        • 紅色:正在更新的實例

        • 藍色:更新完成并加入集群的實例

        • 綠色:正在運行的實例

        特點

        • 用戶無感知,平滑過渡;

        • 節(jié)約資源。

        缺點

        • 部署時間慢,取決于每階段更新時間;

        • 發(fā)布策略較復雜;

        • 無法確定OK的環(huán)境,不易回滾。

        部署過程

        • 先升級1個副本,主要做部署驗證;

        • 每次升級副本,自動從LB上摘掉,升級成功后自動加入集群;

        • 事先需要有自動更新策略,分為若干次,每次數(shù)量/百分比可配置;

        • 回滾是發(fā)布的逆過程,先從LB摘掉新版本,再升級老版本,這個過程一般時間比較長;

        • 自動化要求高。

        小結

        綜上所述,三種方式均可以做到平滑式升級,在升級過程中服務仍然保持服務的連續(xù)性,升級對外界是無感知的。那生產(chǎn)上選擇哪種部署方法最合適呢?這取決于哪種方法最適合你的業(yè)務和技術需求。如果你們運維自動化能力儲備不夠,肯定是越簡單越好,建議藍綠發(fā)布,如果業(yè)務對用戶依賴很強,建議灰度發(fā)布。如果是K8S平臺,滾動更新是現(xiàn)成的方案,建議先直接使用。

        • 藍綠發(fā)布:兩套環(huán)境交替升級,舊版本保留一定時間便于回滾。

        • 灰度發(fā)布:根據(jù)比例將老版本升級,例如80%用戶訪問是老版本,20%用戶訪問是新版本。

        • 滾動發(fā)布:按批次停止老版本實例,啟動新版本實例。


        - END -


        ?推薦閱讀?

        詳解負載神器 LVS、Nginx及HAProxy工作原理
        服務端TCP連接的TIME_WAIT過多問題的分析與解決
        運維工程師必備技能:網(wǎng)絡排錯思路大講解
        在項目實踐中,進行了以下DevOps方案建設
        Linux系統(tǒng)常用命令速查手冊
        Java 應用最常見的3個問題排查思路
        讓運維簡單高效,輕松搞定運維管理平臺



        點亮,服務器三年不宕機

        瀏覽 30
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 色情视频在线观看 | 做爱美女在线观看视频免费 | 成人网站在线观看高清无码 | 人妖精品人妖TS视频在线观看 | 女尊调教男仆扒开臀缝打屁股 |