AI如何改變DevOps?
DevOps旨在加速軟件開發流程,在不影響代碼質量的前提下,更快為客戶提供價值。過去十年以來,傳統DevOps已經度過了很長一段發展周期。如今,企業組織開始遵循DevOps原理建立CI/CD管道。但在大多數情況下,團隊仍在依靠手動流程與人為驅動建立自動化流程組合。很明顯,這樣的優化程度并沒有達到理想或者理論意義上的極限。
最近,DevOps的理論高地迎來了AI與ML兩股技術力量。相關工具開始融合,并在傳統DevOps工具棧中并發出巨大的能量。從決策流程改進到操作與代碼質量增強自動化,DevOps在AI(人工智能)與ML(機器學習)的雙料加持之下迎來了更光明的發展前景。下面,我們具體探討其中的幾大亮點:
第一,自動代碼審查。在軟件開發的早期階段,從編碼本身開始,AI與ML工具已經能夠基于表達管理引導性數據集(即根據需要的機器行為與響應,為機器學習算法提供輸入數據)執行自動代碼審查與代碼分析。這一切,將極大減輕人類在代碼質量管理中的工作量。
此外,借助代碼管理與協作工具,用戶可以自動在團隊成員之間分發審核工作量。這一流程能夠由此類算法更早發現代碼缺陷、安全性問題以及代碼質量問題。這些工具還可減少代碼審查中的噪聲。除了檢測缺陷之外,自動代碼審查還負責強制執行編碼與安全標準。
第二,自動代碼分析工具。由AI與ML支持的智能工具,例如代碼分析與改進工具,能夠從包含數百萬行代碼的報告中學習,據此掌握代碼表達的意圖并記錄開發人員所做出的更改。以此為基礎,這些智能工具即可通過分析為每一行代碼提出建議。
其他方案則可通過不同的角度分析代碼。在分析來自開源項目的數百萬條代碼之后,機器學習工具能夠提供有效的性能調優結論,包括找出運行成本最高的代碼行,并避免這些代碼損害應用程序的響應時間。這些工具能夠發現代碼中的問題,例如資源泄漏、潛在的并發爭用以及被白白浪費掉的CPU周期。更重要的是,這些工具可以在代碼審查階段及應用程序性能監控階段與CI/CD管道順暢集成。
在對新功能進行編碼之后,開發人員便可以研究如何開發由AI及ML驅動的自動化單元測試。在開發沖刺階段,這種智能單元測試工具能夠幫助開發者節約20%左右的時間。
第三,自我修復測試。在完成構建及集成工作之后,下一階段就是實施功能與非功能測試。在此階段,使用AI與ML創建代碼并執行自我修復測試/維護,已經在DevOps領域成為現實。
當然,測試自動化本身也可能成為巨大的瓶頸,也成為不少項目頻頻延期的原因。不夠可靠的、不穩定的自動化流程拖慢了測試過程,而這種不穩定性往往源自受測應用程序乃至測試流程中各類元素的快速變化。智能技術的出現有助于識別這些變化并立即調整測試方法,借此實現測試流程的穩定性與可靠性。
第四,低代碼/無代碼工具。對于移動及Web應用而言,以往我們需要投入巨量資源培養相關人才,來獲取穩定可靠的代碼測試技能。在這方面,AI與ML測試工具能夠全面學習應用程序流程、屏幕內容與元素,最終以低代碼甚至無代碼方式自動生成測試。這些工具還可以在每輪測試中自我完善以增強測試質量。
低代碼或無代碼工具允許團隊成員參與到自動化測試的開發中來。在完成之后,開發者將節約下大量時間,可以將精力投入到其他更為緊迫的工作當中——例如開發其他創新型功能。
第五,機器人流程自動化。RPA(機器人流程自動化)將使用AI與ML實現自動化測試推向了新的層面。此類技術能夠在大型組織當中將大量以往需要手動執行、耗時、易出錯且難以自動化的流程轉為自動操作。
第六,測試影響分析工具。測試執行完成之后,即可由AI與ML測試影響分析(TIA)工具接手,指導決策者判斷需要在后續版本中繼續進行哪些測試,而哪些測試在后續流程中可以剔除。另外,在同一測試類別之下,AI與ML算法可以根據引導性測試數據確定引發故障的根本原因,借此顯著縮短平均解決時間(MTTR)。
第七,AIOps。在DevOps流程的后期,即將代碼部署到生產環境之前與之后,AI與ML成為引領AIOps發展的新興技術。完整的AIOps解決方案不僅涵蓋智能APM(應用程序性能監控),同時也引入ITIM(IT基礎設施監控)與ITSM(IT服務監控)機制。二者共同構成了生產與運營洞見分析的綜合層級,能夠在大數據之上運行并針對先進的現代軟件架構(微服務、云架構等)起效。
借助基于AI的運營功能,團隊可以專注于確定應用程序的服務運行狀況,同時全面跟進生產數據的控制與可見性。
借助基于AI的運營功能,團隊可以專注于確定應用程序的服務運行狀況,同時全面跟進生產數據的控制與可見性。以此為基礎,DevOps能夠使用實時自動事件管理進一步縮短MTTR。其中AI與ML將負責為生產級應用程序提供日志可觀察性、趨勢匯總以及相應預測結果。
在AIOps組合中使用這些工具,團隊可以減少并預防服務宕機(預測性警報),加快故障解決處理速度,快速分析大型日志文件,并從中找出引發問題的根本原因與所屬類別,如安全性、網絡、服務器等等。
總結
DevOps與人類工程的探索永遠不會消失,但在探索之旅中,我們完全可以運用當前成果優化并加速以往難以自動化或維護、且易于出錯的環節。
AI與ML正是應對這些挑戰的絕佳解決方案,決策者也可以通過分析各項問題從此類工具中獲取巨大價值。當然,只有將這些解決方案與原有流程及工具無縫集成,才能真正獲得這種預期價值。如果AI與ML無法被輕松整合至標準DevOps工具棧內,則項目將淪為空談,并最終衰退回傳統的軟件開發實踐。

































