CI/CD 最佳实践的基本原则
持續集成和持續部署(CI/CD)是許多組織使用的敏捷方法。它正在幫助這些組織有效、安全地發行軟件。
根據 GitLab 2020 DevSecOps 調查,幾乎 83%的開發人員表示,他們正在比以前更快、更頻繁地發布代碼。59%的公司表示他們幾乎每天都要發布多次。而這是因為采用了 DevOps 方法,并且主要歸功于持續集成、自動化測試和持續部署。
每個組織都試圖在建立 CI/CD 流水線時引入自己的方法,最終找到完美的平衡,我們通常將其稱為“最佳實踐”。本文就來談一些有效且安全的 CI/CD 流水線的基本原則。
可靠性
在軟件開發生命周期中擁有 CI/CD 流水線工具是組織能夠快速構建和交付應用程序的一大福音,但與此同時,選擇正確的 CI/CD 工具也相當重要,其應當能夠隨業務組織發展而擴展,并且運行準確無誤。而且,它還應該足夠靈活,可以處理多種用例和多種軟件交付需求。
CI 流水線應當很快
使 CI/CD 流水線盡可能快是非常重要的。我們所有的自動化測試都運行在開發環境中的 CI 流水線上,而其最終會被部署到生產環境中。因此,涵蓋所有邊緣情況和潛在的致命失效非常重要,同時,我們需要確保所有這些更改不會在我們的代碼中造成任何無法預料的錯誤。因此,同時保持 CI 流水線簡單、快速和安全非常重要。
隨著微服務架構的廣泛采用,CI 流水線變得簡單明了(不同于單體架構的情形)。但是如果流水線任務繁重,最好移除一些不會產生重大影響的測試,并且記錄下這種取舍。我們還應該確定測試的優先順序。運行較快的測試應首先執行。例如,單元測試比較快,而且是程序功能或模塊的基礎,因此應當首先執行,然后再進行功能測試和集成測試。這樣,我們可以盡早發現錯誤并節省時間。開發者應該在推送代碼之前在本地運行測試以盡早發現錯誤。
在獨立環境中構建和運行
從 CI/CD 流水線的安全性以及確保它類似于預發布環境和生產環境的角度講,在獨立的環境中運行 CI/CD 流水線一直都很重要,這可以確保我們的測試結果更加準確。
我們可以使用 Docker 或其他任何容器化工具來運行我們的測試套件,也可以在 Docker 容器中為我們的應用程序安裝其他依賴。這樣,我們可以確保測試在完全隔離的環境中運行,并且不受底層主機的任何影響。由于我們的 CI/CD 平臺可以完全訪問我們的代碼倉庫,因此大多數組織也習慣于在自己的云平臺基礎設施中部署 CI/CD 工具以確保安全。
許多組織邁出了更大一步,他們還在隔離環境中渲染和測試 UI 組件。在將它們作為獨立的構建塊交付并集成到一個或多個項目中之前,此過程是一種驗證它們確實獨立的方法(這通常使用 Bit(Github)完成)。
預發布環境和生產環境等價
建議始終保持預發布環境和生產環境等價,以避免運行測試時發生意外錯誤導致發布暫停這種小概率事件。我們的 CI/CD 流水線首先經過運行測試和在預發布環境中部署的階段。測試后,該應用會自動升級(或手動部署)到生產環境。
使開發和測試環境完全等價于生產環境非常困難,但我們可以在需要時做出決定保持他們盡可能相似,并且了解我們正在做出的取舍。大多數組織還使用“藍綠部署”或“金絲雀發布”的部署策略,在該策略中,我們首先在生產環境中部署應用并處理大約 1% 的流量。然后將流量提高到 100%,或者也可以較為輕松的回滾到之前的版本。
總結
所有 CI/CD 工具都不相同,每個組織都盡可能以最有效和便捷的方式利用 CI/CD。但以上是一些最佳實踐,每個人都應注意并遵循這些最佳實踐,以避免將來出現問題。每個組織都應授權并僅通過 CI/CD 流水線來發布軟件,以提高代碼質量和組織的編碼規范。
總結
以上是生活随笔為你收集整理的CI/CD 最佳实践的基本原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中使用httpx模块详解
- 下一篇: Python 办公自动化之一 Excel