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