隨著企業快速發展和競爭的加劇,產品和協作的復雜度提升,業務對研發效能的期望越來越高,如何提高團隊軟件交付速度要求企業具備快速響應的能力,這正是推動持續集成、持續交付、持續部署的動力。
1、用戶的訴求或問題
團隊沒有統一的研發管理流程,工具無約束,無法嚴格遵守流程規范。
發布時間長,需要人工介入多,無論從時間成本,還是由于人工介入帶來的風險都很大。
缺乏統一的研發平臺,自動化程度低,沒有有效的質量保障體系,基礎設施保障的建設往往落后于企業的快速發展。
業界有很多很好的實踐,但是復用到自己團隊卻很難,無從下手。
2、云效持續交付架構圖
云效,企業級一站式DevOps解決方案,源于阿里巴巴先進的管理理念和工程實踐,提供從“需求->開發->測試->發布->運維”端到端的協同服務和研發工具,支持多種部署形態。通過代碼掃描、代碼評審等能力,助力企業持續、快速、高質量地交付軟件。
以上架構圖中展示了企業開發團隊協同辦公的流程示意圖,流程介紹如下:
1.晨會上團隊基于云效看板進行需求、任務對齊,完成任務指派;
2.開發同學根據特性開發,創建變更分支;
3.通過線下或云端開發環境進行編程工作,然后提交代碼;
4.代碼提交自動觸發代碼掃描,并做完分支級別的驗證,發送給指定代碼評審員進行評審;
5.完成評審的代碼自動觸發集成發布流水線,自動化的完成構建,生成Docker鏡像,分別在開發環境、集成環境及預發環境進行部署,完成相應的驗證工作;驗證完之后處于待發布狀態,觸發上線審核流程,運維完成審核發布上線;
6.過程中任何問題通過釘釘,遵循no news is good news的原則,自動化地及時反饋到指定負責人,做到準確反饋、即時響應,快速恢復。盡量避免垃圾短信式反饋,過多的噪音,反而會降低協作的效率。
3、場景介紹及操作指南
第一步:通過代碼平臺進行代碼托管和評審
立即體驗:云效代碼管理 Codeup。
創建一個代碼庫
你可以開始創建自己的第一個倉庫,通過代碼庫列表右上角新建代碼庫。
基于特性分支編碼
基于控制臺新建分支,開發人員進入編碼階段,可以通過代碼平臺在線方式或者本地編碼模式,在代碼完成后提交遠端分支;在代碼提交時可以使用#ID語法建立代碼和任務的關聯,如git commit -m "#id"。
開啟代碼掃描
新建檢測任務,設置代碼提交觸發掃描檢查,在代碼提交后可以看到檢查的運行情況。
發起代碼評審
通過新建合并請求發起代碼評審,強制代碼評審有利于提高代碼質量,幫助開發人員盡早發現問題,提高問題修復的效率。
代碼合入集成分支
分支通過代碼評審后,合并到集成分支,即將進入編譯、部署、驗證、發布階段。
第二步:通過流水線實現持續交付
立即體驗:云效流水線Flow。
創建一條流水線
點擊流水線列表右上角【新建流水線】按鈕,您可以快速選擇一款適合企業場景的模板。
編輯流水線場景
通過流水線編輯功能,結合企業場景快速配置以下2條流水線:
集成環境流水線【步驟說明】
觸發方式選擇:代碼提交觸發;
集成分支開始代碼掃描和單元測試;
測試通過開始代碼構建;
編譯通過部署測試環境;
測試同學測試驗證;
驗證通過代碼合并發布分支;
發布環境流水線【步驟說明】
發布分支開始構建編譯;
編譯通過部署預發環境;
預發環境驗收測試;
驗證通過開始發布單審核;
審核通過部署生產環境;
配置質量紅線
添加紅線卡點,當前測試任務必須達到標準才能進入下階段;例如【代碼掃描】選擇“添加紅線”,可以設置:
? Blocker的問題為0
? Major的問題為0
? Critical的問題為0
開始運行流水線
開始觸發集成分支流水線,開展代碼掃描和單元測試,通過流水線可以直觀看到掃描結果是否成功,詳細結果可以通過測試報告查看。
質量紅線結果
測試任務會根據對應的質量紅線判斷,如果不通過,無法進入流水線下一階段;考慮到一些特殊的情況,未通過質量紅線的流程也需要繼續往下執行,云效也提供了“跳過”的能力,可以由管理員將紅線跳過。
查看流水線運行結果
所見即所得,流水線運行過程直觀展示,企業可完整看到當前流水線運行所處階段和場景;
?集成分支流水線
釘釘消息通知
基于任務可以快速配置消息通知,可以便于在流水線執行過程中及時接收消息通知,快速定位排查和解決問題。