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

cornerstone發表於2019-10-22

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


一、 CORNERSTONE |  DevOps之“流”分析

軟體工程將軟體的生命週期定義為問題定義、需求分析、軟體設計、程式編碼、軟體測試、執行維護等過程,無論是對於傳統模式、敏捷模式還是DevOps模式,軟體生命週期過程基本一致,如下圖所示。
image.png


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


CORNERSTONEDevOps實踐中,最主要改進的內容,就是對於這些 “工作流”的活動進行“關停並轉”,從而實現整體與區域性上對於效率的提升。


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


人與人的互動

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


人與機的互動

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


機與機的互動

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


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

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

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

01、資訊共享

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

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

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

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

CORNERSTONE為以上資訊提供統一的資訊管理與分析平臺。對於程式碼編寫之前的階段提供如敏捷協同的工作協同管理模組,以記錄需求、任務分配、需求完成進展等資訊,對於程式碼編寫之後的階段,則提供相對完整的執行記錄資訊以及必要的通知資訊,以構建及時的反饋。

02、 協作排程

協作排程是DevOps協作實踐中另外一項關鍵內容。透過 CORNERSTONE平臺,可實現對於“機與機的活動”全自動協作排程,對於“人與機的活動”簡化協作排程,對於“人與人的活動”事件驅動協作排程,進而實現最佳化協作排程的效率,提升協作效果。

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

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

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

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

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

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

CORNERSTONE | DevOps全流程解決方案

01、軟體過程自動化

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


開發過程自動化


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

image.png


測試過程自動化

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


1) 測試用例管理


透過編寫測試⽤例,制定測試計劃並執⾏,測試結果可直接關聯到缺陷,方便對問題進行跟蹤處理,實現對迭代質量的全程把控。


  Clipboard Image.png


2) 缺陷管理


強大的缺陷管理與統計功能,透過分組、解決狀態、優先順序等列表對缺陷進行全方位記錄與跟蹤,同時明確缺陷責任人,及時跟進解決缺陷;同時支援匯入匯出功能,匯出時支援任意格式,不受模板限制。


Clipboard Image.png


部署過程自動化


CORNERSTONE支援依賴指令碼pipeline實現的DevOps,支援持續整合與自動化部署,可直接在視覺化的伺服器上進行操作,同時滿足多種開發語言,徹底解決敏捷開發在運維層面的瓶頸,方便開發人員對專案開發生命週期進行全盤管理。


Clipboard Image.png


透過流水線引擎,實現以上內容的自由、視覺化編排,以及按需執行。


02、 過程支撐自動化

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


編譯構建環境自動化

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


測試環境自動化

測試環境自動化是指自動化測試執行所需的能力環境,如介面/UI測試指令碼所需的執行環境,可以根據測試任務的需要,實現測試環境的彈性伸縮自管理。


環境部署自動化

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


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


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

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


01、資料獲取

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

02、 資料分析

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

image.png

03、 資料呈現

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

協同管理
將資料獲取/分析的結果,在 CORNERSTONE的協同管理平臺實時的反饋和呈現,從而推動PO/開發團隊/干係人等根據反饋資訊快速推進效率最佳化,透過量變引發質變,透過團隊內自我最佳化的方式實現效率的提升。

度量分析
針對於與效率相關的重點指標,透過視覺化圖表等方式,進行專項的度量分析,並在管理與專案團隊共享指標資訊以及指標的變化趨勢,透過全域性監督的方式推進效率的提升。
五、 結論

文化上的協同打破了流程與部門的屏障,共享了資訊,協作了排程;過程中的自動化消除了重複性的工作,降低人為風險;業務系統與 CORNERSTONE平臺的資料支援精準提供最佳化的方向。DevOps之所以能為企業提升效率在於DevOps的實踐實現軟體生命週期的業務流與作業流的一致與順暢。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69933591/viewspace-2660997/,如需轉載,請註明出處,否則將追究法律責任。

相關文章