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