企業的開發團隊如何在不犧牲功能和更新完整性的情況下縮短開發生命周期?
DevOps通常被定義為將軟件開發與IT運營相結合的軟件開發方法。其目標是縮短系統的開發生命周期,同時根據業務目標頻繁地提供功能、修復和更新。
將DevOps付諸實踐是許多組織正在進行的實驗。開發人員經常在持續集成(CI)/持續交付(CD)性能、測試延遲和其他瓶頸方面遇到困難。事實上,一項調查顯示,只有34%的項目按時完成,只有42%的項目按預算完成。企業的安全和開發團隊必須協作以跟上快速的開發生命周期,而不會在每次更新時犧牲安全性。
企業軟件即服務(SaaS)應用程序不像傳統軟件那樣分布;它們持續運行服務。所以,持續交付(CD)就是用一組更改來更新服務。在像AWS和Heroku這樣的公共云中,這是通過管道階段(例如,開發、測試、分段和生產)完成的。在像Salesforce這樣的平臺中,階段變成了沙盒環境、臨時的組織和生產實例。
開發團隊如何在不犧牲功能和更新完整性的情況下縮短開發生命周期?在這篇文章中,Copado公司產品副總裁David Brooks分享了實現可預測、可靠的發布管理的關鍵步驟。
數據點1:高級計劃確保所有框都被選中
敏捷規劃現在是企業開發的準則。如果團隊成員之間需要定期的面對面交互和協作,以及當最終產品需要在整個生命周期中定期更新、監控和持續交付給客戶時,最好使用它。
對于持續交付(CD),請確保企業的用戶情景正確,并且每個情景都匯總到代表獨立功能的平臺。這使其團隊能夠發布可由用戶使用并可追溯到企業發布計劃的功能。另外,定義在驗證階段使用的接受標準,這樣就知道什么時候做了一些事情。
數據點2:管理源代碼,尤其是在共享環境中工作時
有一些應用程序創建實踐會影響持續交付(CD)。首先,源代碼不是企業解決方案的唯一元素。模式、用戶界面、訪問控制權限,以及圖標和圖像等靜態資源都是創建過程的一部分,應該像源代碼一樣勤勉地進行管理。它們都應該作為單一事實來源簽入版本控制系統(VCS)。
其次,確保開發人員在隔離環境中進行更改。在像Salesforce.com這樣的低代碼平臺中,這將成為一項挑戰,但即使在數據庫中,多個數據庫管理(DBA)也可以在共享環境中工作時互相干擾。
數據點3:自動化質量流程難以實施
Selenium是測試功能的一個絕佳工具,應該成為企業實踐的一部分。但是,在進行功能測試之前,應該進行多次驗證。像PMD這樣的靜態代碼分析工具對于確保企業的開發團隊針對單一樣式進行編碼至關重要。
定義團隊樣式并強制使用。單元測試覆蓋率也很重要,將它們與至少75%的覆蓋率結合起來。最后,在這些自動化測試通過之后,實現同行評審。經驗豐富的員工能夠發現性能改進的機會,而自動化工具卻不一定。
數據點4:應在具有嚴格質量門的已定義管道中發布更改
持續交付(CD)的打包是關于捕獲可以逐步釋放到下一階段或環境中的更改。開發團隊應為每個階段專門設置一個分支,并將增量更改捆綁到促銷分支中,以利用Veritas集群服務器(VCS)中的合并沖突檢測。
變更應在規定的管道中發布,并具有嚴格的質量,以確保驗證步驟和執行發布階段的順序。開發人員不應該能夠在整個開發周期中繞過關鍵階段,例如從開發階段轉移到生產階段。
專注于進行較小的更改,從而產生可靠的、可預測的發布。最后,一定要使促銷自動化。這使企業的團隊能夠在發布到生產環境之前在集成、測試、分段中驗證提升腳本,從而降低意外發生的可能性。
數據點5:自動配置,尤其是最終用戶訪問權限
測試驗證過程的正確配置部分。像Salesforce公司這樣的平臺具有強大的配置文件和權限集,使用戶只能訪問正確的信息。配置不當可能會暴露個人身份信息(PII)、信用卡號或醫療健康數據。
數據點6:監控不僅僅是服務可用性和性能
大多數SaaS公司都會監控服務可用性和性能。但優秀的公司還會監控數據訪問,以檢測不正確的配置更改,并監控最終用戶功能的使用情況,從而使企業管理人員能夠了解其使用情況。