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



































