本文分享自華為雲社群《DevOps賦能行業雲原生數字化轉型》,作者:雲容器大未來。
企業軟體開發困局
隨著資訊化的程序不斷加速,帶來的各種業務應用、平臺應用等軟體資產的複雜度也快速上升。隨之而來的資訊化基礎設施能力與軟體工程全生命週期的管理也會變得越來越複雜,數字化轉型、雲原生、持續交付的口號隨之升起。
千行百業都在響應數字化轉型的號召以提升業務效率、企業競爭力或是市場競爭力。但是企業在轉型的過程中卻舉步維艱。往往原因有以下幾點:
-
流程固化,牽一髮而動全身:原有的流程已經制定多年,相關人員也已經習慣這套流程。突然的規則轉變以及帶來的相關風險無人願意主動承擔。
-
部門牆明顯,無法快速協同:在金融等行業中,每個部門的成員往往都是統一職責的。如業務部門,只負責市場運營、專案需求管理等;研發部門,只負責開發以及測試;運維部門,只負責平臺的運維、基礎設施的維護等。一個業務軟體的版本迭代,需要從多個部門層層流轉,但部門與部門之間的溝通又不徹底,出現問題也容易互相牽扯,最終導致軟體需求交付效率的大大下降。
-
嚴謹的網路環境管理卻又鬆散的製品管理:網路部門嚴格管理著各個環境之間的網路訪問邏輯,一般情況下,開發人員只能訪問開發環境;而且開發、測試、準生產以及生產環境之間網路都是不互通的。在沒有強有力的政策干預下,可能會出現各個環境都獨立一套程式碼、製品倉庫,更糟糕的是,可能不同的軟體產品線都獨立管理各自的程式碼、製品倉庫。因此在階段流轉時,需要透過傳統的複製方式去做流轉傳遞,帶來了額外的管理成本,也更容易引入人為風險。
-
過多的編外人員帶來的各種散亂工具鏈:在軟體研發部門可能存在多方外包人員,而每一方外包人員都有各自熟悉的軟體開發工具,程式碼倉庫有些使用Gitlab,有些使用Gitea;製品倉庫有些使用nexus,有些使用jforg;甚至構建工具都不能統一,有用Jenkins的,也有本地構建的。這也帶來了管理上的巨大麻煩。
顯而易見的困局,企業在數字化轉型過程中面臨流程固化、部門牆明顯、製品管理鬆散和工具鏈混亂等問題,導致軟體需求交付效率下降。需要打破原有流程和部門牆,建立統一的管理體系,加強制品管理和工具鏈整合,以提高軟體需求交付效率。
破局之法:DevOps
面對以上重重現狀和困難,我們迎來了曙光——DevOps。
DevOps最初誕生於網際網路企業。DevOps作為一種文化、哲學和實踐的集合,自從誕生以來,就一直在不斷地進化和擴充套件。它的定義以及理念大家都耳熟能詳:打破部門牆、緊密合作、自動化、小步快跑、敏捷迭代等等。它是一種文化宣言,提及了方法論,每個企業或者行業都能夠結合自身實際情況去操作實施。
核心理念:
-
變更的快速響應:DevOps支援需求的快速更改和新功能的快速部署。透過自動化構建和部署流程,開發團隊可以快速地將程式碼從開發環境推送到生產環境。
-
持續反饋:透過持續整合和持續部署,可以確保在開發週期的任何階段捕獲問題,以及在生產過程中立即收集使用者反饋,然後快速將這些反饋整合到產品迭代中。
-
跨功能協作:DevOps鼓勵開發團隊、QA團隊和運維團隊從需求收集的初期就開始緊密合作,以確保全方位理解和滿足使用者需求,並從整個軟體交付流程中消除障礙。
-
原則最佳化:DevOps的實踐著重於自動化和精益原則,包括儘早消除浪費,確保需求的清晰性和簡潔性,以及提供最大的價值。
從核心理念就能夠看出,DevOps文化實踐需要有統一的軟體工程工具鏈,所有相關人員都能夠在DevOps平臺上執行各自的工作,實現部門之間通力協作和重複流程的全面自動化。
上圖展示了DevOps的相關角色以及整體工作流程。一個較為完整的DevOps全流程工具鏈便呼之欲出:從基礎設施的管理、專案管理,再到程式碼管理和持續交付,最後是持續運維。除卻文化理念,DevOps的核心是自動化流水線工具,實現了自動化持續交付,而持續交付的核心是持續整合(CI)和持續部署(CD)。CI/CD共同構成了現代軟體開發的核心實踐,旨在促進軟體的快速迭代和高質量交付。其中,持續整合主要關注開發階段的頻繁合併和測試,而持續部署則擴充套件了這一過程,涵蓋了程式碼從整合到被部署到生產環境的整個流程。兩者都是自動化的關鍵實踐,有助於實現DevOps的目標。
遵循理論引導並結合實際情況,我們歸納了針對金融等行業的破局三板斧。
DevOps專業團隊指導,打破固有流程
在金融等行業並不缺乏最佳化現有流程的勇氣,只是沒有明確的目標以及專業指導。當DevOps的呼聲以及發展越來越強大時,國內湧現出了很多專業的DevOps專家諮詢團隊,他們能夠結合企業的實際現狀給出最優解,在組織架構不調整的情況下保障以儘可能小的變更達到最大的效果,消除企業顧慮。
統一的DevOps工具鏈平臺,打破部門牆,規範研發流程
我們發現絕大多數企業都無法做到為每一個專案劃分全功能團隊(從市場、需求到研發、測試最後到運維),往往都是獨立的市場部、研發部和運維部。這天然的形成了溝通與階段流轉之間的部門牆,由於更改現狀牽扯太大,我們便透過應用DevOps的理念,建立統一的DevOps工具鏈平臺,對當前專案的全生命週期進行管理。針對每一個原始需求,從需求記錄、分析、分配到後續的開發、測試、驗證及最終上線,都能被相關人員看到。階段的流轉也能夠在相關平臺上直接操作和通知,杜絕冗長低效的跨部門流程。我們提倡相關人員使用DevOps平臺的同時,梳理最佳實踐,進行定期培訓,潛移默化的讓研發流程變得統一和規範。
在嚴謹的網路環境內搭建統一的核心資產庫
核心資產庫的統一有必要性,各個專案組成員,即使在不同的應用環境下,也不能單獨建立。如程式碼倉庫,不能在開發環境和測試環境各有一套。我們需要統一的核心資產庫去踐行DevOps的理念。該庫需要打通從開發到生產環境的網路連線,並透過嚴格的許可權控制,來實現安全合規。
行業困局的解決方案
為了滿足理論支撐,我們基於華為雲UCS作為容器平臺底座,結合軟通動力應用交付平臺來實現行業雲原生數字化轉型的最佳解決方案。
華為雲UCS(Ubiquitous Cloud Native Service)是業界首個分散式雲原生產品,為企業構建雲原生業務部署、管理、應用生態的全域一致性體驗 ,實現客戶在使用雲原生應用時,感受不到地域、跨雲、流量的限制,讓雲原生的能力進入企業的每一個業務場景,加速千行百業擁抱雲原生。
而軟通動力應用交付平臺是一款持續交付產品,幫助企業快速建立穩定軟體釋出的內部開發者平臺與 DevOps 文化,為開發者提供雲原生應用執行環境,開發者透過平臺的自助服務能力,進行應用的構建、部署、驗證、運維等生命週期管理操作,降低應用開發者使用雲原生技術的門檻,提升應用的部署和執行質量。平臺支援UCS雲原生服務中心快速安裝,使用者只需要透過頁面表單的填寫即可快速部署平臺,實現開箱即用。
客戶透過UCS對多方叢集執行統一納管,從而達到對多個叢集的統一治理,實現配置管理、容器遷移、策略中心、流量治理和容器智慧分析。這在網路環境嚴苛的金融等行業中是非常便利的。
雲原生服務中心精選了各種成熟可靠的開源工具,為客戶提供了統一便捷的安裝體驗,其中的多種工具能夠和應用交付平臺實現整合聯動效果,如SonarQube和ArgoCD。他們支援配置對接到應用交付平臺的持續整合流水線或安全測試編排中,實現多個工具平臺的串聯,打破資料孤島。
整體解決方案中,實現DevOps的核心便是華為雲UCS提供的容器底座以及應用交付平臺提供的整合和自動化能力,兩者相輔相成。原本的應用交付平臺得到昇華。透過UCS的特性,我們可以實現多叢集的統一聯邦管理,讓快速搭建雙活、主備等高可用應用部署架構變得輕而易舉。這種架構極大地提升了運維能力,使構建釋出過程實現全面自動化,從而提高交付質量、縮短交付週期、保持技術路線一致性以及規範資源使用。
值得一提的是,UCS雲原生服務中心的引入使得企業能夠快速安裝和使用諸如ArgoCD、SornaQube等熱門開源工具平臺。這不僅豐富了企業的技術選擇,還增強了企業的靈活性,使企業在快速變化的市場環境中始終保持競爭力。
將UCS與軟通動力應用交付平臺相結合,企業將獲得一套更高效、更可靠的運維解決方案。這套方案可以全面提高企業的運維能力,降低人工干預成本,提高交付質量,並確保技術路線的一致性。在此基礎上,透過UCS雲原生服務中心的引入,企業還能夠快速接入各類熱門開源工具平臺,進一步提升企業的靈活性。這套解決方案將助力企業在激烈的市場競爭中脫穎而出,實現業務的持續發展。
方案落地實踐與價值
某資產管理公司成立10年期間累積了不少軟體資產,過於陳舊的研發體系以及日益膨脹的原始需求,使得他們迫切的想要進行雲原生改造,實踐DevOps來得到交付效率上的提升。
在入場調研的過程中,我們發現其所面臨的困境和金融業企業困境如出一轍:各個環境的割裂、沒有統一的程式碼倉庫、階段流轉靠隨身碟複製、散亂的依賴管理、缺失自動化構建能力以及沒有統一規範的軟體研發流程,全靠各個團隊自由發揮。
雲原生DevOps專家團隊面對這種實際場景,針對性的給出了架構設計和遷移改造方案。
容器化改造
客戶原先的系統服務都是虛擬機器部署,一個微服務需要單獨規劃一臺4U8G的虛擬機器,如此配置不易彈性伸縮且有巨大的資源浪費。專家團隊順勢提出容器化改造,並且使用業界首個分散式雲原生產品華為雲UCS作為容器平臺底座,同時給出微服務容器化改造的最佳實踐,幫助客戶快速遷移。
統一程式碼倉庫和製品倉庫
令人驚訝的是,客戶沒有統一的程式碼倉庫和製品倉庫,多個團隊之間的程式碼資產各自管理。有些使用Git,有些使用SVN,更有甚者就未使用程式碼倉庫。因此在程式碼從開發環境轉換到測試環境、準生產環境時,透過隨身碟複製的形式,製品依賴更是如此。所以改造的下一步是統一必備的軟體開發工具。綜合考量各種因素後,我們為客戶提供了Gitlab程式碼倉庫、SWR映象倉庫以及nexus依賴倉庫。
統一的DevOps平臺
有了容器平臺、程式碼倉庫、映象倉庫等基礎設施和軟體開發平臺,實踐DevOps需要將這些平臺結合起來,並提供持續交付的能力。軟通動力應用交付平臺完美匹配,其靈活的整合管理能力串聯了多個研發工具鏈,給客戶提供高效便捷的流水線配置體驗。
研發流程最佳化
當基礎配置全部準備完成後,此時需要流程規範和最佳實踐進行指導。華為雲UCS專家團隊結合資產管理公司的組織架構以及業務結構,為客戶量身定製了基於新平臺的研發流程。從理論出發結合實際為客戶實現雲原生數字化轉型。
經過客戶及華為云云原生團隊的共同努力,客戶業務最終完美的遷移到容器環境中。經過一段時間的學習、適應和磨合,客戶按照DevOps的文化理念進行迭代、統一程式碼和製品倉庫以及配置自動化流水線。據效能統計:人力管理成本平均減少70%、構建部署的頻率提升十餘倍、更改失敗率降低、平均交付週期以及資源利用率都有了巨大的最佳化,順利打破金融等行業的雲原生、數字化轉型困局。
訪問連結,體驗華為雲分散式雲原生UCS:https://www.huaweicloud.com/product/ucs.html
點選關注,第一時間瞭解華為雲新鮮技術~