探秘企業(yè)DevOps一體化平臺建設(shè)終極形態(tài)丨IDCF

筆者從事為企業(yè)提供研發(fā)效能改進解決方案相關(guān)工作十幾年,為國內(nèi)上百家企業(yè)提供過DevOps咨詢及解決方案落地解決方案,涉及行業(yè)包括:金融、通信、制造、互聯(lián)網(wǎng)、快銷等多種行業(yè)。
DevOps的核心是研發(fā)效能改進,效能的提升離不開強大工具的支撐,因此在DevOps如火如荼的今天,承載研發(fā)效能改進的企業(yè)DevOps一體化平臺工具建設(shè)變得非常炙手可熱。
所以,工具鏈建設(shè)過程中,很多人都會有這些疑問:當(dāng)前DevOps工具發(fā)展情況如何?為什么近期國內(nèi)開始涌現(xiàn)大量的DevOps一體化工具平臺,其中很多有實力的企業(yè)甚至自研DevOps一體化平臺工具?自研DevOps一體化平臺工具應(yīng)該如何做?未來的DevOps發(fā)展方向會如何?
通過下面的內(nèi)容使大家在DevOps工具建設(shè)過程中少走一些彎路。
當(dāng)前DevOps工具發(fā)展情況
1.1豐富的可用工具集

自從2010年DevOps這個專屬名詞推廣開來以后,所有和軟件研發(fā)過程管理相關(guān)的工具都可以劃入到DevOps工具集中,這些工具從功能范圍上可以分為兩大類:
All-In-One類(DevOps一體化平臺類):即工具具備軟件研發(fā)主要過程的管理能力,例如上圖中微軟的Azure DevOps,Atlassian的全家桶(包括我們熟知的Confluence,Jira,Bitbucket,Bamboo等)。
領(lǐng)域?qū)W㈩悾?/strong>這類工具大都只專注于一種或者多種能力,例如只專注于條目化跟蹤管理的Jira,禪道,Clickup等,這些工具大多核心能力是進行條目化跟蹤管理的,可以覆蓋需求、變更以及缺陷等多種企業(yè)常見軟件研發(fā)管理流程。
1.2井噴式出現(xiàn)的國內(nèi)DevOps工具
當(dāng)前國內(nèi)出現(xiàn)了大量的DevOps一體化平臺工具,例如阿里的云效、華為的DevCloud、京東的行云,Gitee,博云等諸多商用DevOps一體化平臺工具。當(dāng)然也有很多企業(yè)開始自研平臺工具。導(dǎo)致這種狀況的主要原因有三個:
隨著開源社區(qū)的發(fā)展,使得企業(yè)基于開源工具定制化更加適合自身要求的平臺工具越發(fā)簡單。
國內(nèi)的軟件行業(yè)經(jīng)過多年發(fā)展,逐漸形成了一套適合自身需要的管理方法,也誕生了諸多優(yōu)秀工具。隨著企業(yè)對工具的整合,逐漸具備了DevOps一體化平臺的基礎(chǔ)。
部分企業(yè)由于國際環(huán)境原因,開始逐步放棄國際上成熟的優(yōu)秀DevOps一體化平臺工具,轉(zhuǎn)而在國內(nèi)尋求優(yōu)秀替代品,或者干脆自行研發(fā)。
1.3國內(nèi)DevOps工具建設(shè)問題
雖然目前市場上有很多國內(nèi)的DevOps產(chǎn)品,但是或多或少會有一些開源工具的影子,有些干脆就是基于開源工具套了一個殼子。這種方式可以讓產(chǎn)品快速投入使用,但是同時也會有很多的問題。
技術(shù)封裝不到位
流程管理模式僵化
擴展性差、定制化強烈依賴二次開發(fā)
管理維度能力較強,工程維度專業(yè)度不足
可度量設(shè)計缺失、數(shù)據(jù)分散
DevOps工具優(yōu)化方案
2.1企業(yè)DevOps一體化平臺能力
一款好的DevOps平臺產(chǎn)品從研發(fā)流程跟蹤與管理,到端到端的自動化高質(zhì)量制品生成及交付,應(yīng)該具備強大的業(yè)務(wù)功能:
研發(fā)過程覆蓋
應(yīng)該完整覆蓋軟件研發(fā)的主要過程:流程跟蹤(需求、變更、缺陷以及測試等),源代碼管理,自動化流水線,測試管理,制品管理等。
開箱即用
為最大限度的滿足主要客戶需求,提供開箱即用的配置及工具,例如:提供敏捷、看板等管理工具,提供主流技術(shù)棧的流水線開箱即用模板,并且提供調(diào)用主流自動化測試工具以及環(huán)境部署的流水線任務(wù)。
團隊協(xié)作
在工程管理維度上,應(yīng)該具備跨系統(tǒng),跨團隊的協(xié)同管理能力。
端到端的DevOps工具鏈
一定要具備協(xié)助企業(yè)搭建端到端的DevOps廣義流水線的能力。也就是說基于DevOps平臺工具可以將涉及軟件研發(fā)的所有流程工具、研發(fā)工具、測試工具及運維工具等統(tǒng)一整合起來的能力。

DevOps度量體系
如果希望建立企業(yè)級的DevOps持續(xù)改進機制,能有一種持續(xù)可行的研發(fā)效能提升體制,那么研發(fā)度量一定是必不可少的最重要依據(jù)。在當(dāng)下工具功能已經(jīng)足夠完善的情況下,產(chǎn)品的最大賣點應(yīng)該是幫發(fā)現(xiàn)問題,分析問題,以及提供解決問題的數(shù)據(jù)依據(jù),最后成為企業(yè)持續(xù)改進的內(nèi)建度量標(biāo)準(zhǔn)。

一切皆代碼
DevOps一體化平臺工具除需求管理外,其他主要功能模塊應(yīng)該都可以通過腳本進行編排,即Everything As Code(一切皆代碼)。
2.2DevOps一體化平臺結(jié)構(gòu)

具有普適性的基礎(chǔ)管理能力
具有靈活的流程管理配置能力
具有完善的產(chǎn)品擴展能力
對外提供標(biāo)準(zhǔn)Web API
基于DevOps一體化平臺產(chǎn)品的擴展框架
完善的消息推送機制
不可或缺的產(chǎn)品定制化能力
DevOps工具鏈的終極形態(tài)構(gòu)想

未來的編碼趨勢一定是IDE輕量化,這點大家可以查一查現(xiàn)在Web IDE的熱度,VS Code在短時間內(nèi)收獲大量用戶就是一個最好的證明。那么基于IDE的網(wǎng)頁化,DevOps一定將走向輕量化,不應(yīng)該再像現(xiàn)在一樣,需要維護一個功能復(fù)雜的工具界面,這些功能應(yīng)該被直接集成在IDE中。DevOps平臺工具在功能設(shè)計上應(yīng)該只有3個核心模塊:流程管理,后臺服務(wù),度量。
流程管理:主要提供給利益干系人、管理者進行信息查看和流程操作使用,此功能需要有對外展示頁面。但是開發(fā)團隊只需要使用輕量化的IDE完成所有操作即可,所有信息與操作均可以在IDE上直接、精確的顯示與操作。
后臺服務(wù):提供包括代碼管理、流水線管理和制品管理等其他核心服務(wù)。
度量:可以根據(jù)任意維度顯示所有與開發(fā)活動相關(guān)的數(shù)據(jù),包括流程管理數(shù)據(jù)、工程管理數(shù)據(jù)、行為數(shù)據(jù)(例如開發(fā)人員的代碼開發(fā)習(xí)慣,開發(fā)時長,代碼質(zhì)量分析等等)。并且可以快速的形成報表進行展示。
從技術(shù)上,整個環(huán)境應(yīng)該都運行在基于容器化編排平臺運行的容器中,并且相較于傳統(tǒng)DevOps平臺工具上的差異:
環(huán)境:DevOps平臺工具、開發(fā)IDE、DevOps自動化流水線運行環(huán)境、應(yīng)用運行環(huán)境
DevOps組件:豐富的DevOps功能接口、通用化JS集成框架、實時的研發(fā)數(shù)據(jù)動態(tài)收集功能
DIS(DevOps Integration Service):易于配置的集成服務(wù)、兼容主流DevOps工具集、開源化運營,便于使用者的二次定制化

今晚8點,【冬哥有話說】邀請到本文作者 薄濤老師,帶來直播分享《企業(yè)DevOps一體化平臺建設(shè)思路-終極形態(tài)是什么?》,歡迎感興趣的朋友來收聽和交流!

