本文做者:AIOps智能運維算法
乾貨概覽架構
在運小皮《百度自動化運維演講》文章中提到,2014年以來,百度運維開始向智能化方向邁進。智能運維時代,如何提升智能運維效率,下降通用運維操做(典型如故障場景)開發難度和成本,成爲首要難題。本文將向你們介紹面向感知、決策、執行的百度智能運維工程化解決方案。框架
背景介紹運維
故障處理和操做變動是運維兩大主題。在過去,爲維護系統穩定,各業務線都投入大量人力進行故障處理工做,除直接人肉運維外,各產品線深度定製的運維工具、系統被研發出來。隨着業務規模擴張和形態變遷,傳統運維模式受到極大挑戰:機器學習
無統一的開發管理模式,運維服務開發及維護成本大,運維效率低。工具
橫向擴展能力差,運維經驗難以複用,各產品線」重複造輪子」。學習
智能運維開發框架,提供了一種以軟件工程方式解決運維問題的解決方案。經過提供統一的開發模型和管理機制,支持不一樣產品線運維操做的設計、實現和管理。從而:測試
下降設計、開發難度與成本,使業務OP專一自身的業務邏輯,提升開發和迭代效率。人工智能
促進基於代碼的跨產品線經驗積累與分享,提高百度總體的業務運維能力。spa
充分運用和發揮自動控制、機器學習、人工智能等領域的技術成果,提升運維效率。
解決思路
智能運維開發框架以Noah(百度自動化運維管理平臺)時代的運維經驗爲基礎,經過對運維概念和操做的統一,整合當前運維繫統,提供運維操做的統一入口;讓更多的業務線OP加入到運維社區建設中,共享運維經驗,知足業務日益多樣化的須要。
具體解決思路以下:
1運維模式標準化
統一開發模式:提供統一的開發規範,社區化開發模式,業務線OP共同參與運維操做開發,沉澱運維經驗。
統一運維對象:經過知識庫,統一描述機器、實例、服務、應用等運維對象的屬性,彙集分散的運維狀態數據,達到公司內運維對象的統一。
統一運維操做:屏蔽具體平臺操做實現,提供統一的運維對象操做接口。
2運維開發工程化
提供統一的運維開發框架:封裝經常使用功能組件,提供高擴展的開發框架,使產品線專一於自身業務邏輯,開發」智能運維機器人」。
提供仿真系統:經過提供服務拓撲搭建及模擬故障的能力,完成機器人上線前功能驗證,提升」機器人」可靠性。
提供託管平臺:經過提供高可用的機器人託管環境,下降服務運維成本。
3運維操做智能化
智能感知:依賴監控系統提供的智能異常檢測、多維度異常分析,感知知足時效性和準確度的異常事件。
智能決策:自定義算法實現決策機制,充分利用機器學習、人工智能成果,提供決策可靠性。並沉澱人對問題的決策經驗,作到經驗可遷移。
智能執行:提供豐富的執行策略,知足業務線通用運維操做的需求。
實現方案
總體解決方案以下:
以智能運維機器人爲主體,深度整合公司內代碼管理工具,持續交付平臺,部署系統等devops工具鏈,幫助產品線同窗快速完成源碼構建、鏡像打包、應用部署,提供開發、測試、運維整套解決方案,大幅提高開發效率。
智能運維開發框架自身提供的功能以下:
智能運維開發框架提供了高擴展、易使用的智能運維機器人開發框架,具有線上服務拓撲結構搭建和query級別異常模擬能力的仿真系統,具有單地域故障處理能力的高可用服務部署託管平臺,完成開發至上線流程的全覆蓋,用戶只須要在智能運維開發框架基礎上嵌入本身的業務代碼,便可完成知足自身業務的運維操做。
總結
智能運維開發框架以變革運維模式爲目標,提供了開發、驗證、運維工程化解決方案。一經上線,便做爲各種故障自愈、高可用架構項目的基礎支撐,大幅提升了項目開發效率,減少了開發難度和成本,表現出了極強的穩定性。
相信在不久的未來,智能運維開發框架會成爲百度運維操做的載體,不斷達成智能運維的使命。
智能運維開發框架的具體實現和最佳實踐將在後續文章中詳細介紹,敬請期待!