你如何定義持續(xù)集成/持續(xù)部署管道取決于你組織的要求。
持續(xù)集成continuousintegration/持續(xù)部署continuousdeployment(CI/CD)管道是每個(gè)DevOps計(jì)劃的基礎(chǔ)。CI/CD管道打破了傳統(tǒng)的開發(fā)孤島,使開發(fā)和運(yùn)營團(tuán)隊(duì)能夠在整個(gè)軟件開發(fā)生命周期中進(jìn)行協(xié)作。
更好的是,轉(zhuǎn)向DevOps和CI/CD管道可以幫助你的組織以更高的速度更安全地交付軟件。
拆解CI/CD管道CI/CD管道有很多定義,所以我總是建議組織定義自己的CI/CD管道版本和其他DevOps概念,而不是使用其他人的。開源CI/CD工具為你提供構(gòu)建滿足組織要求的CI/CD管道的自由和選擇。
形成CI/CD管道的階段是將不同的任務(wù)子集分組為管道階段。典型的管道階段包括:
構(gòu)建:開發(fā)人員編譯應(yīng)用程序代碼。測試:質(zhì)量保證(QA)團(tuán)隊(duì)使用自動(dòng)化測試工具和策略測試應(yīng)用程序代碼。發(fā)布:開發(fā)團(tuán)隊(duì)將應(yīng)用程序代碼交付到代碼庫。部署:DevOps團(tuán)隊(duì)將應(yīng)用程序代碼分階段投入生產(chǎn)。安全性和合規(guī)性:QA團(tuán)隊(duì)根據(jù)項(xiàng)目要求驗(yàn)證構(gòu)建。這是組織部署容器掃描工具的階段,這些工具根據(jù)常見漏洞和暴露CommonVulnerabilitiesandExposures(CVE)檢查容器鏡像的質(zhì)量。這些是CI/CD管道的標(biāo)準(zhǔn)階段,但一些組織調(diào)整CI/CD管道模型以滿足他們的要求。例如,為醫(yī)療保健市場構(gòu)建應(yīng)用程序的組織,具有嚴(yán)格的合規(guī)性標(biāo)準(zhǔn),可以在整個(gè)工具鏈中分發(fā)測試、驗(yàn)證和合規(guī)性門檻。
其他示例可能是依賴于具有開源軟件(OSS)的復(fù)雜軟件供應(yīng)鏈的組織。商業(yè)組件可能會(huì)設(shè)立一個(gè)門檻,開發(fā)團(tuán)隊(duì)成員可以在其中為OSS包生成軟件物料清單softwarebillofmaterials(SBOM),或者外部商業(yè)軟件供應(yīng)商必須將SBOM作為其合同可交付成果的一部分進(jìn)行交付。
CI/CD管道的障礙實(shí)施CI/CD管道會(huì)改變團(tuán)隊(duì)的流程和文化。盡管許多開發(fā)人員愿意接受某些任務(wù)和測試的自動(dòng)化,但人員可能成為采用CI/CD的障礙。
從瀑布式流程轉(zhuǎn)向CI/CD可能會(huì)動(dòng)搖某些組織中基本的和隱含的權(quán)力結(jié)構(gòu)。由于CI/CD管道提高了軟件交付速度,舊手動(dòng)流程的“守門人”可能會(huì)受到這種變化的威脅。
整合機(jī)會(huì)隨著你在文化、流程和工具中達(dá)到更高的DevOps成熟度水平,包含CI/CD工具鏈的工具的開源根源為一些激動(dòng)人心的集成創(chuàng)造了機(jī)會(huì)。
分析公司Forrester在2020年預(yù)測,即時(shí)學(xué)習(xí)just-in-timelearning將加入CI/CD管道。如果你考慮一下,會(huì)發(fā)現(xiàn)這是有道理的。在當(dāng)前***工作的時(shí)代,甚至對于新員工的***入職,這更有意義。例如,組織可以將文檔wiki與內(nèi)部流程文檔集成到其管道中。
更雄心勃勃的組織可以將學(xué)習(xí)管理系統(tǒng)(LMS)(例如Moodle)集成到其CI/CD管道中。它可以使用LMS發(fā)布有關(guān)新DevOps工具鏈功能的簡短視頻,開發(fā)人員在加入時(shí)或在整個(gè)管道中更新工具時(shí)需要學(xué)習(xí)這些功能。
一些組織正在將群聊和其他協(xié)作工具直接集成到他們的CI/CD管道中。聊天平臺(tái)提供警報(bào)并支持團(tuán)隊(duì)之間的協(xié)作和溝通。將Mattermost、Rocket.Chat或其他企業(yè)聊天平臺(tái)集成到你的CI/CD管道中需要預(yù)先規(guī)劃和分析,以確保管道用戶不會(huì)被警報(bào)淹沒。
另一個(gè)需要探索的集成機(jī)會(huì)是將分析和高級報(bào)告構(gòu)建到你的CI/CD管道中。這有助于你利用通過管道傳輸?shù)臄?shù)據(jù)。
總結(jié)CI/CD管道是DevOps的基礎(chǔ)。開源使其能夠適應(yīng)并靈活地滿足你在DevOps之旅中實(shí)施的運(yùn)營變更所產(chǎn)生的新需求。
我希望看到對統(tǒng)一DevOps平臺(tái)趨勢的開源響應(yīng),在這種趨勢中,組織尋求端到端的CI/CD解決方案。這種解決方案的要素就在那里。畢竟,GitLab和GitHub將他們的平臺(tái)追溯到開源根源。
最后,不要忘記每一個(gè)成功的CI/CD工具鏈背后的教育和外展。記錄你的工具鏈和相關(guān)流程將改善開發(fā)人員入職和持續(xù)的DevOps團(tuán)隊(duì)培訓(xùn)。
你和你的組織如何定義你的CI/CD工具鏈?請?jiān)谠u論中分享你的反饋。
via:https://opensource.com/article/21/6/what-cicd-pipeline
作者:WillKelly選題:lujun9972譯者:baddate校對:wxy
本文由LCTT原創(chuàng)編譯,Linux中國榮譽(yù)推出