隨著信息技術深入應用,企業的IT組織效能提升與數字化轉型需求越發迫切。9月起,嘉為藍鯨《研效一體,價值釋放》線上課程直播,針對企業IT部門DevOps落地實踐分六期詳解項目管理、制品分發、持續交付、測試管理、研發效能洞察、價值流管理場景。
10月12日,嘉為藍鯨DevOps咨詢顧問張天珩為大家帶來《多中心如何同步制品協作發布上線》的主題分享,深度剖析了非成熟分發模式下的弊端,并通過自身豐富的客戶落地實踐經驗,系統介紹了切實可行的多中心制品同步解決思路與方法。下面我們一起回顧下本次直播的精彩內容。
01. 標準化制品管理是支撐現代工業的技術基石
制品管理并非一個全新的概念,其起源可以追溯到工業革命時期。為進一步提高生產效率,制造業以制品管理標準化的形式,完整串聯起了從原料倉儲到半成品的管理,再到成品運輸、配送交付到各地的整個流程。這種標準化管理使得原本可能局限于一地的工業生產模式逐漸轉變為貫通19至21世紀、席卷全球的工業革命。
如今,當企業紛紛談論IT營運轉型、提升數字業務研發績效時,由于IT組織的獨特性、工作的非標準化以及業務的復雜性,企業在構建DevOps工藝體系時很容易忽略或難以清晰認識到,要全面實現IT研運體系轉型,則需要完善的制品管理機制。
隨著DevOps在國內的深入應用,大部分企業已經能構建自己的CICD流程,甚至涵蓋了CO的環節。然而,隨著DevOps的進一步實踐,大量的軟件制品被源源不斷地生產出來,包括不同語言的制品類型如Java、Maven、JavaScript、NPM、Python、Pypi,以及基于IT技術應用的制品類型如Docker、Helm、RPM和.net等。這些制品在數字業務研發生命周期的各個環節中產生,存在于產品研發、測試和運維的各個團隊中。
這些制品既可以作為開發人員之間共享的重要組件,也可以成為企業的私有資產。在IT組織轉型DevOps之前,很多企業已經開始使用Nexus或Harbor等開源制品管理技術,甚至建設SVN或通過FTP模式來管理和傳輸制品。由于當時的開發業務相對簡單,制品類型較少、分發頻率較低,由運維團隊負責制品管理是可行的,并且因制品管理導致的生產事故風險較低。此外,開源工具大多數免費,對于企業而言不會產生額外的預算壓力。因此,在業務發展的初期階段,對于很多IT管理者而言,制品管理的成本代價和風險較低。
然而,隨著IT規模的逐步擴張和業務的發展,傳統制品管理模式的缺陷逐漸暴露,導致企業的IT開發與運維在制品管理上產生摩擦。在這個階段,需要一套標準的、更專業的制品管理機制來避免軟件開發過程中出現的一系列問題。
02. 軟件研發流程與對應的制品管理
為了解決上述問題,業界開始尋求一些專業的制品管理方式來推動軟件研發流程的順暢運行。通常,軟件研發流程包括多個階段,如需求階段、開發階段、構建階段、測試階段和交付階段,每個階段都有相應的制品管理需求。在這個過程中,開發人員將制品倉庫的原料,如外部原料倉、內網的依賴庫以及本地私有依賴庫等,存儲到企業私服,作為公有的依賴源;將還沒有經過測試的半成品打包放到制品倉;經過多輪測試之后,將最終的制品放到成品倉交由到交付人員做相應的部署。
若想做好制品管理,需要關注兩大核心方面和四大關鍵工程。
首先,兩大核心方面包括依賴管理和CICD優化。在依賴管理方面,需要建立唯一的可信源,統一管理各地、各種依賴,并建立定期的依賴維護機制,同步云端以及更新本地依賴。此外,需要建立依賴掃描機制,保證本地依賴的安全性。在CICD方面,需要推動相應的優化,將交付物的元數據作為質量關卡,保證上線安全;對制品自動進行安全掃描以確保制品安全;對接CI工具,實現制品的自動晉級;此外,還需對接CD工具,實現制品的自動拉取和晉級等。
接下來是四大關鍵工程。第一項是云端依賴同步工程,需要定期同步云端依賴與本地依賴,并配備相應的掃描機制來保證本地倉庫的安全性。第二項是依賴源服務工程,著重于將本地的依賴更好地服務于整個CI構建環節。第三項是制品晉級工程,涉及到從構建環節到測試環節,甚至到交付環節的制品晉級,例如在編譯構建時如何將開發完成的product包晉級成SIT測試、UAT狀態和準生產狀態的包等,這一過程中需要進行多輪制品晉級。最后是制品同步工程,這也是本文的重點討論內容。
通過關注這些方面和工程,可以有效地實施制品管理,推動軟件研發流程的順暢運行,提高開發效率和產品質量。
03. 高效的制品同步機制保障企業業務平穩運行
通常,企業在執行制品同步過程中主要面臨三個挑戰:開發和生產發布的一致性無法得到保障、制品在多地同步并統一上線難度大、以及內部環境中的制品無法快速遷移到另一個環境。這些問題的核心在于如何在不同的網絡環境下,保障發布的一致性、安全性和及時性。因此,我們需要構建有效的制品同步機制來應對這些挑戰。
在進一步闡述具體的解決方案之前,我們首先需要了解與制品同步相關的基本概念:
接下來,本文將通過兩個主要的案例來闡述實現制品同步機制保障的解決思路。
1)點對點制品同步機制最佳實踐
案例中的XX金融公司雖然每年都會聘請咨詢師來做IT建設的培訓,包括領導層、部門管理和工程師方面的培訓,但在整體研發流程框架的優化改革方面卻難以推動,存在著典型的部門墻現象。各個環境之間是分散來做網絡隔離的,導致每逢發版日就問題頻出。
具體問題表現為:
針對這些問題,我們采取了分兩步走的策略:
第一步遵循一包到底原則建立制品同步機制,實現制品庫與流水線無縫連接,將制品統一管理并插入制品生命周期元數據,從而保證全生命周期的可追溯性;通過制品庫內微服務間請求以及制品完整性校驗機制,保障制品流轉安全;保證網絡防火墻與統一網關出入口的環境相互隔離,保護各個環境的網絡安全。
第二步是通過制品擺渡實現隔離網絡下的開發生產同步。這里包含了多種分發策略的設計,比如定時分發、增量分發、指定時間段分發等。這既兼顧了制品分發的及時性,同時可以利用閑時分發,避免擠占服務器資源,保障制品分發的效率。此外,在DMZ區建立獨立制品庫作為中轉站接收研發環境制品,并自動向生產制品庫分發。在這種情況下,即使研發環境跟生產環境的網絡是隔離的,也可以完全實現制品在各環境間的自動化晉級,提高生產效率。
在點對點的制品同步機制建設完成后,該企業制品線整體效率相比之前優化了30%,發布的安全性與質量也得到了顯著提升。
以上是企業制品同步中的一種場景的解決方案,接下來看第二個案例。
2)一地多中心制品同步最佳實踐
案例中的XX國企規模較大,在全國擁有多個分發中心。制品分發計劃通常由總部進行統一管控,發布的包在發布時會同步到各地的邊緣節點,然后由各地根據發布計劃進行拉取,拉取完成后通過應用發布工具進行發布。但由于企業復雜的業務架構和網絡與性能的限制,企業無法快速地將待發布的制品同步到各個邊緣節點,導致發布延期。
為了解決這個問題,企業首先確保中心節點的制品能夠實時同步給各邊緣節點的制品庫,以確保在面對快速上線發布窗口時能夠準時發布。然而,由于實時同步機制對資源的消耗量巨大,企業因此設置了制品的定時發布,每天晚上11點會將研發中心的制品同步到各地的生產中心,等到發布窗口到來時,各地的生產中心就可以在自己內部的制品庫中拉包進行相應的發布上線。從較長的時間線條來看,這相當于完成了制品的實時同步。
同時,企業通過一次性配置分發計劃,自動執行分發策略并記錄每次任務日志,保障了制品分發的完整性。最后,企業還建立了分發資源池與網絡資源池的機制。當出現多個分發任務時,分發資源池與網絡資源池的存在可以保障最大限度地提高傳輸速度,同時保障網絡與服務器資源的安全。
以上就是兩個制品同步機制的不同場景以及對應的解決方法,不同分發機制需注意:
應對不同的環境與場景,采用對應的同步機制和策略,這也往往涉及到企業的管理合規性。所以企業在考慮發布高效性和安全性的同時,管理合規性也應納入考量。
希望通過本期內容,能對企業制品管理提供幫助。
申請演示