1. 程式人生 > 其它 >案例|雲效賦能一站式企業消費管理品牌「差旅壹號」持續交付新動力

案例|雲效賦能一站式企業消費管理品牌「差旅壹號」持續交付新動力

編者按:元嘆,12年加入差旅壹號,擁有多年技術管理及架構經驗,差旅壹號技術委員會成員,曾負責過多個核心產品架構,致力於研發質量與效能提升。

背景

差旅壹號作為一站式企業消費管理平臺品牌,涵蓋了一站式企業商旅管理、一站式企業出行管理、一站式企業用餐管理、一站式企業福利管理平臺。服務著30餘家央企全集團,100餘家國企全集集團,超過1000家上市公司和大型集團型公司。但隨著業務規模和服務企業數量的持續增長,客戶的需求逐漸變得多樣化、複雜化,差旅壹號為了快速迭代,響應客戶的訴求,開始尋尋找更高效的解決方案。

問題及痛點

差旅壹號採用微服務架構,共200多個服務,雙機房容災部署,灰度釋出。使用SVN管理程式碼分支、jekins管理編譯構建任務、kubernates管理容器。隨著公司規模不斷壯大,釋出效率方面出現挑戰。具體問題如下:
  • 為了適用網際網路快速迭代,需要經常釋出,存在工作量大,投產耗時長等問題;
  • jekins整合程式碼檢測安全檢測無線上結果,修復檢查效率低;

解決效果

• 480條流水線,平均釋出耗時3分鐘/次,平均每月構建6000分鐘,穩定執行1年; • 釋出效率方面:釋出效率提升70%; • 成本方面:節約jenkins等日常維護成本,及相關伺服器6臺;

那是怎麼做到的呢?

1、結合公司情況及雲效功能支援設計合適的流水線 流水線大致可分為4步:拉取分支程式碼、程式碼掃描、程式碼編譯、映象構建並上傳倉庫、部署。結合企業實際情況可增加:整合sonarqube、整合自動化介面測試。 差旅壹號環境分研發整合環境、預釋出環境、灰度釋出環境、全量釋出環境。研發整合環境,快速整合,快速測試,不設人工干預卡點;預釋出環境,必須經過研發整合環境的充分測試,測試無問題方可釋出;灰度釋出環境,預釋出環境驗證通過,部署灰度釋出環境,切換少量使用者運營驗證;全量釋出環境,灰度釋出環境驗證通過,部署全量釋出環境,切換所有使用者到最新版本。
結合實際情況,差旅壹號流水線設計如下:將研發整合環境獨立成一條流水線(內網流水線),預釋出環境、灰度釋出環境、全量釋出環境設定為1條流水線(外網流水線)。內網流水線,效率優先。程式碼提交後自動觸發流水線,經過程式碼規範掃描、安全掃描後,直接編譯構建和部署。程式碼掃描只掃描出結果,不設紅線,在釋出外網前解決即可。 外網流水線,質量穩定優先。內網測試通過後,人工觸發流水線,首先通過程式碼規範檢測和程式碼安全檢測紅線。其次增加人工卡點,對釋出做稽核,確保內網已經測試通過滿足釋出條件。稽核通過後釋出預釋出環境,釋出後經過測試、產品驗證後即可釋出灰度環境,灰度環境執行穩定後即可釋出全量環境。
在上線之初程式碼規範和程式碼安全可優先解決嚴重和高危級別問題,中危、一般問題可後續一次或按增量解決。 2、建立模板,統一規則,降低維護成本 測試流水線建立測試成功後,建立流水線模板,規範流水線的建立,並節約建立成本。(流水線模板可直接從已有流水線另存為流水線模板也可新建) 3建立流水線,控制權限,保障流水線按指定流程執行 通過模板建立服務流水線(或複製已有流水線),給相應人員開通流水線對應許可權:所有許可權、執行許可權、檢視許可權。 4、設定流水線分組、標籤快速查詢篩選 公司可能擁有多條產品線或多個研發團隊,每個團隊負責內容不同。為避免相互影響,可通過流水線的分組和標籤進行區分。差旅壹號產品線分機票、酒店、大交通、用餐等,分組按產品線區分,產品線內不同模組以標籤區分。 5、流水線改進 流水線執行一段時間後,差旅壹號做了部分改進,如將線上配置檔案修改納入流水線管控,通過流水線釋出;整合python自動化介面測試,部署後,自動觸發python自動化測試指令碼併產生測試報告;整合SonarQube,加強程式碼安全掃描。

結語

雲效是一款非常不錯的產品,它與阿里雲產品深度融合、功能豐富、配置簡單,並一直在不斷地優化和完善。企業能夠基於流水線提供的能力快速且低成本地搭建一套適合自己的流水線。差旅壹號也藉助雲效,實現了企業產品快速創新迭代和研發效能升級。感謝雲效產品的賦能以及實施過程中雲效同事的支援。以上內容只是差旅壹號在實施後的一些拙見,希望能給各位同行帶來一點幫助。 阿里雲 雲效點我立即體驗雲效DevOps全家桶!