企業實踐|基於軟體研運一體化DevOps平臺的應用解析
業務現狀分析
典型軟體開發趨勢:瀑布模型和敏捷模型共存(穩態敏態)
企業在發展過程中會面臨諸多的問題與挑戰,傳統企業的典型系統級產品開發和專案以瀑布模型和改進V模型為主,開發週期長,變更成本高。隨著企業數字化轉型,產品開發和專案逐漸演變為以業務為導向,通過拆解細化業務問題,快速進行探索和驗證,減少時間及成本浪費的同時,也能快速找到業務前進方向。以上定位於企業專業化產品能力持續提升,逐步提升企業行業內的核心競爭力。
![](http://oscimg.oschina.net/oscnet/up-8f61ef9d8ae660b62220fe5b14cbbad9b6f.png)
傳統企業建設現狀
-
研發工具分散,管理要求與工具軟體未統一平臺,資料孤島多
-
各階段的資料未打通:專案管理、需求管理與測試管理脫節,資料追溯不便;
-
管理要求與工具軟體未結合:管理軟體與工具軟體分離,度量資料採集分析困難。
-
研發環境難以滿足制度要求,研發過程缺乏組織視角
-
程式碼託管分散:沒有統一的程式碼託管服務;缺少知識積累;
-
釋出上線無控制:多途徑自由釋出,風險擴大;質量要求落實不力;
-
研發過程不持續:多環節沒有打通,工具性太強;沒有統一平臺;
-
原始碼不可追溯:無平臺支撐釋出版本與原始碼的對應關係維護;
綜上,致使企業各個團隊都有自己的做法和工具,難以執行的統一的流程、規範和標準。
-
自動化整合程度不高,手工作業影響工作效率和專案質量
-
大部分活動依賴人工,浪費大量時間,依賴個人經驗,影響交付質量。
軟體研發過程面臨主要問題
-
需求變更後,需求影響分析和跟蹤依賴手工統計;
-
研發週期緊張,研發資源不足,缺乏資源監控手段;
-
質量合規要求高,文件手工編寫工作量大;
-
專案的成果積累分散,各部門大量重複功能開發;
-
外部開發與內部開發並行,程式碼合併易出錯;
-
系統耦合性高,升級維護不方便,容易造成版本混亂;
-
產品開發和系統資源分散,運維人員不足,監控困難。
引進BizDevOps
BizDevOps旨在統一業務、開發和運維的一種軟體工程文化和實踐。其核心理念包括:價值、文化、自動化、精益、度量、共享,最終目標是將軟體開發的所有環節進行自動化和全面監控。主要包含以下功能特點:
-
價值導向,需求溯源
-
需求結構化,變更可分析
-
業務測試,持續驗證
-
細粒度需求、微服務設計
-
頻繁提交程式碼、快速反饋缺陷
-
每日整合與構建
-
質量關卡、自動測試
-
高頻、低風險釋出
-
高頻、自動部署
-
快速故障探測與恢復
-
全面監測、視覺化工作過程
![](http://oscimg.oschina.net/oscnet/up-db0589e09cd156b35119cfe0d56ce9c233d.png)
提高研發活動的自動化水平
企業研發一體化實現目標主要是為應對易變、不確定、複雜、模糊的研發新常態,滿足使用者對產品快速價值交付要求,引入業界優秀實踐,基於持續交付流水線平臺,逐步實現軟體的自動化編譯構建、自動化部署、自動化測試、自動化監測、自動化資料採集與研發效能態勢感知。實現從手動構建變為自動化構建;從集中發現缺陷到全過程內建質量;從測試製度化到測試自動化。總體來講就是實現持續快速交付高質量,以及有價值的產品及服務。
提升軟體工程生產力的模型:DevOps全球狀態報告
現如今,大部分網際網路廠商均在引入研運一體的概念,包括但不限於金融行業以及各個運營商。通過Gartner報告分析可知,DevOps在以下幾方面確實提高了研發效率與質量:
-
可用、易用的工具
-
內部和外部搜尋
-
減少技術債務,手段包括:提升程式碼可維護性、解耦的架構、監控
-
心理安全的文化
![](http://oscimg.oschina.net/oscnet/up-f2244d8efa087b5d96d5cb9aa07bae04f5a.png)
軟體研運一體化平臺應用實踐
建設目標
建立集專案管理、需求管理、程式碼倉庫、持續整合、自動化測試、持續部署及度量採集分析的自動化、標準化、數字化軟體研發平臺。
![](http://oscimg.oschina.net/oscnet/up-84c9c3b77eee3e49249d44bdff498d33e59.png)
系統思維
對於大型企業來講,除了工具上面的配套,服務的方面配套所需更多。因此在研運一體專案的實施過程當中,雲智慧通過制度、平臺、培訓三者結合,即加強論證,分而治之,提升效能的敏捷方式來解決企業業務需求繁多且複雜場景需求。整個系統建設是通過統一規劃分佈建設的方式,來支撐企業從傳統瀑布型至矩陣式敏捷研發新形態的轉變。
![](http://oscimg.oschina.net/oscnet/up-535c26fd48babc3761a0f1362b9a200439d.png)
質量思維
雲智慧通過以下三方面內容,完成了企業研運一體的質量內建:
-
定義統一質量指標,形成指標體系和比較基準;
-
建立組合的質量管理內控要求,固化到研發平臺;
-
藉助工具實現自動化的質量管控。
軟體研發業務流程示例
下圖為軟體研發業務流程示例圖。對於裝備製造業來講,整個研發生命週期會包括需求分析、軟體設計、編碼測試。與傳統金融及網際網路企業不同,裝備製造業會在聯試後再進行驗收交付和售後服務,這是裝備製造業的一個典型特點。
![](http://oscimg.oschina.net/oscnet/up-47e4ed1f3ef0e320c11d7dfe6d266fe8ac2.png)
下圖為業務流程圖示例,雲智慧根據企業研發組織人員數量對企業進行了分級。
- 底層團隊級:通過需求的多次迭代完成研發過程。
-
上層組織級:是多產品、多團隊的。即將多層級的 CICD 或者是需求設計形成一種關聯的研發關係。組織級比在團隊級上線之前多涉及一個聯試過程。
![](http://oscimg.oschina.net/oscnet/up-0acd57de715449448ceb92e92c0fbf19a67.png)
軟體研運一體化平臺開發流程是從業務需求部門或者需求訂單開始,隨後需求進到開發中心,開發中心結束之後交到運維中心做運維維護,隨後通過迭代開發的方式完成整個開發過程,最後完成投產驗證。
![](http://oscimg.oschina.net/oscnet/up-1f2ce70c18fd663652d7e4b5a33dd63f032.png)
研運一體化平臺業務架構
下圖為研運一體化平臺業務架構,包含基礎層、服務層和應用層。基礎層和服務層是底層能力,設計的思想為平臺加應用。應用層包含實現需求開發、測試管理、引用釋出等功能。
![](http://oscimg.oschina.net/oscnet/up-85107522dde6be92669b4a25c29d5b68772.png)
下圖為客戶典型例項場景介紹。從專案開始,負責人通過軟體研運一體化平臺建立專案,隨後開發人員通過環境管理來進行環境準備,如所需伺服器、配置等進行申報。專案負責人專案建立完之後,進行專案的派發和拆解。隨後以任務為中心,串聯整個研發流程。上述過程的核心指標便是在開發過程跑通所有的CI/CD。
![](http://oscimg.oschina.net/oscnet/up-098a43f7ca4d50c6d6dd5de1e4d3cd2aa7e.png)
技術架構
軟體研運一體化平臺的基礎架構採用的是微服務架構,包括註冊管理、服務監控、統一認證、鏈路追蹤、訊息佇列、日誌分析等功能。
![](http://oscimg.oschina.net/oscnet/up-4864cd1dfb4c4aeb857d04a13b81c55bbc9.png)
流水線排程引擎(可整合工具鏈)
雲智慧軟體研運一體化平臺除了可整合雲加速內部產品外,還可通過流水線排程引擎整合其他產品,如JIRA、Jfrog等熱門產品。無需 hard coding,通過拖拉拽的方式即可進行資料的整合,打通整體開發流水線。
![](http://oscimg.oschina.net/oscnet/up-a418aa94928cc7db3a0a9b437ac380a3f21.png)
平臺部署架構(容器平臺+物理機)
軟體研運一體化平臺部署架構包括通過容器、平臺和物理機進行部署,此外,也可以通過雲部署以及支援虛擬機器的方式去部署。那最小的配置與企業使用者數相關,目前最低配需至少要有 4 臺以上的伺服器。
![](http://oscimg.oschina.net/oscnet/up-ffcbd962ebcbb64a0b3f2c03aad54759f86.png)
研發一體化平臺特點
-
自主可控流水線引擎,標準介面
-
簡單易用:視覺化拖拽設計流水線
-
原子級指令碼:豐富可擴充套件的流水線指令碼,定製接入新工具
-
全環節支援:持續整合、持續部署各環節
-
極致體驗:面向不同角色的使用設計,良好的使用者體驗
-
-
全面的程式碼檢查,提升程式碼質量
-
語言支援:Java、C/C++、JavaScript等主流語言支援
-
程式碼掃描:整合商用、自研、開源掃描工具
-
安全檢查:JAR包黑名單、資原始檔白名單、groupid和version規範、禁止快照上線等
-
智慧提示:根據掃描結果給出智慧修復提示和樣例
-
-
服務團隊協作、管控和改進
-
協作平臺:讓所有團隊協作的專案管理平臺
-
質量關卡:提升釋出軟體質量和質量管控力度
-
度量報表:為持續改進提供依據,落地研發專案度量規範
-
-
強大的研發平臺,擴充套件資源能力
-
編譯加速:多種技術提升程式碼編譯30%-80%
-
資源交付:虛擬化、容器等資源自動化部署
-
業務成功:全面支撐Biz/Dev/Ops一體化
-
國產化適配:適配國產化作業系統
-
平臺建設收益
-
適用於多種交付模式(整包、批次、按需),實現交付價值。
-
質量內嵌,通過自動化手段提高交付質量。
-
開發協同,問題/需求反饋更及時,提高交付速率。
-
主動發現研發過程潛在風險,降低交付成本。
-
承載工程師文化,增強團隊成功交付信心,提升團隊交付能力。
-
多維度指標自動採集分析展示,支援研發效能持續改進。
FlyFish開源福利
雲智慧已開源資料視覺化編排平臺 FlyFish 。通過配置資料模型為使用者提供上百種視覺化圖形元件,零編碼即可實現符合自己業務需求的炫酷視覺化大屏。 同時,飛魚也提供了靈活的拓展能力,支援元件開發、自定義函式與全域性事件等配置, 面向複雜需求場景能夠保證高效開發與交付。
點選下方地址連結,歡迎大家給
FlyFish
點贊送 Star。參與元件開發,更有萬元現金等你來拿。
GitHub 地址: http://github.com/CloudWise-OpenSource/FlyFish
Gitee 地址:http://gitee.com/CloudWise/fly-fish
微信掃描識別下方二維碼,備註【飛魚】加入AIOps社群飛魚開發者交流群,與 FlyFish 專案 PMC 面對面交流~
![](http://oscimg.oschina.net/oscnet/up-4534491d1671c3a9ac9d151cc1f0d0d53ee.png)
「其他文章」
- 行業方案|“醫療”行業智慧運維解決方案介紹
- 行業方案|“機場”行業智慧運維解決方案介紹
- “高校”行業智慧運維解決方案解析(含落地實踐)
- 深度解析智慧運維場景下“港口行業”解決方案
- FlyFish 開發者說|開源低程式碼平臺的體驗與思考
- 資料視覺化系列教程之元件通訊
- 資料視覺化系列教程之React元件使用技巧
- 資料視覺化系列教程|六大元件基礎知識
- 資料視覺化系列教程之元件構成
- 解決方案|電力行業應如何應對數字化轉型危機
- FlyFish|前端資料視覺化開發避坑指南(二)
- 從實驗室到使用者桌面,深度解析AI 落地實踐之路
- 企業實踐|基於軟體研運一體化DevOps平臺的應用解析
- 落地DevOps,探索高效研發運營一體化解決方案
- 收藏!0基礎開源資料視覺化平臺FlyFish大屏開發指南
- 如何藉助自動化工具落地DevOps|含低程式碼與DevOps應用實踐
- AIOps 還是 APM,企業使用者應如何作出選擇?
- 值得一看的智慧運維AIOps關鍵核心技術概覽!
- 高效實戰|航空業海量日誌資料的智慧化分析
- AITSM:看人工智慧如何重塑IT服務管理