持續交付中實現的8個關鍵點
1.對所有生產工件使用版本控制
版本控制是將所有生產工件納入版本控制系統(例如GitHub或Subversion)管理,包括應用程序代碼,應用程序配置,系統配置以及用于自動構建和配置環境的腳本。
2.自動化部署過程
部署自動化是指部署完全自動化且不需要人工干預的程度。
3.實施持續集成
持續集成(CI)是實現持續交付的第一步。這是一種開發實踐,其中的代碼會定期檢入,每次檢入都會觸發一組快速測試,以發現嚴重的回歸問題,開發人員會立即對其進行修復。CI流程將創建規范的構建和程序包,并最終進行部署和發布。
4.使用基于主干開發方法
基于主干的開發模式已被證明可以實現軟件開發和交付中的高性能。它的特點是在代碼存儲庫中少于三個活動分支。在合并入主干分支之前具有非常短的生命周期(例如,少于一天)的分支;應用程序團隊很少或從來沒有“code lock”期,因為合并沖突,代碼凍結或穩定階段,沒人能簽入代碼或執行拉取請求。
5.實施測試自動化
測試自動化是一種在整個開發過程中自動(而非手動)連續運行軟件測試的實踐。有效的測試套件是可靠的,也就是說,測試會發現真正的失敗,并且只能通過可發布的代碼。請注意,開發人員應主要負責創建和維護自動化測試套件。
6.支持測試數據管理
測試數據需要仔細的維護,并且測試數據管理已成為自動化測試中越來越重要的部分。有效的做法包括擁有足夠的數據來運行您的測試套件,按需獲取必要數據的能力,在管道中對測試數據進行條件調整的能力以及不限制可以運行的測試數量的數據。但是,我們確實要警告,團隊應盡可能減少運行自動化測試所需的測試數據量。
7.左移安全性
將安全性集成到軟件開發過程的設計和測試階段是提高IT性能的關鍵。這包括對應用程序進行安全審查,包括在應用程序的設計和演示過程中的信息安全團隊,使用預先批準的安全性庫和程序包,以及將安全性功能作為自動化測試套件的一部分進行測試。
8.實施持續交付(CD)
CD是一種開發實踐,其中軟件在其整個生命周期中都處于可部署狀態,并且團隊優先考慮使軟件保持在可部署狀態,而不是研究新功能。所有團隊成員都可以快速獲得有關系統質量和可部署性的反饋,當他們收到有關系統不可部署的報告時,可以快速進行修復。最后,可以根據需要隨時將系統部署到生產或最終用戶。