DevOps工程旨在加速軟件開發(fā)流程,從而在不影響代碼質(zhì)量的情況下更快地為客戶提供價值。
在過去的十年中,傳統(tǒng)的DevOps已經(jīng)有了長足的進步,現(xiàn)在允許許多組織實施持續(xù)集成(CI)/持續(xù)部署(CD)管道。但是,在大多數(shù)情況下,組織仍然依靠人工流程和人工驅(qū)動的自動化流程的組合,并沒有進行優(yōu)化。
人工智能和機器學(xué)習(xí)在DevOps的應(yīng)用
在DevOps領(lǐng)域也見證了人工智能和機器學(xué)習(xí)技術(shù)的興起。這些工具正在成為融合到傳統(tǒng)DevOps工具堆棧中的有力候選者。從決策流程改進到自動化操作和代碼質(zhì)量增強,在人工智能和機器學(xué)習(xí)的幫助下,DevOps的未來發(fā)展充滿希望。以下是七個值得關(guān)注的趨勢和變化:
(1)代碼審查實現(xiàn)自動化
在軟件開發(fā)的早期階段,從編碼本身開始,人工智能和機器學(xué)習(xí)工具就已經(jīng)能夠基于思想數(shù)據(jù)集(機器學(xué)習(xí)和響應(yīng)的機器學(xué)習(xí)算法的輸入)執(zhí)行自動代碼審查和代碼分析。這些有助于減少人類的參與。
此外,使用代碼管理和協(xié)作工具,用戶可以自動將審查的工作量分散到團隊成員中。其最終的結(jié)果是能夠更早地檢測到代碼缺陷、安全問題和與代碼相關(guān)的缺陷,這些缺陷都是這些算法能夠輕松發(fā)現(xiàn)的。這些工具還可以減少代碼審查中的噪聲。除了檢測缺陷之外,自動代碼審查還強制執(zhí)行編碼和安全標(biāo)準(zhǔn)。
(2)代碼分析工具實現(xiàn)自動化
由人工智能和機器學(xué)習(xí)支持的智能工具(例如代碼分析和改進)可以從數(shù)百萬行代碼的存儲庫中學(xué)習(xí)。然后,這些工具可以了解代碼的意圖,并記錄開發(fā)人員所做的更改。在那里,這些智能工具可以為他們分析的每一行代碼提供建議。
還有一些開發(fā)人員則采用不同的方法來分析代碼。在分析了來自開源項目的數(shù)百萬條代碼之后,由機器學(xué)習(xí)工具提供支持的代碼著重于性能,并幫助找到可能導(dǎo)致重大損失的代碼行,這些代碼會損害應(yīng)用程序的響應(yīng)時間。這些工具可以在代碼中發(fā)現(xiàn)問題,例如資源泄漏、潛在的并發(fā)競爭條件以及浪費的CPU周期,并且它們還可以在代碼審查階段和應(yīng)用程序性能監(jiān)視階段與持續(xù)集成(CI)/持續(xù)部署(CD)管道集成。
在同一類別下,對新功能進行編碼后,開發(fā)人員開始研究由人工智能和機器學(xué)習(xí)驅(qū)動的自動化單元測試創(chuàng)??建。這可以為開發(fā)人員節(jié)省大約20%的時間。
(3)自我修復(fù)測試
構(gòu)建后驗收和集成編碼的下一個階段是功能和非功能測試。在這里,使用人工智能和機器學(xué)習(xí)進行代碼創(chuàng)建以及自我修復(fù)測試代碼和維護在DevOps領(lǐng)域已成為現(xiàn)實。
測試自動化可能是一個巨大的瓶頸,并且通常是項目延遲的原因。不可靠的自動化會影響測試過程。而測試自動化不可靠的根本原因之一是測試中的應(yīng)用程序和測試中使用的元素的不斷更改。智能技術(shù)可以幫助識別這些變化并調(diào)整測試,使其更加穩(wěn)定可靠。
(4)低代碼/無代碼工具
此外,創(chuàng)建健壯的測試代碼的技能的成本很昂貴,而且并非總是可用,特別是對于移動應(yīng)用和Web等數(shù)字應(yīng)用程序而言。在這里,通過學(xué)習(xí)應(yīng)用程序流程、屏幕和元素,人工智能和機器學(xué)習(xí)測試工具可以自動生成測試,而幾乎不需要代碼。這些工具可以在每次測試運行之間自我修復(fù)。
低代碼或無代碼工具允許更多的團隊成員參與測試自動化創(chuàng)建活動。它們還為開發(fā)者騰出時間專注于更重要緊迫的活動,例如創(chuàng)建新功能。
(5)機器人流程自動化
機器人過程自動化(RPA)是使用人工智能和機器學(xué)習(xí)進行測試的自動化的另一層。這樣的技術(shù)可以用于自動化大型組織中的大量采用人工、耗時、易出錯,以及難以自動化的流程。
(6)測試影響分析工具
在測試執(zhí)行完成后,人工智能和機器學(xué)習(xí)測試影響分析(TIA)工具將處于適當(dāng)位置,可以指導(dǎo)決策者將哪些測試?yán)^續(xù)進行到下一個版本,哪些領(lǐng)域不涉及其他內(nèi)容。在相同的測試類別下,人工智能和機器學(xué)習(xí)算法可以根據(jù)思想測試數(shù)據(jù)確定故障的根本原因,并節(jié)省大量的平均解決時間(MTTR)。
(7) AIOps
在DevOps流程的后期,在將代碼部署到生產(chǎn)之前和之后,人工智能和機器學(xué)習(xí)引領(lǐng)了AIOps中的新興技術(shù)。良好的AIOps解決方案不僅涵蓋智能應(yīng)用程序性能監(jiān)視(APM),而且還利用了IT基礎(chǔ)設(shè)施管理(ITIM)和IT服務(wù)管理(ITSM)。這些共同構(gòu)成了生產(chǎn)和運營洞察力分析的綜合層,可以在大數(shù)據(jù)上運行,并且可以針對先進的現(xiàn)代軟件架構(gòu)(微服務(wù)和云平臺等)運行。
借助基于人工智能的操作功能,組織團隊可以專注于確定其應(yīng)用程序的服務(wù)運行狀況,并獲得對其生產(chǎn)數(shù)據(jù)的控制和可視性。這樣,DevOps團隊可以使用實時自動事件管理來加快其平均解決時間(MTTR)。在這里,人工智能和機器學(xué)習(xí)在生產(chǎn)中的應(yīng)用程序內(nèi)的日志可觀察性、趨勢和預(yù)測等方面可以做更多的工作。
使用AIOps產(chǎn)品組合中的此類工具,團隊可以減少并經(jīng)常防止服務(wù)停機(預(yù)測性警報)。他們還可以加快支持故障解決的速度,更快地分析大型日志文件,并找出根本原因和類別(安全性、網(wǎng)絡(luò)、服務(wù)器等)。
結(jié)語
盡管DevOps和人類工程學(xué)永遠不會消失,但它們肯定可以使用一些幫助來優(yōu)化和加速那些難以自動化和維護的單調(diào)、易出錯的活動。
人工智能和機器學(xué)習(xí)是應(yīng)對這些挑戰(zhàn)的絕佳解決方案,并且通過對每個組織的問題進行適當(dāng)?shù)姆治?,決策者可以從這些工具中獲得巨大價值。而只有在將這些解決方案與現(xiàn)有流程和工具無縫集成的情況下,才能獲得成功。如果人工智能和機器學(xué)習(xí)無法輕松地集成到標(biāo)準(zhǔn)DevOps工具堆棧中,則項目將無法實現(xiàn)價值,并最終恢復(fù)到傳統(tǒng)的軟件開發(fā)實踐。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。