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