譯者 | 陳峻
審校 | 重樓
如果有人跟你說,軟件開發和運營團隊可以毫不費力地協同工作、簡化流程,并能提高工作效率,你一定會想到那是DevOps。現如今,人們則期望它能夠利用人工智能(AI)的力量,徹底改變每個沖刺、且能更輕松地協助教育新入行的DevOps專業人員。從深層次來看,無論是自動化日常任務、優化資源分配,還是預測潛在問題,人工智能完全可以對DevOps的工作流程產生革命性的影響。
下面,我將和你探討人工智能給開發運維帶來的無限機遇,揭示它將如何讓團隊實現前所未有的效率、敏捷性和應變能力。
如何將人工智能融入DevOps?
不可否認,目前人工智能仍在應用方面存在許多挑戰,但是DevOps團隊可以從如下方面思考和實施各種開放性的新用例:
CI/CD管道
人工智能使企業對其CI/CD流程實現可見性和控制力。利用人工智能,企業可以快速分析曾經構建、測試和部署的歷史數據,以發現潛在的故障點,并對可能發生的問題予以預測。例如,人工智能可以分析MySQL的查詢日志,以找出影響應用程序性能的低效數據庫查詢。
同時,人工智能驅動的系統也能主動實施預防措施,以最大限度地降低集成和部署階段可能產生的高昂延遲、故障、以及中斷風險。此外,人工智能還能協助優化CI/CD管道中的資源分配。例如,DevOps團隊可以使用先進的機器學習模型(也被稱為MLOps模型)來預測工作負載和資源需求。從此意義上說,由人工智能驅動的系統,完全可以動態地調整計算能力、存儲和網絡資源的分配。這也就確保了團隊能夠高效地完成構建和部署,而不會浪費寶貴的資源或遇到性能瓶頸。
預測分析
在DevOps中,預測和預防中斷的能力往往意味著成功與災難性失敗之間的差別。對此,人工智能驅動的預測分析可以使團隊在潛在的中斷面前領先一步。
預測分析通常會使用先進的算法和機器學習模型,來分析各種來源的海量數據,包括:應用程序日志、系統指標和歷史事件報告等。接著,它們可以在這些數據中識別模式與關聯性,檢測異常,從而對即將發生的系統故障或性能下降發出預警。據此,團隊就能夠在問題升級為全面中斷之前采取積極措施。
此外,人工智能還能夠持續分析來自各種基礎架構組件(如服務器、網絡和存儲系統)的數據,從而在發生故障或容量受限之前,識別出潛在的硬件故障。
人工智能驅動的代碼審查
手工操作往往會出現人為錯誤,而且耗時過長。對此,人工智能的工具能夠以人類無法企及的速度分析代碼庫,從而快速、大規模地識別到諸如:性能瓶頸、代碼不符合最佳實踐或內部標準、安全責任和代碼風格等潛在的問題。
同時,越來越多的工具能夠為開發人員提供具有操作性的情報、以及建議性的行動方案,從而在解決已發現問題的同時,大幅降低代碼庫中被引入的缺陷、以及累積的技術債風險。
從更廣泛的意義上說,如下模型與工具還能夠提出代碼庫優化的措施:
上述模型已在自動化和簡化質量控制等方面取得了良好的效果。通過適當地使用這些解決方案,DevOps團隊可以加快交付周期,降低高昂的部署后問題風險,并能始終確保全面的質量控制。
自動安全檢查
為了避免漏洞的出現,實施和執行適當的安全措施,往往可能拖慢正常的開發周期。而人工智能恰好可以為其簡化流程并提高效率。由人工智能驅動的自動安全檢查,與傳統的靜態安全解決方案不同,它具有不斷學習和“成長”的能力,可以通過分析惡意行為者使用的模式和技術,來適應各種新出現的威脅。
同時,人工智能驅動的自動化安全檢查功能,可以無縫地被集成到DevOps工作流中,從而在軟件開發生命周期(SDLC)的所有階段,實現持續的安全監控和驗證。
反饋與優化
雖然自動化各種任務和流程是人工智能的重要組成部分,然而一個被忽視的功能是,它也能夠改善運營、最終用戶和DevOps團隊之間的反饋回路。由于擅長篩選大量數據,因此這些工具成為了分析諸如:系統日志、用戶行為、應用性能指標、以及最終客戶的直接反饋的理想工具。
此外,這些工具也可以使用自然語言處理(NLP,Natural Language Processing)和機器學習來確定模式和趨勢,從而指出應用程序在性能、可用性和整體用戶滿意度等方面需要改進的地方。而且,這種智能分析使得開發團隊能夠根據真實的用戶需求和系統性能,來確定修改和增強的優先次序,從而使產品能夠更加符合用戶的期望,并能按照實際情況運行。
將人工智能融入DevOps的工具和技術
人工智能與DevOps的集成催生了一系列旨在提高自動化和效率的工具。雖然許多組織可能會默認選擇熱門的谷歌云(Google Cloud),但越來越多的DevOps團隊已開始尋找其替代品,以發掘那些由人工智能賦能的、價格更優惠、且更適合特定工作流的服務。例如,甲骨文和阿里巴巴云在該領域已越來越受歡迎,其人工智能功能正在逐月迭代。
代碼審查和質量保證
我們可以考慮使用DeepCode、Codacy和SonarSource等解決方案,利用機器學習算法來分析代碼庫,找出潛在的漏洞、代碼缺陷、以及違反最佳實踐的情況,進而優化現有的代碼分析和審查流程。
而在測試和質量保證方面,Applitools、Functionize和Mabl等人工智能驅動的工具,可以通過可視化機器學習技術,自動創建和執行測試。當然,如果你選擇使用本地托管的大模型則可能需要通過專門的培訓,才能使其專門從事DevOps任務(尤其是CI/CD)。
另外,在基礎架構管理和監控方面,Moogsoft和Dynatrace等人工智能增強型平臺,可以提供先進的異常檢測和根本原因分析服務,通過實時分析運行數據,以預測和預防潛在的系統故障。
面向非技術人員的DevOps工具
目前,一個普遍的誤解是,人工智能驅動的DevOps工具,只是那些擁有龐大資源和復雜軟件開發需求的大型企業的“特供”。其實并非如此。由人工智能賦能Harness和CodeGuru等解決方案,以其靈活性非常適合較小的團隊。事實上,小型IT團隊往往處于持續滿負荷運轉的狀態,這意味著他們需要在DevOps任務中,采用各種開源的、可根據其特定需求定制的人工智能工具。
將人工智能融入DevOps的優秀實踐
隨著將人工智能融入DevOps實踐的勢頭不斷增強,企業可以通過如下優秀實踐,來充分釋放人工智能驅動的DevOps自動化的全部潛力,以減輕潛在的挑戰:
- 確定明確的目標和衡量標準:團隊首先要確定通過在DevOps周期中整合人工智能所要實現的具體目標。無論是提高部署頻率、提升代碼質量、降低故障率,還是加快事件響應時間,明確的目標都有助于團隊選擇恰當的人工智能工具和技術。
- 從小處入手,不斷迭代:與其嘗試對DevOps流程進行全面改革,不如先確定人工智能可能帶來直接價值的具體領域。團隊應從試點項目或概念驗證開始,隨著經驗和信心的積累,再逐步擴大人工智能的集成。
- 確保數據質量和管理:由于人工智能算法嚴重依賴于數據,因此團隊必須及時建立健全數據治理實踐。只有切實保障了數據的質量、完整性和可訪問性,實施數據清理、驗證和管理等流程才會變得更加容易。
總結
綜上所述,人工智能已日益融入更廣泛的DevOps框架中,并給DevOps的日常處理方式與效率帶來重大的變化。特別是在CI/CD方面,由AI賦能的預測分析將幫助DevOps團隊在保持領先的同時,不斷改變客戶服務管道和優化資源分配。我們可以毫不夸張地說,企業若想有效地獲得競爭優勢,將人工智能融入DevOps不僅是一種可能性,更是一種必然選擇。
譯者介紹
陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。
原文標題:Next-Gen DevOps: Integrate AI for Enhanced Workflow Automation,作者:Alexander T. Williams