隨着企業業務對軟件系統日益依賴,IT管理與研發模式也隨之對「敏捷」模式產生了需求,也就是今天人們時常提起的DevOps。提高效率,是DevOps實踐的核心內容之一。就讓咱們來一塊兒從軟件生命週期的業務流與工做流,探討DevOps實踐效率提高的方向與方法吧。編程
1、CORNERSTONE | DevOps之「流」分析服務器
軟件工程將軟件的生命週期定義爲問題定義、需求分析、軟件設計、程序編碼、軟件測試、運行維護等過程,不管是對於傳統模式、敏捷模式仍是DevOps模式,軟件生命週期過程基本一致,以下圖所示。運維
軟件生命週期各個過程也組成了軟件工程的「業務流」,而在不一樣團隊採用相應地開發模式中,具體執行的開發及相關的活動,咱們則成爲「工做流」。測試
在CORNERSTONE,DevOps實踐中,最主要改進的內容,就是對於這些 「工做流」的活動進行「關停並轉」,從而實現總體與局部上對於效率的提高。優化
這些工做,也就是須要開展的活動,能夠分爲如下幾類:編碼
人與人的互動spa
這類活動交互的雙方均爲天然人,如業務需求收集,活動的特色是具有高度的不規則與不規律性。設計
人與機的互動3d
這類活動交互的一方爲天然人,一方爲依託於計算機的程序,如編碼活動、人工審覈/審批等,活動的特色是人的活動必須依循計算機相關主題的規則,部分活動能夠抽取爲規範化的過程。blog
機與機的互動
這類活動的特色是交互的雙方都是依託於計算機的程序,如編譯構建、自動化測試,活動的過程高度規範化。不一樣的做業類型,在效率提高的優化中,須要採用的方法各有不一樣。
2、CORNERSTONE | DevOps效率提高之協做
協做的本質是在不一樣的主體之間進行快速、有效的信息共享,從而進一步協調各主體進行步調一致、有序的工做執行,實現總體上的一致性與順暢性,協做是DevOps實踐中效率提高的重要方向和內容之一。
DevOps實踐中的協做更多須要是從軟件生命週期總體系統化考慮與設計,協做設計上面主要包括如下兩個方面。
0一、信息共享
傳統的模式中,相關業務信息僅共享於各階段內部,而在CORNERSTONE中,則更強調信息的跨階段共享,面向產品的全生命週期,共享信息包括:
業務類信息
即業務目標、業務背景、業務需求、業務限制等信息。
執行類信息
即軟件開發、編譯、測試、部署等執行的相關信息,如開始時間、結束時間、執行時長、執行操做記錄等。
反饋類信息
即各步驟、階段執行的信息反饋,如需求拆分反饋、任務執行反饋、代碼編譯結果、測試結果、發佈驗證結果等。
CORNERSTONE爲以上信息提供統一的信息管理與分析平臺。對於代碼編寫以前的階段提供如敏捷協同的工做協同管理模塊,以記錄需求、任務分配、需求完成進展等信息,對於代碼編寫以後的階段,則提供相對完整的執行記錄信息以及必要的通知信息,以構建及時的反饋。
0二、協做調度
協做調度是DevOps協做實踐中另一項關鍵內容。經過CORNERSTONE平臺,可實現對於「機與機的活動」全自動協做調度,對於「人與機的活動」簡化協做調度,對於「人與人的活動」事件驅動協做調度,進而實現優化協做調度的效率,提高協做效果。
全自動協做調度
全自動的協做調度主要是經過CORNERSTONE平臺的流水線引擎實現,經過流水線編排的實現指定做業流自動執行,執行過程當中自動完成不一樣階段的信息交互,過程無需人工參與。
簡化的協做調度
簡化的協做調度也是經過CORNERSTONE平臺的流水線引擎實現,在流水線做業流中編排鬚要人工干預的節點,但僅須要人工給出經過/終止等簡單的指令型信息便可。
基於事件的協做調度
基於事件驅動的協做調度,主要是用於「人與人的活動」,也能夠用於「人與機的活動」,其經過通知、待辦等事件方式,實現精準的信息共享與推送,驅動協做的下游方快速接受和推動事務工做。
CORNERSTONE中的協做調度的效果能夠經過研發效能來進行初步的評估與衡量,經過衡量,咱們能夠較爲清晰的獲知哪一個階段的協調調度是關鍵阻礙點或能夠進一步優化。
3、CORNERSTONE | DevOps效率提高之自動化
自動化是DevOps的核心理念,也是效率提高的最重要手段。經過CORNERSTONE一站式雲端DevOps平臺,實現軟件過程自動化以及軟件過程的支撐工做自動化。
0一、軟件過程自動化
軟件過程自動化是指在軟件的開發、測試、部署等過程當中,引入自動化的手段,從而實現快速的軟件質量檢查,以及軟件應用發佈。
開發過程自動化
CORNERSTONE的代碼助手可幫助編程人員以最快的速度完成編程工做,好比當須要對外部的某個窗口進行操做時,CORNERSTONE的代碼助手可進行探測,獲取相關的窗口信息,再對其它進行操做等。
測試過程自動化
CORNERSTONE平臺覆蓋完整的測試流程,可進行測試用例的編寫,創建用例庫,減小重複性操做,讓研發團隊的協做更高效,產品交付更快速。經常使用的兩個功能爲:
1)測試用例管理
經過編寫測試⽤例,制定測試計劃並執⾏,測試結果可直接關聯到缺陷,方便對問題進行跟蹤處理,實現對迭代質量的全程把控。
2)缺陷管理
強大的缺陷管理與統計功能,經過分組、解決狀態、優先級等列表對缺陷進行全方位記錄與跟蹤,同時明確缺陷責任人,及時跟進解決缺陷;同時支持導入導出功能,導出時支持任意格式,不受模板限制。
部署過程自動化
CORNERSTONE支持依賴腳本pipeline實現的DevOps,支持持續集成與自動化部署,可直接在可視化的服務器上進行操做,同時知足多種開發語言,完全解決敏捷開發在運維層面的瓶頸,方便開發人員對項目開發生命週期進行全盤管理。
經過流水線引擎,實現以上內容的自由、可視化編排,以及按需執行。
0二、過程支撐自動化
軟件過程支撐主要是指面向軟件工程過程的支撐,實現自動化包括:
編譯構建環境自動化
編譯構建環境包括基於DevOps平臺的自管理編譯構建環境,按需生成編譯構建環境,編譯構建完成後自動銷燬,以及特定編譯構建環境的快速接入等。
測試環境自動化
測試環境自動化是指自動化測試執行所需的能力環境,如接口/UI測試腳本所需的執行環境,能夠根據測試任務的須要,實現測試環境的彈性伸縮自管理。
環境部署自動化
環境部署自動化是指對於開發、測試、生產等所須要的基礎環境,能夠根據流水線自動完成環境的使用前的生成、使用後的回收等,實現資源即代碼,無需人工參與。
在CORNERSTONE中,經過大量的過程及支撐自動化,能夠極大的減小開發、測試、運維等工做的人工參與時間,下降人工成本,並能實現人工沒法完成的工做,例如快速對10000臺服務器上的應用進行更新。但前期的建設須要涉及的技術點較多,成本也較爲巨大,如何建設落地自動化,除了考慮效率以外,還需着重考慮業務平臺的自主可控與可持續發展等方面。
4、CORNERSTONE | DevOps效率提高之持續優化
持續優化,是CORNERSTONE效率提高的第三個主要方面,也是踐行DevOps理念的重要實踐。持續優化須要解決優化什麼、如何優化等問題。這些問題的解決,須要應用DevOps精益分析的理念實踐。精益分析,本質就是對數據的統計、分析與挖掘。
0一、數據獲取
精益分析所涉及的數據應從需求提出到用戶訪問造成一個端到端閉環。數據的獲取須要從業務系統自己以及支撐業務系統的CORNERSTONE平臺兩個方向獲取。早期能夠以CORNERSTONE平臺相關數據的獲取爲主要來源,後續可持續集成來自業務系統埋點獲取的數據。在整個過程當中,須要作到數據的及時性、準確性與完整性。
0二、數據分析
數據分析須要有明確的目標和針對性,如針對業務需求提出到上線的平均週期、開發返工趨勢等,經過數據分析,能夠快速找到當前影響效率的關鍵點,從而實現針對性的改善。
0三、數據呈現
數據呈現即爲數據應用,數據呈現能夠採用兩種方式進行。
協同管理
將數據獲取/分析的結果,在CORNERSTONE的協同管理平臺實時的反饋和呈現,從而推進PO/開發團隊/干係人等根據反饋信息快速推動效率優化,經過量變引起質變,經過團隊內自我優化的方式實現效率的提高。
度量分析
針對於與效率相關的重點指標,經過可視化圖表等方式,進行專項的度量分析,並在管理與項目團隊共享指標信息以及指標的變化趨勢,經過全局監督的方式推動效率的提高。
5、結論
文化上的協同打破了流程與部門的屏障,共享了信息,協做了調度;過程當中的自動化消除了重複性的工做,下降人爲風險;業務系統與CORNERSTONE平臺的數據支持精準提供優化的方向。DevOps之因此能爲企業提高效率在於DevOps的實踐實現軟件生命週期的業務流與做業流的一致與順暢。