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