人工智能加快DevOps的10種方式
根據調研機構德勤公司在今年早些時候發布的一份調查報告,提供基于人工智能的軟件開發工具的初創公司在2019年籌集了7.04億美元的資金。
- 調研機構IDC公司預測,全球定制應用程序開發服務市場規模預計將從2018年的470億美元增長到2023年的610億美元以上,并在五年內實現5.3%的復合年增長率(CAGR)。
- 根據IT軟件質量協會關于美國低質量軟件成本的調查報告,低劣的軟件質量使美國企業在2019年損失了3190億美元。
- 調研機構Gartner公司表示,到2023年,40%的DevOps團隊將使用集成了人工智能的IT運營(AIOps)平臺的應用程序和基礎設施監控應用程序。
為了減少DevOps團隊所面臨的延遲,軟件開發工具提供商正在加快將人工智能和機器學習技術集成到其應用程序和平臺中的步伐。其目標是在提高軟件質量的同時,加快軟件開發生命周期(SDLC)的每個階段。好消息是其用例表明正在實現這些目標,從而使DevOps達到了更高的準確性、質量和可靠性水平。
人工智能加快DevOps的10種方式中最吸引人的地方是它在幫助開發人員完成困難的、耗時的任務方面十分有效。最耗時的任務之一是管理需求文檔的許多迭代和版本。Atlassian ps公司開發的Jira軟件是使用人工智能簡化軟件開發生命周期(SDLC)的每個階段并幫助管理需求的行業領導者,它被廣泛認為是DevOps領域的行業標準。
以下是人工智能加快DevOps的10種方式
(1) 依靠人工智能和機器學習實時自動提示代碼段,以加快開發速度,從而提高DevOps的生產效率。
一些行業領先的企業軟件廠商的DevOps團隊在客戶關系管理(CRM)、供應鏈管理和社交媒體市場上展開了激烈的競爭。他們表示,人工智能的這個用例是更有成效的,并且在準確性方面獲得了更大的收益。一家行業領先的客戶關系管理(CRM)提供商的DevOps負責人表示,最初使用人工智能自動完成代碼的努力是徒勞的。她認為DevOps的開發工具提供商使用有監督的機器學習算法可以提高模型學習和響應代碼請求的速度。微軟的Visual Studio Intellicode目前已安裝600萬次以上,而這是DevOps團隊將其列為DevOps中最有價值的人工智能開發的原因。
(2) 事實證明,使用人工智能簡化需求管理可以有效提高需求文檔的準確性和質量,從而捕獲用戶在下一代應用程序或平臺中的需求。
人工智能正在提供可靠的結果,簡化了創建、編輯、驗證、測試和管理需求文檔的每個階段。DevOps團隊成員正在使用基于人工智能和機器學習的需求管理平臺節省時間,以便他們可以經常在緊迫的期限內恢復編碼和創建軟件產品。第一次正確地滿足需求有助于使整個項目保持在其項目計劃的路徑上。基于人工智能的軟件開發工具提供商看到了建立按時完成項目的商業案例的機會,因此正在這一領域迅速開發和啟動新的應用程序。令人興奮的是,自然語言處理技術在DevOps工具這一領域中的采用速度很快,而使用基于人工智能工具的企業已經能夠將需求審查時間減少50%以上。
(3) 事實證明,人工智能在檢測錯誤和改進代碼的自動建議方面非常有效。
Facebook的錯誤檢測工具可以預測缺陷并提出補救措施,在80%的情況下,人工智能工具學會自動修復錯誤。Semmle CodeQL被認為是該領域領先的基于人工智能的DevOps工具。使用CodeQL的DevOps團隊可以跟蹤代碼中的漏洞,還可以在整個代碼庫中找到邏輯變體。微軟安全響應團隊的安全研究人員使用Semmle-QL來發現關鍵問題的變體,使他們能夠識別和響應嚴重的代碼問題,并防止事件發生。
(4) 人工智能正在協助確定安全測試結果的優先級并對漏洞進行分類。
Checkmarx公司首席技術官Maty Siman對機器學習如何實時發現代碼漏洞的信息進行了闡述。他說:“即使是擁有最成熟軟件開發生命周期(SDLC)的組織,也經常會遇到對漏洞進行優先級劃分和分類的問題。專注于開發人員或應用程度安全團隊的機器學習算法要關注真正的優勢和構成威脅易受攻擊的組件,這是應對這一挑戰的關鍵。” 他表示,可以教會機器學習算法理解一種類型的脆弱性相對于另一種類型的脆弱性,它所占的比例更高。有了這個自動的審核過程,團隊能夠以更加明智的方式優化和加速其修復工作。
(5) 通過基于給定代碼庫的唯一屬性自動生成和自動運行測試用例來提高軟件質量保證,這是采用人工智能技術節省DevOps團隊寶貴時間的另一個領域。
對于在各種用例中對新應用程序和平臺進行壓力測試而言,這是非常寶貴的。在任何DevOps團隊中,創建和修改測試用例都是一項獨特的技能,具有這種技能的開發人員經常會因測試更新而感到不知所措。基于人工智能的軟件開發工具正在消除測試覆蓋范圍的重疊,通過更可預測的測試優化現有的測試工作,并加快從缺陷檢測到缺陷預防的進程。基于人工智能的軟件開發平臺可以識別復雜且相互關聯的產品模塊之間的依賴關系,從而提高整個過程中的產品質量。而提高軟件質量也提高了客戶體驗。
(6) 在復雜的軟件應用程序和平臺發布并交付給客戶后,人工智能技術很擅長解決這些問題。
企業軟件廠商在其軟件質量保證過程中付出了極大的努力,以消除錯誤、邏輯錯誤和不可靠的代碼段。而更新版本或者最壞的情況是召回它們的成本很高,而且會影響客戶的生產效率。事實證明,基于人工智能的質量檢查工具可以有效地預測企業應用程序的哪些區域在交付到復雜的客戶環境之前會失敗。人工智能在根本原因分析方面是有效的,而且在加快領先的客戶關系管理(CRM)提供商的應用程序交付,以及在將客戶企業環境中的恢復時間縮短方面也證明是有效的。另一個DevOps團隊表示,他們正在使用人工智能來自動配置應用程序的設置,以優化客戶部署的性能。
(7) 基于機器學習的代碼漏洞檢測可以可靠地發現異常并實時警告DevOps團隊。
Checkmarx公司首席技術官Maty Siman表示,“假設組織的開發人員正在編寫高質量、安全的代碼,則機器學習可以設置‘正常活動’的基準,并從該基準中識別并標記異常。最終,人們生活在一個每天都在變化的IT和安全環境中,要求系統和工具以相同甚至更快的速度學習和適應。組織和開發人員不能僅憑一己之力通過解決方案來提高威脅檢測的準確性,從而幫助他們確定最重要的事情的優先級。”快速發現異常并采取措施是構建基于人工智能軟件的質量檢查和DevOps工具的業務案例所不可或缺的一部分。
(8) 高級DevOps團隊正在使用人工智能來分析和發現所有開發工具、應用程序性能監視(APM)、軟件質量保證,以及發布周期系統的新見解。
一家行業領先的供應鏈管理(SCM)企業軟件提供商的DevOps團隊正在使用人工智能分析為什么某些項目進展順利并提供出色的代碼,而其他項目卻陷入了永久審查和代碼重寫周期的原因。通過使用受監督的機器學習算法,他們可以查看模式并深入了解其數據。該公司DevOps負責人表示,以數據為驅動力正迅速成為其DNA的一部分。
(9) 改進每個發布周期內的可追溯性,以找出DevOps協作和數據集成工作流中可以改進的地方。
人工智能使DevOps團隊能夠更好地相互協調,特別是在遠程地理位置。人工智能驅動的洞察力有助于了解共享需求和規范如何反映本地化、獨特的客戶需求以及特定的性能基準。
(10) 創建可以使人工智能發揮最大價值的集成度更高的DevOps戰略取決于框架,這些框架可以使DevOps以客戶為中心,同時提高敏捷性并培育分析驅動的DNA,以獲得對運營的洞察力。
很多DevOps領導者表示,將安全性集成到開發周期中可以減少瓶頸,這些瓶頸會阻礙按計劃進行。能夠將質量保證集成到DevOps工作流程中的框架是關鍵。人工智能的用例綜合起來反映了革新DevOps的潛力。但是要兌現這一承諾,就需要一個框架,這一框架應使企業DevOps團隊能夠提供卓越的客戶體驗和自動化客戶交易,并為各地的自動化提供支持。
結論
所有DevOps團隊都面臨著在加快開發周期的同時確保產生最高質量代碼的挑戰。人工智能通過在開發人員提出要求之前預測開發人員需要的東西,幫助他們加快DevOps開發周期的每個階段。自動建議代碼、自動化測試改進軟件質量保證技術,以及簡化需求管理都是人工智能為DevOps帶來價值的核心領域。