發(fā)布于:2021-01-08 11:07:52
0
705
0
持續(xù)集成和持續(xù)交付(CI / CD)縮短了反饋周期,可幫助公司發(fā)行更多軟件,同時(shí)最大程度地減少錯(cuò)誤,提高開發(fā)人員的生產(chǎn)率并改善客戶的情感。獲取正確執(zhí)行CI / CD管道的四個(gè)重要步驟。這可能是一個(gè)嚴(yán)格的過程,但這是值得的!
軟件行業(yè)正朝著強(qiáng)調(diào)快速迭代的新方向發(fā)展。較長(zhǎng)的發(fā)布周期是經(jīng)過充分測(cè)試和穩(wěn)定的過程,但要付出一定的代價(jià)。對(duì)客戶反饋的反應(yīng)很慢,實(shí)施補(bǔ)丁程序的發(fā)布可能很復(fù)雜。通過縮短發(fā)布周期,資源有限的小型團(tuán)隊(duì)可以使用生產(chǎn)發(fā)布來快速收集大量數(shù)據(jù)。大型公司可以利用市場(chǎng)響應(yīng)能力,縮短問題解決周期并更快地進(jìn)行創(chuàng)新以改善用戶體驗(yàn)。
持續(xù)集成和持續(xù)交付(CI / CD)縮短了反饋周期,可幫助公司發(fā)行更多軟件,同時(shí)最大程度地減少錯(cuò)誤,提高開發(fā)人員的生產(chǎn)率并改善客戶的情感。自動(dòng)化和測(cè)試對(duì)于此過程至關(guān)重要。讓我們檢查一下CI / CD流程的工作流程是什么樣的。對(duì)代碼的更改將經(jīng)過測(cè)試階段,然后部署到10%的客戶中。該代碼將經(jīng)過另一個(gè)自動(dòng)周期,以檢查是否可以安全發(fā)送給其余客戶。此后,代碼將進(jìn)入自動(dòng)化/ QA階段,在此階段將運(yùn)行時(shí)間進(jìn)行監(jiān)視。最后,分流階段允許開發(fā)人員集成反饋并解決問題。
CI / CD可能是一個(gè)嚴(yán)格的過程,但對(duì)于各種規(guī)模的開發(fā)團(tuán)隊(duì)而言,這都是值得的。但是,這是許多公司都在談?wù)搮s難以執(zhí)行的概念。作為CI / CD管道的一部分,公司需要執(zhí)行以下四個(gè)步驟:
集成:頻繁合并更改并通過自動(dòng)化進(jìn)行驗(yàn)證
團(tuán)隊(duì)面臨的挑戰(zhàn)之一是接受整合過程將是艱巨且耗時(shí)的。在此階段,開發(fā)人員構(gòu)建的許多東西都旨在使代碼能夠面向未來,以防下游問題。開發(fā)人員很少編寫測(cè)試來確認(rèn)他們正在開發(fā)的代碼正確。相反,他們?yōu)閷碛腥烁拇a編寫測(cè)試。當(dāng)確實(shí)發(fā)生更改時(shí),測(cè)試將在正確的時(shí)間失敗,并防止其他人引起更多問題。
成功的集成階段可以歸結(jié)為變更控制流程,該流程使開發(fā)人員可以盡最大努力,而對(duì)其他所有事物的干擾最小。適當(dāng)?shù)目刂七^程包括以下步驟:
提出更改并概述問題。
對(duì)變更進(jìn)行同行評(píng)審,可以采用設(shè)計(jì)反饋或用例建議的形式。
通過自動(dòng)測(cè)試驗(yàn)證更改。
確定是否可以合并更改。
部署:準(zhǔn)備就緒后立即交付代碼
持續(xù)的開發(fā)無需指定的發(fā)布經(jīng)理按部署按鈕或注銷每天要推出的更改。取而代之的是,團(tuán)隊(duì)控制他們的項(xiàng)目,而貢獻(xiàn)者則負(fù)責(zé)部署其變更。
連續(xù)運(yùn)輸?shù)牟渴痣A段促進(jìn)了可重復(fù)的構(gòu)建。在構(gòu)建軟件時(shí),依賴于不能很好控制的依賴關(guān)系的組合。不幸的是,如果版本或依賴項(xiàng)發(fā)生更改,則使用該軟件構(gòu)建的應(yīng)用程序可能無法運(yùn)行。
在部署階段,將風(fēng)險(xiǎn)降至最低取決于部署策略。盡管此過程可能具有挑戰(zhàn)性,但付出的努力是有回報(bào)的。最簡(jiǎn)單的方法是部署到暫存環(huán)境并驗(yàn)證代碼是否正常運(yùn)行。盡管此方法有效,但無法擴(kuò)展。相反,更好的方法是將更改推廣到較小比例的客戶,并在出現(xiàn)問題時(shí)停止更改。
降低風(fēng)險(xiǎn)的另一項(xiàng)貢獻(xiàn)是阻止尚未通過驗(yàn)證的部署。禁止任何人規(guī)避必需的測(cè)試。許多公司都有合規(guī)性法規(guī),如果繞過更改控制流程,它們會(huì)阻止更改的部署。雖然這是一個(gè)容易設(shè)置的規(guī)則,但需要QA勤勉盡責(zé)。該過程很耗時(shí),但結(jié)果是開發(fā)團(tuán)隊(duì)和客戶滿意,他們可以按預(yù)期使用應(yīng)用程序。
監(jiān)視和跟蹤:了解事情的發(fā)展方向
監(jiān)視階段有一些基本規(guī)則:
從頭開始構(gòu)建監(jiān)控。
將儀表構(gòu)建到應(yīng)用程序中,而不是放在頂部。
實(shí)時(shí)執(zhí)行可觀察性。
有了這樣的結(jié)構(gòu),開發(fā)人員便有必要的基礎(chǔ)來實(shí)施兩個(gè)重要的質(zhì)量檢查最佳實(shí)踐:高級(jí)跟蹤和根本原因分析。這些不僅在應(yīng)用程序級(jí)別而且在系統(tǒng)級(jí)別都暴露了代碼問題,從而獲得了深刻的見識(shí)。
盡管圖形和日志可能說明癥狀,但它們并不能確定根本原因。例如,客戶加載了一個(gè)應(yīng)用程序,單擊一個(gè)按鈕,然后該調(diào)用觸發(fā)了錯(cuò)誤的API服務(wù)。開發(fā)人員看到應(yīng)用程序中的錯(cuò)誤,API服務(wù)看到錯(cuò)誤,但是它本身是否具有足夠的上下文?有時(shí)。但是最好知道應(yīng)用程序中發(fā)生的事情的詳細(xì)信息和上下文。這種高級(jí)跟蹤是必需的。
在復(fù)雜的應(yīng)用程序中,可能有很多事情在通訊,從而導(dǎo)致此錯(cuò)誤。原因可能與單擊應(yīng)用程序中的按鈕有關(guān),或者可能位于應(yīng)用程序甚至服務(wù)器端內(nèi)部,這就是為什么找出根本原因并進(jìn)行修復(fù)如此重要的原因。為了解決該問題,開發(fā)人員需要知道錯(cuò)誤的發(fā)生時(shí)間和位置,以及何時(shí)引入代碼更改。如果開發(fā)人員可以在幾秒鐘內(nèi)知道問題的根本原因,他們可以使分類工作流程自動(dòng)化。他們可以將變更部署到生產(chǎn)中,并且工具可以告訴他們錯(cuò)誤是否增加。他們可以決定更改是安全的還是需要回滾。
反饋:確定用戶的需求和問題
客戶支持是CI / CD管道中的有用元素。保持自動(dòng)化和警報(bào)很重要。當(dāng)有監(jiān)視工具可以自動(dòng)告知開發(fā)人員時(shí),為什么要要求開發(fā)人員重現(xiàn)問題?每10個(gè)客戶中就有9個(gè)不會(huì)抱怨,因此等待客戶標(biāo)記錯(cuò)誤并不是一個(gè)可靠的策略。在客戶告知客戶之前,企業(yè)應(yīng)該了解問題。錯(cuò)誤是與客戶相關(guān)的問題的第一個(gè)跡象。
對(duì)反饋請(qǐng)求做出反應(yīng)也很重要??蛻舻囊鈭D是什么?客戶對(duì)項(xiàng)目成功的承諾程度如何?上下文至關(guān)重要,因?yàn)樯舷挛目梢约涌旆直媛什p少開發(fā)人員和客戶體驗(yàn)的磨擦。有一種無需收集客戶步驟即可收集數(shù)據(jù)的技術(shù)。此階段的目標(biāo)是優(yōu)化解決方案周期。如果企業(yè)可以識(shí)別錯(cuò)誤并將其連接到客戶,則他們可以與受問題影響的客戶進(jìn)行溝通。很多問題并不難。這是關(guān)于快速有效地迭代。
使用CI / CD從較長(zhǎng)的發(fā)布周期過渡到較短的發(fā)布周期可能會(huì)對(duì)開發(fā)團(tuán)隊(duì)造成挑戰(zhàn)。但是,快速,高效的迭代和改善的客戶情緒所帶來的結(jié)果值得現(xiàn)代化進(jìn)行。
作者介紹
熱門博客推薦