什么是流水線?
流水線服務(wù)(CodeArts Pipeline)提供可視化、可編排的CI/CD持續(xù)交付軟件生產(chǎn)線,幫助企業(yè)快速轉(zhuǎn)型,實現(xiàn)DevOps持續(xù)交付高效自動化,縮短應(yīng)用TTM(Time to Market)交付周期,提升研發(fā)效率。
流水線服務(wù)本質(zhì)上是一個可視化的自動化任務(wù)調(diào)度平臺,需要配合軟件開發(fā)生產(chǎn)線中編譯構(gòu)建、代碼檢查、測試計劃、部署等服務(wù)的自動化任務(wù)使用。根據(jù)用戶需要的場景,如開發(fā)測試環(huán)境應(yīng)用部署、生產(chǎn)環(huán)境應(yīng)用部署等,對這些自動化任務(wù)進(jìn)行自定義編排,一次配置后就可以一鍵自動化觸發(fā)調(diào)度執(zhí)行,避免頻繁低效的手工操作。
流水線串聯(lián)研發(fā)作業(yè)全流程沉淀華為研發(fā)數(shù)字化資產(chǎn)
華為公司在軟件開發(fā)領(lǐng)域有30年以上的交付經(jīng)驗,從早期的無線基站、路由器,到后來的終端應(yīng)用,再到云計算服務(wù),持續(xù)交付和流水線作業(yè)系統(tǒng)也同樣在做持續(xù)演進(jìn)。
該演進(jìn)過程大致可分成三個階段:
第一個階段為自動化,將軟件交付的各道工序以流水線的方式統(tǒng)一定義,一次編排,可重復(fù)執(zhí)行,降低流程因手工干預(yù)導(dǎo)致的質(zhì)量風(fēng)險,極大提高了軟件開發(fā)效率。但是隨著業(yè)務(wù)的發(fā)展,研發(fā)管理者面臨新的問題:
如何保證開發(fā)人員的代碼合入質(zhì)量?
如何保證軟件交付過程中的必經(jīng)步驟都被正確執(zhí)行?
如何保證變更過程中的質(zhì)量?
如何將團(tuán)隊內(nèi)的優(yōu)秀經(jīng)驗和實踐共享給其他團(tuán)隊?
如何保證所有團(tuán)隊的工程能力建設(shè)一致?
這就需要演進(jìn)到后續(xù)階段解決上面的問題。
第二階段為標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化流程通常需要依靠人的管理,但是“人治”經(jīng)驗
以形成有效的知識資產(chǎn)被其他團(tuán)隊繼承和使用,并且軟件發(fā)布過程中時常會出現(xiàn)流程未被正確執(zhí)行而導(dǎo)致的現(xiàn)網(wǎng)事故。
流水線承載了從代碼開發(fā)到軟件發(fā)布全過程研發(fā)數(shù)據(jù),企業(yè)每年流水線作業(yè)系統(tǒng)上積累的數(shù)據(jù),都是一筆關(guān)鍵的知識資產(chǎn),要讓這批資產(chǎn)有效利用起來,也就是以數(shù)字化的方式輔助企業(yè)進(jìn)行研發(fā)治理。
第三階段為規(guī)范化。華為通過多年的持續(xù)交付實踐經(jīng)驗,總結(jié)出了一套行之有效的研發(fā)策略管理模型,以數(shù)字化的管理方式將要求內(nèi)置在流水線中,規(guī)范流水線每個階段的質(zhì)量管理要求,也將軟件交付從依靠人的治理轉(zhuǎn)變?yōu)楣ぞ吆土鞒痰淖詣踊卫恚嬲龑⑵髽I(yè)的研發(fā)治理模型和流水線作業(yè)系統(tǒng)相結(jié)合,讓開發(fā)者無感開發(fā),流程天然合規(guī)。
流水線能力特性
流水線服務(wù)具有以下特性:
流水線任務(wù)的可視化增刪改查。
基于帳號-角色-流水線操作的權(quán)限控制。
支持構(gòu)建、代碼檢查、子流水線、倉庫管理、部署、擴(kuò)展類型、流水線控制(延時執(zhí)行、人工審核)、接口測試等多種任務(wù)類型納管調(diào)度。
支持自定義增刪改查流水線階段。
支持流水線階段中納管任務(wù)的串/并行執(zhí)行配置。
支持設(shè)置流水線執(zhí)行參數(shù)。
支持選定流水線部分任務(wù)執(zhí)行。
支持查看流水線歷史執(zhí)行記錄。
支持執(zhí)行計劃配置:包括持續(xù)集成、合并請求和定時執(zhí)行三種自動觸發(fā)執(zhí)行策略。
支持流水線事件消息通知及郵件通知。
支持自定義插件以擴(kuò)展流水線執(zhí)行功能。
支持創(chuàng)建規(guī)則、策略以實現(xiàn)流水線質(zhì)量門禁的統(tǒng)一管控。
說明:其中,自定義插件、規(guī)則和策略屬于新版功能,新版服務(wù)正逐步分批開放。
什么是規(guī)則/策略?
新版流水線提供基于規(guī)則和策略的流水線階段準(zhǔn)出條件管理能力。用戶可基于插件創(chuàng)建合適的規(guī)則,設(shè)置插件輸出的閾值比較條件,并在策略中進(jìn)行引用,最終配置到流水線準(zhǔn)出條件中進(jìn)行應(yīng)用。策略是規(guī)則的集合,新版流水線服務(wù)支持租戶/項目分層策略管理,助力高效項目管理,保障產(chǎn)品交付質(zhì)量。
什么是擴(kuò)展插件?
新版流水線內(nèi)置了一系列常用的插件,供用戶在流水線進(jìn)行編排時使用。后續(xù)將陸續(xù)開放插件自定義能力,業(yè)務(wù)團(tuán)隊開發(fā)者可根據(jù)自己業(yè)務(wù)自定義開發(fā)流水線插件,以擴(kuò)展流水線自動化調(diào)度能力覆蓋的業(yè)務(wù)范圍。
什么是微服務(wù)?
微服務(wù)是一種軟件治理架構(gòu),一個大型的復(fù)雜軟件項目,可以由一個或多個微服務(wù)組成,系統(tǒng)中各個微服務(wù)之間是松耦合的,各微服務(wù)并行獨(dú)立開發(fā)、構(gòu)建、驗證及部署上線。微服務(wù)具備以下優(yōu)點:
邊界清晰:每一個微服務(wù)只關(guān)注一個特定的業(yè)務(wù)功能,開發(fā)和維護(hù)單個微服務(wù)都相對簡單。
支持獨(dú)立部署:單個微服務(wù)獨(dú)立部署更新,不會對整個業(yè)務(wù)運(yùn)行造成影響,保證業(yè)務(wù)7*24小時在線。
技術(shù)多樣化:微服務(wù)可以使用不同的技術(shù)棧來實現(xiàn),不同服務(wù)之間通過restful API通信,每個服務(wù)可以使用不同的技術(shù)框架和不同的存儲庫來實現(xiàn)。
什么是變更?
變更是一次研發(fā)交付活動的載體,項目的需求研發(fā)和漏洞修復(fù)都可以放在變更上來實現(xiàn),一個變更只能屬于一個微服務(wù)。
變更有自己的發(fā)布生命周期:開發(fā)中 > 待發(fā)布 > 發(fā)布中 > 已發(fā)布。微服務(wù)可以通過變更流水線發(fā)布一個或多個變更來實現(xiàn)項目的快速交付。同時,變更作為研發(fā)交付的載體,可以在變更上添加門禁、評審等流程來控制變更的質(zhì)量。
如何登錄流水線
操作步驟
1、登錄軟件開發(fā)生產(chǎn)線首頁。
2、在頂部導(dǎo)航欄單擊“服務(wù) > 流水線”,進(jìn)入流水線列表頁面。
查看與當(dāng)前用戶相關(guān)的流水線任務(wù)列表。
說明:單擊“新建流水線”旁的下拉框,可以根據(jù)“全部流水線”、“我新建的”及“最后一次記錄由我執(zhí)行的”進(jìn)行過濾。
支持在搜索欄中輸入流水線名稱關(guān)鍵字進(jìn)行搜索。
|
參數(shù)項
|
說明
|
|---|---|
名稱 |
項目名稱/流水線名稱:流水線所屬項目名稱和流水線名稱。 |
最近一次執(zhí)行 |
展示最近一次流水線的執(zhí)行信息:分支、最近一次代碼提交的CommitID及描述等信息。 |
執(zhí)行類型 |
展示最近一次流水線的執(zhí)行方式和執(zhí)行人等信息。 |
最近執(zhí)行時間 |
展示最近一次執(zhí)行記錄開始的時間。 |
執(zhí)行時長 |
展示最近一次執(zhí)行記錄持續(xù)的時長。 |
操作 |
單擊操作列又三角按鈕,可以執(zhí)行流水線;單擊三點按鈕,可以編輯、復(fù)制、刪除流水線;單擊星號,可以關(guān)注流水線,關(guān)注成功后圖標(biāo)變?yōu)橛斜尘靶翘?,再次單擊可取消關(guān)注。 |
工作流 |
展示流水線的調(diào)度流程及執(zhí)行狀態(tài)(已完成、失敗、運(yùn)行中、已停止等)。 |