天天看點

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

随着企業業務對軟體系統日益依賴,IT管理與研發模式也随之對“靈活”模式産生了需求,也就是今天人們時常提起的DevOps。提升效率,是DevOps實踐的核心内容之一。就讓我們來一起從軟體生命周期的業務流與工作流,探讨DevOps實踐效率提升的方向與方法吧。

一、CORNERSTONE | DevOps之“流”分析

軟體工程将軟體的生命周期定義為問題定義、需求分析、軟體設計、程式編碼、軟體測試、運作維護等過程,無論是對于傳統模式、靈活模式還是DevOps模式,軟體生命周期過程基本一緻,如下圖所示。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

軟體生命周期各個過程也組成了軟體工程的“業務流”,而在不同團隊采用相應地開發模式中,具體執行的開發及相關的活動,我們則成為“工作流”。

在CORNERSTONE,DevOps實踐中,最主要改進的内容,就是對于這些 “工作流”的活動進行“關停并轉”,進而實作整體與局部上對于效率的提升。

這些工作,也就是需要開展的活動,可以分為以下幾類:

人與人的互動

這類活動互動的雙方均為自然人,如業務需求收集,活動的特點是具備高度的不規則與不規律性。

人與機的互動

這類活動互動的一方為自然人,一方為依托于計算機的程式,如編碼活動、人工稽核/審批等,活動的特點是人的活動必須依循計算機相關主題的規則,部分活動可以抽取為規範化的過程。

機與機的互動

這類活動的特點是互動的雙方都是依托于計算機的程式,如編譯建構、自動化測試,活動的過程高度規範化。不同的作業類型,在效率提升的優化中,需要采用的方法各有不同。

二、CORNERSTONE | DevOps效率提升之協作

協作的本質是在不同的主體之間進行快速、有效的資訊共享,進而進一步協調各主體進行步調一緻、有序的工作執行,實作整體上的一緻性與順暢性,協作是DevOps實踐中效率提升的重要方向和内容之一。

DevOps實踐中的協作更多需要是從軟體生命周期整體系統化考慮與設計,協作設計上面主要包括以下兩個方面。

01、資訊共享

傳統的模式中,相關業務資訊僅共享于各階段内部,而在CORNERSTONE中,則更強調資訊的跨階段共享,面向産品的全生命周期,共享資訊包括:

業務類資訊

即業務目标、業務背景、業務需求、業務限制等資訊。

執行類資訊

即軟體開發、編譯、測試、部署等執行的相關資訊,如開始時間、結束時間、執行時長、執行操作記錄等。

回報類資訊

即各步驟、階段執行的資訊回報,如需求拆分回報、任務執行回報、代碼編譯結果、測試結果、釋出驗證結果等。

CORNERSTONE為以上資訊提供統一的資訊管理與分析平台。對于代碼編寫之前的階段提供如靈活協同的工作協同管理子產品,以記錄需求、任務配置設定、需求完成進展等資訊,對于代碼編寫之後的階段,則提供相對完整的執行記錄資訊以及必要的通知資訊,以建構及時的回報。

02、協作排程

協作排程是DevOps協作實踐中另外一項關鍵内容。通過CORNERSTONE平台,可實作對于“機與機的活動”全自動協作排程,對于“人與機的活動”簡化協作排程,對于“人與人的活動”事件驅動協作排程,進而實作優化協作排程的效率,提升協作效果。

全自動協作排程

全自動的協作排程主要是通過CORNERSTONE平台的流水線引擎實作,通過流水線編排的實作指定作業流自動執行,執行過程中自動完成不同階段的資訊互動,過程無需人工參與。

簡化的協作排程

簡化的協作排程也是通過CORNERSTONE平台的流水線引擎實作,在流水線作業流中編排需要人工幹預的節點,但僅需要人工給出通過/終止等簡單的指令型資訊即可。

基于事件的協作排程

基于事件驅動的協作排程,主要是用于“人與人的活動”,也可以用于“人與機的活動”,其通過通知、待辦等事件方式,實作精準的資訊共享與推送,驅動協作的下遊方快速接受和推進事務工作。

CORNERSTONE中的協作排程的效果可以通過研發效能來進行初步的評估與衡量,通過衡量,我們可以較為清晰的獲知哪個階段的協調排程是關鍵阻礙點或可以進一步優化。

三、CORNERSTONE | DevOps效率提升之自動化

自動化是DevOps的核心理念,也是效率提升的最重要手段。通過CORNERSTONE一站式雲端DevOps平台,實作軟體過程自動化以及軟體過程的支撐工作自動化。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

01、軟體過程自動化

軟體過程自動化是指在軟體的開發、測試、部署等過程中,引入自動化的手段,進而實作快速的軟體品質檢查,以及軟體應用釋出。

開發過程自動化

CORNERSTONE的代碼助手可幫助程式設計人員以最快的速度完成程式設計工作,比如當需要對外部的某個視窗進行操作時,CORNERSTONE的代碼助手可進行探測,擷取相關的視窗資訊,再對其它進行操作等。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

測試過程自動化

CORNERSTONE平台覆寫完整的測試流程,可進行測試用例的編寫,建立用例庫,減少重複性操作,讓研發團隊的協作更高效,産品傳遞更快速。常用的兩個功能為:

1)測試用例管理

通過編寫測試⽤例,制定測試計劃并執⾏,測試結果可直接關聯到缺陷,友善對問題進行跟蹤處理,實作對疊代品質的全程把控。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

2)缺陷管理

強大的缺陷管理與統計功能,通過分組、解決狀态、優先級等清單對缺陷進行全方位記錄與跟蹤,同時明确缺陷責任人,及時跟進解決缺陷;同時支援導入導出功能,導出時支援任意格式,不受模闆限制。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

部署過程自動化

CORNERSTONE支援依賴腳本pipeline實作的DevOps,支援持續內建與自動化部署,可直接在可視化的伺服器上進行操作,同時滿足多種開發語言,徹底解決靈活開發在運維層面的瓶頸,友善開發人員對項目開發生命周期進行全盤管理。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

通過流水線引擎,實作以上内容的自由、可視化編排,以及按需執行。

02、過程支撐自動化

軟體過程支撐主要是指面向軟體工程過程的支撐,實作自動化包括:

編譯建構環境自動化

編譯建構環境包括基于DevOps平台的自管理編譯建構環境,按需生成編譯建構環境,編譯建構完成後自動銷毀,以及特定編譯建構環境的快速接入等。

測試環境自動化

測試環境自動化是指自動化測試執行所需的能力環境,如接口/UI測試腳本所需的執行環境,可以根據測試任務的需要,實作測試環境的彈性伸縮自管理。

環境部署自動化

環境部署自動化是指對于開發、測試、生産等所需要的基礎環境,可以根據流水線自動完成環境的使用前的生成、使用後的回收等,實作資源即代碼,無需人工參與。

在CORNERSTONE中,通過大量的過程及支撐自動化,可以極大的減少開發、測試、運維等工作的人工參與時間,降低人工成本,并能實作人工無法完成的工作,例如快速對10000台伺服器上的應用進行更新。但前期的建設需要涉及的技術點較多,成本也較為巨大,如何建設落地自動化,除了考慮效率之外,還需着重考慮業務平台的自主可控與可持續發展等方面。

四、CORNERSTONE | DevOps效率提升之持續優化

持續優化,是CORNERSTONE效率提升的第三個主要方面,也是踐行DevOps理念的重要實踐。持續優化需要解決優化什麼、如何優化等問題。這些問題的解決,需要應用DevOps精益分析的理念實踐。精益分析,本質就是對資料的統計、分析與挖掘。

01、資料擷取

精益分析所涉及的資料應從需求提出到使用者通路形成一個端到端閉環。資料的擷取需要從業務系統本身以及支撐業務系統的CORNERSTONE平台兩個方向擷取。早期可以以CORNERSTONE平台相關資料的擷取為主要來源,後續可持續內建來自業務系統埋點擷取的資料。在整個過程中,需要做到資料的及時性、準确性與完整性。

02、資料分析

資料分析需要有明确的目标和針對性,如針對業務需求提出到上線的平均周期、開發返工趨勢等,通過資料分析,可以快速找到目前影響效率的關鍵點,進而實作針對性的改善。

CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?

03、資料呈現

資料呈現即為資料應用,資料呈現可以采用兩種方式進行。

協同管理

将資料擷取/分析的結果,在CORNERSTONE的協同管理平台實時的回報和呈現,進而推動PO/開發團隊/幹系人等根據回報資訊快速推進效率優化,通過量變引發質變,通過團隊内自我優化的方式實作效率的提升。

度量分析

針對于與效率相關的重點名額,通過可視化圖表等方式,進行專項的度量分析,并在管理與項目團隊共享名額資訊以及名額的變化趨勢,通過全局監督的方式推進效率的提升。

五、結論

文化上的協同打破了流程與部門的屏障,共享了資訊,協作了排程;過程中的自動化消除了重複性的工作,降低人為風險;業務系統與CORNERSTONE平台的資料支援精準提供優化的方向。DevOps之是以能為企業提升效率在于DevOps的實踐實作軟體生命周期的業務流與作業流的一緻與順暢。CORNERSTONE | DevOps平台是如何實作開發效率的雙倍提升?