欧美日本国产一区,国产农村妇女毛片精品久久莱园子,国产精品视频一区二区三区,777gn亚洲综合国产

云原生時(shí)代的灰度發(fā)布有幾種“姿勢(shì)”?

發(fā)布日期:2022-12-25 14:31:27

分享到

隨著企業(yè)數(shù)字化轉(zhuǎn)型進(jìn)程不斷發(fā)展,云原生時(shí)代的來(lái)臨,企業(yè)應(yīng)用越來(lái)越多,不得不面對(duì)應(yīng)用程序升級(jí)的巨大挑戰(zhàn)。傳統(tǒng)的停機(jī)發(fā)布方式,新舊版本應(yīng)用切換少則停機(jī)30分鐘,多則停機(jī)10小時(shí)以上,愈發(fā)無(wú)法滿足業(yè)務(wù)端的需求。

“業(yè)務(wù)無(wú)感知”的發(fā)布策略成為應(yīng)用運(yùn)維團(tuán)隊(duì)的不二選擇,盡可能降低發(fā)布對(duì)業(yè)務(wù)的影響。“業(yè)務(wù)無(wú)感知”的發(fā)布策略有滾動(dòng)發(fā)布、藍(lán)綠發(fā)布、灰度發(fā)布

本文將從什么是灰度發(fā)布,發(fā)布類(lèi)型,灰度發(fā)布自動(dòng)化實(shí)踐三個(gè)維度來(lái)展開(kāi)。


01. 灰度發(fā)布的概念

灰度發(fā)布,又名金絲雀發(fā)布,即在產(chǎn)品發(fā)布時(shí),先讓一小部分用戶體驗(yàn)產(chǎn)品新版本的特性,這一小部分用戶的用戶范圍可以是內(nèi)部用戶、測(cè)試用戶和非核心用戶,但主要用戶還是繼續(xù)使用產(chǎn)品舊版本

新版本發(fā)布完成之后,驗(yàn)證業(yè)務(wù)及用戶反饋是否正常,一切正常之后再逐步擴(kuò)大新版本覆蓋范圍:20%、50%、70%,每發(fā)布一次就進(jìn)行業(yè)務(wù)驗(yàn)證、觀察用戶反饋。最后用新版本覆蓋所有用戶,完成一次灰度發(fā)布。

灰度發(fā)布的最大優(yōu)勢(shì)是將新版本使用范圍控制在小范圍內(nèi),如果新版本出現(xiàn)問(wèn)題,能夠極大降低問(wèn)題影響范圍,避免影響所有用戶,造成嚴(yán)重的生產(chǎn)故障,引發(fā)大范圍的投訴,從而影響到公司業(yè)務(wù)和品牌。


02. 發(fā)布類(lèi)型

1)滾動(dòng)發(fā)布:是指一個(gè)應(yīng)用有多個(gè)主機(jī)副本,將其分成多個(gè)批次。首先升級(jí)第一個(gè)批次,之后依次升級(jí)其他批次,直到所有批次升級(jí)完成。每個(gè)批次升級(jí)前,需要在LB中移除對(duì)應(yīng)主機(jī)的流量轉(zhuǎn)發(fā),升級(jí)完成后,再恢復(fù)對(duì)應(yīng)主機(jī)的流量轉(zhuǎn)發(fā)。

將應(yīng)用分成多個(gè)批次,升級(jí)前后的LB操作工作量比較大,對(duì)應(yīng)用運(yùn)維人員來(lái)說(shuō)操作麻煩,手工操作出錯(cuò)的概率較大,嘉為藍(lán)鯨應(yīng)用發(fā)布中心,通過(guò)自動(dòng)化流程實(shí)現(xiàn)應(yīng)用的滾動(dòng)發(fā)布。

同時(shí),嘉為藍(lán)鯨應(yīng)用發(fā)布中心支持隨機(jī)分批和自定義分批兩種方式的滾動(dòng)發(fā)布。選擇分批方式后,在批次內(nèi)可以選擇串行和并行的執(zhí)行方式


2)藍(lán)綠發(fā)布:是指應(yīng)用分為兩個(gè)版本,發(fā)布時(shí)將舊版本所有流量直接切換到新版本上。新版本部署時(shí),按照舊版本的規(guī)格完全獨(dú)立部署一套,部署完成之后,進(jìn)行簡(jiǎn)單測(cè)試驗(yàn)證,正常之后將舊版本的流量直接導(dǎo)到新版本上。


3)灰度發(fā)布:是指應(yīng)用分為兩個(gè)版本,發(fā)布時(shí)將舊版本的流量,分階段10%、30%、80%、100%切換到新版本上。每階段切換后,任務(wù)需要暫停,應(yīng)用運(yùn)維人員可以檢查程序是否正常,監(jiān)控日志是否正常,同步業(yè)務(wù)方檢查業(yè)務(wù)指標(biāo)是否正常。確認(rèn)一切正常之后,執(zhí)行下一部分發(fā)布動(dòng)作。


03. 灰度發(fā)布自動(dòng)化實(shí)踐

場(chǎng)景一:基于F5設(shè)備進(jìn)行藍(lán)綠發(fā)布的場(chǎng)景

用戶通過(guò)F5設(shè)備控制業(yè)務(wù)流量,將業(yè)務(wù)流量轉(zhuǎn)發(fā)到后端真實(shí)應(yīng)用服務(wù)上。為了保證升級(jí)時(shí)用戶能夠正常訪問(wèn),需要進(jìn)行藍(lán)綠發(fā)布。

在進(jìn)行藍(lán)綠發(fā)布時(shí),分成三個(gè)發(fā)布步驟:

  • ① 先部署新版本應(yīng)用,此時(shí)新版本應(yīng)用沒(méi)有業(yè)務(wù)流量;
  • ② 然后執(zhí)行F5命令進(jìn)行流量切換,用戶訪問(wèn)流量切到新版本應(yīng)用服務(wù)上;
    ③ 最后進(jìn)行業(yè)務(wù)邏輯驗(yàn)證,查看業(yè)務(wù)流量確認(rèn)業(yè)務(wù)正常,則藍(lán)綠發(fā)布完成, 如果業(yè)務(wù)異常,快速執(zhí)行回滾任務(wù),進(jìn)行流量回切。

    通過(guò)標(biāo)準(zhǔn)運(yùn)維自動(dòng)化執(zhí)行切換F5流量的命名,如下:

    關(guān)鍵參數(shù)通過(guò)變量傳入,該標(biāo)準(zhǔn)運(yùn)維流程可以被多個(gè)業(yè)務(wù)系統(tǒng)復(fù)用,無(wú)需每個(gè)業(yè)務(wù)系統(tǒng)單獨(dú)編排。


    場(chǎng)景二:基于Nginx進(jìn)行灰度發(fā)布的場(chǎng)景

    用戶通過(guò)Nginx代理或者負(fù)載均衡設(shè)備來(lái)控制業(yè)務(wù)流量的轉(zhuǎn)發(fā),為了提高應(yīng)用升級(jí)的穩(wěn)定性,升級(jí)后先讓部分用戶體驗(yàn)新版本,通過(guò)標(biāo)準(zhǔn)運(yùn)維腳本命令切換Nginx中流量轉(zhuǎn)發(fā)策略,將小部分隨機(jī)用戶流量轉(zhuǎn)發(fā)到新版本服務(wù)上。

    確認(rèn)新版本功能正常后,逐步擴(kuò)大新版本覆蓋的用戶范圍。避免在藍(lán)綠發(fā)布中,新版本異常會(huì)影響到所有用戶訪問(wèn)的問(wèn)題。

    大部分用戶訪問(wèn)業(yè)務(wù)正常,驗(yàn)證了新版本的穩(wěn)定性,再讓新版本覆蓋所有用戶,完成基于Nginx的灰度發(fā)布。

    具體標(biāo)準(zhǔn)運(yùn)維任務(wù)參考:


    場(chǎng)景三:容器應(yīng)用灰度發(fā)布的場(chǎng)景

    容器應(yīng)用在升級(jí)時(shí),為了保證業(yè)務(wù)無(wú)感知,應(yīng)用運(yùn)維人員也需要考慮灰度發(fā)布方案,將一次完成的發(fā)布流程,拆分成多個(gè)發(fā)布流程,降低每一次應(yīng)用發(fā)布的影響范圍。

    容器發(fā)布場(chǎng)景,應(yīng)用一般通過(guò)ingress-nginx或者istio控制流量分發(fā),每次發(fā)布更新ingress中的權(quán)重參數(shù),實(shí)現(xiàn)不同流量比例的切換。

    在這個(gè)場(chǎng)景中,先部署新應(yīng)用的deploy和service,然后部署ingress,切20%流量到新應(yīng)用,此時(shí)發(fā)布任務(wù)暫停,業(yè)務(wù)人員進(jìn)行應(yīng)用檢查和驗(yàn)證。驗(yàn)證業(yè)務(wù)正常之后,再切換40%、70%、100%應(yīng)用到新應(yīng)用上,完成容器應(yīng)用場(chǎng)景的灰度發(fā)布。


    場(chǎng)景四:容器應(yīng)用多地域灰度發(fā)布的場(chǎng)景

    業(yè)務(wù)應(yīng)用在全國(guó)多個(gè)省市都有部署,在進(jìn)行升級(jí)時(shí),分地域進(jìn)行灰度升級(jí)。

    先升級(jí)華東地域應(yīng)用,華東地域內(nèi)串行發(fā)布,確保業(yè)務(wù)能夠正常穩(wěn)定發(fā)布成功;然后依次升級(jí)華中地域、華南地域、華北地域、西南地域、港澳臺(tái)地域,地域內(nèi)并行發(fā)布執(zhí)行。


    場(chǎng)景五:K8s集群版本灰度升級(jí)的場(chǎng)景

    K8s不支持跨大版本進(jìn)行升級(jí),如果考慮一個(gè)個(gè)小版本的升級(jí)會(huì)非常麻煩,每次小版本升級(jí)對(duì)應(yīng)用運(yùn)維人員來(lái)說(shuō)都是非常大的挑戰(zhàn)。因此一個(gè)自動(dòng)化、業(yè)務(wù)無(wú)感知的K8s集群版本灰度升級(jí)是非常關(guān)鍵的。

    業(yè)務(wù)端通過(guò)APISIX或者Istio控制業(yè)務(wù)流量。首先自動(dòng)化部署v1.24版本的K8s集群,然后在v1.24版本集群中部署容器應(yīng)用,通過(guò)APISIX灰度遷移少部分業(yè)務(wù)流量,驗(yàn)證業(yè)務(wù)的可用性和穩(wěn)定性,慢慢將所有應(yīng)用灰度遷移到新版本集群。所有應(yīng)用遷移完成后,將v1.16版本K8s集群下線資源回收。

    灰度發(fā)布方案,只是嘉為藍(lán)鯨應(yīng)用發(fā)布中心產(chǎn)品支持的一個(gè)企業(yè)級(jí)發(fā)布場(chǎng)景,其他場(chǎng)景還包含:緊急部署、持續(xù)部署、大規(guī)模變更、應(yīng)用上線等場(chǎng)景,還支持與DevOps、ITSM集成實(shí)現(xiàn)研運(yùn)一體化、工單驅(qū)動(dòng)變更等功能。詳細(xì)產(chǎn)品功能架構(gòu)如下:

    嘉為藍(lán)鯨應(yīng)用發(fā)布中心核心優(yōu)勢(shì)如下:

    免費(fèi)申請(qǐng)演示

    聯(lián)系我們

    服務(wù)熱線:

    020-38847288

    QQ咨詢:

    3593213400

    在線溝通:

    立即咨詢
    查看更多聯(lián)系方式

    申請(qǐng)演示

    請(qǐng)登錄后在查看!