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