發(fā)布于:2021-01-07 10:14:03
0
140
0
建立更強大的CI / CD管道并不容易。它需要大量的時間,工具以及許多方面的貢獻。但是,如果做得正確,它就有潛在的回報,值得花時間去做。好處包括自動代碼測試,更快的軟件迭代,滿意的客戶,競爭優(yōu)勢以及生產(chǎn)力更高的團隊,僅舉幾例。
無論是按需還是每天至少一次,越來越多的軟件開發(fā)團隊都將遷移到一個或多個級別的更連續(xù)的集成(CI)和連續(xù)部署(CD)的環(huán)境。現(xiàn)在,組織已經(jīng)習(xí)慣了以較小的數(shù)量和更頻繁地交付軟件的需求,以幫助減輕“盡早失敗,盡早修復(fù)”的風(fēng)險。然而,盡管CI / CD的采用可能越來越廣泛,但在實踐中實現(xiàn)理論收益仍然是許多挑戰(zhàn)。
快速建立起這些好處的一個很好的起點,即建立更強大的CI / CD管道。CI使構(gòu)建和測試代碼的過程自動化。所有開發(fā)人員都將其更改合并到版本控制工具中,從而更快地發(fā)現(xiàn)缺陷。CD是DevOps的一種實踐,其中代碼更改不斷地傳遞到測試或生產(chǎn)中,從而以CI的工作為基礎(chǔ),并更快地將軟件發(fā)布給用戶
實際上,這要歸功于更好的開發(fā)流程可見性,減少的人工錯誤,更快的反饋以及節(jié)省的時間??煽康腃I / CD管道還應(yīng)該支持更穩(wěn)定的代碼,更好的可預(yù)測性,因此更少的代碼中斷。集成意味著所有工作代碼段都能更好地融合在一起。
強大的CI / CD管道的屬性
聽起來似乎很明顯,但是強大的CI / CD流程的關(guān)鍵是自動化,這不僅是為了減少錯誤并加快流程,而且還有助于克服任何文化上的阻力。如果不最大化自動化程度,集成將為團隊帶來更多的時間和工作量。團隊需要經(jīng)常合并更改,并通過自動測試進行驗證。他們需要確定管道中要包括的內(nèi)容和使其自動化的優(yōu)先級。由于每天都要進行多次代碼更改,因此測試套件需要重點放在將產(chǎn)生最大影響的內(nèi)容上,而不是冒險讓開發(fā)人員將時間浪費在專注于較少的問題上,并冒著逃逸到生產(chǎn)中的缺陷的風(fēng)險。
在許多組織中,自動化測試的“健康”通常是成功進行CI / CD的障礙。測試環(huán)境本身以及代碼更改驗收需要自動化,并應(yīng)用于不同類型的測試:單元測試,構(gòu)建驗收,尤其是回歸測試。
通過將驗收測試與正確的CI實踐相結(jié)合,快速,及時的反饋變得更容易實現(xiàn)。反過來,這減少了進入生產(chǎn)的缺陷數(shù)量,并且團隊更有信心他們可以在準(zhǔn)備就緒時立即交付高質(zhì)量代碼。這種方法還減少了對等待客戶提供反饋的依賴。
可能會影響成功的CI / CD流程的其他因素包括過時的環(huán)境,因此在實施CI / CD戰(zhàn)略之前,有必要對其進行審查并在需要時進行更新是有意義的。其他問題包括管道中的盲點。例如,一段時間內(nèi)的作業(yè)持續(xù)時間不一致,作為構(gòu)建驗收測試作業(yè)的一部分而執(zhí)行的不一致的通過或失敗測試結(jié)果,以及不必要地重復(fù)的任務(wù)。因此,識別和解決這些問題至關(guān)重要。
同樣重要的是,用于支持CI / CD管道的任何測試或其他工具不僅適合業(yè)務(wù),而且還適合功能團隊的技能。另外,在引入新工具時,應(yīng)咨詢團隊并入職(通常如此),否則,不可避免地會有一些阻力。工具還應(yīng)該與特定的正在進行的開發(fā)過程相匹配,并且適合現(xiàn)有的過程,而不是造成破壞或更改。實施新的或更新現(xiàn)有的CI / CD管道時,請從一小組穩(wěn)定的活動開始,識別并解決問題,然后再構(gòu)建更多層并向外擴展。在實施關(guān)鍵業(yè)務(wù)場景時,請使用測試自動化來確保測試無缺陷,將小型測試套件集成到CI管道中,并跟蹤多個周期。只有這樣,才能更廣泛地引入管道,并且要注意不要在沒有首先獲得對它們的信心的情況下將太多的測試腳本推入CI中。
作為測試自動化轉(zhuǎn)移權(quán)利的一部分,持續(xù)監(jiān)控應(yīng)與CI / CD攜手并進,不僅可以隔離重復(fù)出現(xiàn)的問題,還可以分析對業(yè)務(wù)的影響。從那里開始,使用該數(shù)據(jù)來改進流程。監(jiān)控不僅需要事后考慮,還需要內(nèi)置到整個CI / CD圖片中,并且要具有實時可觀察性和可導(dǎo)出的數(shù)據(jù),以進行智能的根本原因分析。查明對業(yè)務(wù)有實際影響的測試結(jié)果至關(guān)重要,而不是被測試結(jié)果的噪音所淹沒。測試值是這些天的游戲名稱。
建立強大的CI / CD管道的所有步驟都將需要時間,重點以及可能需要跨人員,流程和工具進行的額外投資。但是,潛在的回報-更快的軟件迭代,更快樂的客戶,更好的競爭力以及可能更有動力的團隊知道他們正在創(chuàng)造的就是他們的市場需求-是值得付出的努力。