在項目研發(fā)迭代的過程中,為了提升產(chǎn)品的競爭力,應(yīng)用的部署上線尤為頻繁。但如此高頻的發(fā)布特性,不僅是對產(chǎn)品的質(zhì)量考驗,也對發(fā)布的顆粒度、范圍等策略控制提出了更高要求。
軟件開發(fā)中的發(fā)布管理,是通過一定的計劃和策略設(shè)置,將軟件從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境的過程,在發(fā)布過程中根據(jù)可視化的現(xiàn)網(wǎng)流量觀測,進行動態(tài)策略調(diào)整,將軟件逐步的、平滑的交付給用戶。其目的是將軟件發(fā)布過程規(guī)范化,提升軟件發(fā)布的效率和質(zhì)量。
通常情況下,某些企業(yè)會采用“全量發(fā)布”的模式,即對所有用戶都同時使用新版本,部署和發(fā)布便沒有明顯的界限。但是隨著軟件規(guī)模、集群規(guī)模以及用戶規(guī)模的擴大,企業(yè)迫切需要一種平滑漸進式的發(fā)布模式來降低軟件發(fā)布風(fēng)險,部署和發(fā)布的解耦勢在必行。
華為公司在軟件開發(fā)領(lǐng)域具有30多年的經(jīng)驗,對軟件發(fā)布管理有著深度的積累與實踐。我們認為一款好的軟件發(fā)布管理系統(tǒng)應(yīng)具備如下功能:
環(huán)境分層管理
開發(fā)環(huán)境和生產(chǎn)環(huán)境資源分層,權(quán)限分級管控,提前發(fā)現(xiàn)質(zhì)量風(fēng)險,減少缺陷流轉(zhuǎn)到下游的可能;
24小時在線
借助云原生負載均衡技術(shù),可做到24小時隨時發(fā)布,發(fā)布過程業(yè)務(wù)零中斷,用戶無感知;
灰度發(fā)布
針對不同的業(yè)務(wù)場景,提供Ring環(huán)、藍綠/金絲雀、滾動升級等多種升級策略,讓流量逐步開放給用戶;
浸泡和撥測
在軟件發(fā)布到生產(chǎn)環(huán)境的過程中,進行一段時間“浸泡”和“撥測”,逐步完成全網(wǎng)多個局點的軟件升級;
特性開關(guān)
通過變量一鍵開關(guān)特性,避免因缺陷導(dǎo)致重復(fù)構(gòu)建出包;
與生產(chǎn)環(huán)境高度一致的聯(lián)調(diào)環(huán)境
完全仿照生產(chǎn)環(huán)境復(fù)制的聯(lián)調(diào)環(huán)境,仿真生產(chǎn)環(huán)境聯(lián)調(diào)測試;
智能發(fā)布
通過智能數(shù)據(jù)分析,對發(fā)布風(fēng)險提前預(yù)警,減少人工操作與管理缺漏,使發(fā)布過程更加自動化、智能化,結(jié)合現(xiàn)網(wǎng)監(jiān)控數(shù)據(jù),實現(xiàn)發(fā)布過程無人值守。
5月11日,華為云全新推出CodeArts Release發(fā)布管理服務(wù),旨在將華為多年形成的發(fā)布實踐外溢,幫助企業(yè)提升軟件發(fā)布質(zhì)量和效率,降低生產(chǎn)環(huán)境的發(fā)布風(fēng)險。華為云CodeArts Release具有以下四大特性:
特性一:微服務(wù)環(huán)境模型,助力企業(yè)DevOps發(fā)布治理
標(biāo)準化的微服務(wù)環(huán)境,將企業(yè)DevOps治理模型從研發(fā)態(tài)延伸到發(fā)布態(tài),通過微服務(wù)流水線串聯(lián)軟件開發(fā)、測試、發(fā)布全流程,使研發(fā)過程、發(fā)布過程、變更內(nèi)容、變更對象全流程可追溯。
華為云CodeArts Release提供的微服務(wù)環(huán)境模型特性,其優(yōu)勢在于:
規(guī)范化企業(yè)組織樹模型
基于企業(yè)、項目、微服務(wù)的企業(yè)管理組織樹模型,規(guī)范化項目運作;
模型標(biāo)準化
集成環(huán)境變量、策略編排及發(fā)布資源,打造標(biāo)準化環(huán)境模型,精細化管控企業(yè)的研發(fā)資源,提高軟件的可運維性;
環(huán)境分層管理
微服務(wù)資源相互隔離,測試環(huán)境與生產(chǎn)環(huán)境按不同角色進行權(quán)限區(qū)分,角色權(quán)限控制獨立,杜絕越權(quán)非法操作。
特性二:云原生灰度發(fā)布,流程規(guī)范可視化
灰度發(fā)布,即先小范圍分批平滑發(fā)布,然后逐漸擴大范圍至整個生產(chǎn)環(huán)境。通過控制影響范圍,降低發(fā)布風(fēng)險,從而達到發(fā)布效率和質(zhì)量之間的平衡?;叶劝l(fā)布是一種正確、規(guī)范、安全的發(fā)布過程。
華為云CodeArts Release此次重磅推出了云原生灰度發(fā)布特性,優(yōu)勢在于:
模板化管理
可將發(fā)布流程預(yù)置為模板,提升發(fā)布編排效率,規(guī)范發(fā)布流程;
多場景灰度發(fā)布模式
支持藍綠發(fā)布、金絲雀發(fā)布、滾升發(fā)布等多種灰度策略編排;
發(fā)布流程控制
將一次發(fā)布任務(wù)分解為多個步驟,發(fā)布與測試同步,通過監(jiān)控浸泡進行步驟流轉(zhuǎn),降低發(fā)布風(fēng)險;
發(fā)布過程可視化
通過發(fā)布單實時觀測微服務(wù)的健康情況,異常情況可一鍵回滾至舊版本。
特性三:環(huán)境變量管理,一次構(gòu)建全網(wǎng)發(fā)布
Build once,deploy everywhere(一次構(gòu)建,多次部署)是軟件開發(fā)和持續(xù)交付的基本原則,旨在避免測試階段重復(fù)性構(gòu)建,提升軟件發(fā)布效率。
華為云CodeArts Release提供的環(huán)境變量管理特性,其優(yōu)勢在于:
降低構(gòu)建時間和構(gòu)建成本
多套環(huán)境可以使用一次構(gòu)建出包,縮短構(gòu)建時長,同時降低企業(yè)構(gòu)建資源成本;
代碼一致性
一次構(gòu)建可以保證所有環(huán)境都運行完全相同的代碼;
軟件部署與特性發(fā)布解耦
基于環(huán)境變量開關(guān)特性,減少代碼部署的回滾次數(shù),漸進向用戶推出新功能,將軟件發(fā)布風(fēng)險最小化。
特性四:開發(fā)者聯(lián)調(diào)環(huán)境,秒級發(fā)放一鍵部署
華為對內(nèi)部多個產(chǎn)品線研發(fā)團隊進行調(diào)研,收集開發(fā)人員在個人調(diào)測過程中遇到的環(huán)境相關(guān)訴求,主要問題集中在:
環(huán)境數(shù)量不充足,不能保證每個開發(fā)者擁有自己的調(diào)測環(huán)境;
環(huán)境申請流程長,等待環(huán)節(jié)多;
如何讓開發(fā)人員能保證充足的聯(lián)調(diào)測試環(huán)境,同時又能有效降低開發(fā)資源成本?這不僅是華為當(dāng)前面臨的問題,也是業(yè)界亟待解決的課題。
華為云CodeArts Release此次發(fā)布的開發(fā)者聯(lián)調(diào)特性,優(yōu)勢在于:
聯(lián)調(diào)環(huán)境開箱即用
研發(fā)環(huán)境秒級發(fā)放、一鍵部署,為開發(fā)者提供高效協(xié)同的聯(lián)調(diào)能力;
聯(lián)調(diào)環(huán)境模板
提供基于模板的環(huán)境管理能力,支持環(huán)境快速復(fù)制;
資源和調(diào)度策略管理
調(diào)測環(huán)境按需發(fā)放和回收,最大化資源利用效率,降低企業(yè)資源使用成本。
基于以上四大特性,華為云CodeArts Release可以幫助企業(yè)建設(shè)敏捷的、高質(zhì)量的DevOps發(fā)布系統(tǒng),并通過發(fā)布管理與流水線相結(jié)合,持續(xù)規(guī)范企業(yè)DevOps發(fā)布流程。
未來,華為云CodeArts Release將繼續(xù)外溢更多華為DevOps發(fā)布實踐,并針對傳統(tǒng)行業(yè)發(fā)布模式,提供版本編排、版本基線、版本發(fā)布等IPD發(fā)布模型,助力企業(yè)提質(zhì)增效,打造卓越的數(shù)字化體驗。