微軟等開源AIOpsLab,可構建自主云AI Agent
微軟、加州大學伯克利分校、伊利諾伊大學等研究人員聯合開源了,一個專用于云自動化運維的AI Agents——AIOpsLab。
AIOpsLab能模擬真實云服務環境中的復雜操作任務,實現故障的自動化檢測、定位和解決問題。還具備高度的可觀測性,能夠收集和分析關鍵的遙測數據,確保對系統狀態和應用環境的深入洞察。
同時支持人類、數字和AI Agents的不同類型的協作模式,并通過模塊化設計易于擴展新應用程序、工作負載和故障場景。
開源地址:https://github.com/microsoft/AIOpsLab/?tab=readme-ov-file
AIOpsLab的架構一共包含五個關鍵部分,協調器、服務、工作負載生成器、故障生成器以及可觀測性。
協調器的主要任務是與智能體建立會話,共享有關基準測試問題的信息,包括問題描述、響應格式指南以及智能體可以調用的API。這些API是一組文檔化的工具,例如獲取日志、獲取指標和執行shell命令,它們被設計來幫助智能體解決任務。
協調器對智能體的實現沒有任何限制,提出問題并輪詢智能體以獲取基于先前結果要執行的下一個動作。每個動作都必須是有效的API調用,協調器會驗證并執行這些調用。
此外,協調器擁有對部署的特權訪問權,可以代表智能體采取任意行動,例如擴展、重新部署等,以解決智能體面臨的問題。最后,協調器還負責調用工作負載和故障生成器,以創建服務中斷,這些中斷作為實時基準測試問題,為智能體提供了實際操作的環境。
服務模塊可以幫助AIOpsLab適應不同的真實云服務環境,包括微服務、無服務器和單體服務等。AIOpsLab還利用開源應用套件DeathStarBench提供了源代碼、提交歷史和運行時遙測,使得研究人員能夠在一個受控的環境中復現和研究生產事件。通過添加Blueprint這樣的工具,AIOpsLab可以擴展到其他學術和生產服務,并無縫部署這些服務的新變體。
工作負載生成器在AIOpsLab中扮演著重要角色,主要負責創建正常和故障場景的模擬,以測試代理在不同條件下的性能。工作負載生成器根據協調器的規范接收任務,例如任務、期望效果、規模和持續時間,并利用基于真實生產痕跡訓練的模型生成符合這些規范的工作負載。
在故障場景中,工作負載生成器可以模擬資源耗盡、利用邊緣情況或觸發級聯故障等條件,這些都是受到真實事件啟發的。正常場景則模仿典型的生產模式,例如,日常活動周期和多用戶交互。
當不同的特征例如,服務調用、用戶分布、到達時間可能導致期望效果時,多個工作負載可以存儲在問題緩存中供協調器使用。
故障生成器是AIOpsLab的一個創新功能,主要用于跨各種通用云場景。包括細粒度的故障注入,能夠模擬由生產事件啟發的復雜故障全流程展示。故障注入器還可以在不同系統級別注入故障,暴露根本原因,同時保持語義完整性,并考慮云微服務之間的相互依賴性,使用戶能夠對AIOps能力進行全面的測試和評估。
可觀測性則可以提升AIOpsLab的全面監控能力,包括Jaeger的追蹤、Filebeat和Logstash格式化記錄的應用日志,以及Prometheus監控的系統指標。AIOpsLab還捕獲了較低級別的系統信息,如系統調用日志和集群信息。為了處理潛在的數據過載問題,AIOpsLab通過API允許用戶選擇他們需要的特定信息,確保量身定制和全面的可觀測性。