智能運維AIOps,加速云計算中的范式轉變
眾所周知,近年來微軟 Azure 云計算平臺一直保持著強勁的增長勢頭。微軟公司董事長兼首席執行官薩提亞·納德拉(Satya Nadella)曾表示,數字技術是通漲經濟中的去通漲之力,不論是大企業還是小企業,都能通過構建自己的技術強度而提高生產力,以及讓自己的產品和服務被更廣泛的采用。端到端交付數字平臺和工具的微軟云,正幫助企業和組織在當前的轉型和巨變中穩步前進。
如今,微軟云有上千萬臺物理服務器,部署在世界五大洲上千個數據中心,運行著上百萬客戶的應用和服務,其中包括95%以上的財富500強企業的服務,每個月都有新的硬件上線使用,幾乎每天甚至每分鐘都有新的軟件更新部署到云上,微軟云的復雜程度已經遠遠超出人類的理解范圍。那么在微軟云的背后,又有怎樣的黑科技呢?
近日,微軟亞洲研究院常務副院長、微軟杰出首席科學家張冬梅和微軟亞洲研究院首席研究員林慶維,以及微軟云計算與人工智能事業部首席數據科學家黨映農,聯袂向外界披露了微軟云背后的黑科技——智能運維 AIOps。
近15年來的云計算迅猛發展,為智能運維 AIOps 提供了廣闊的發展空間。所謂智能運維 AIOps 就是以大數據和人工智能的方式,替代原先人工對數據中心的運維方式。在公有云數據中心出現之前,都是企業自建數據中心,相比來說都是中小型數據中心而且位置分散,出現的故障數量不高、故障類型也難以全面,因此很難形成用于人工智能分析的大數據。而公有云的出現,改變了一切。
微軟亞洲研究院常務副院長、微軟杰出首席科學家張冬梅
在數字經濟****展的前提下,公有云也獲得了****展,以微軟云為代表的公有云,出現了全球化的超級云,例如微軟云就有上千萬臺服務器,因此在微軟云一個云平臺上就有可能獲得全局、全量、全面的數據中心運維大數據。其次,由于公有云成為了全社會的基礎設施,全社會對于公有云運營商的要求也水漲船高,這就倒逼公有云運營商必須提高數據中心運維的自動化和智能化水平,從人工方式切換到更加穩定、高效而又安全的智能運維 AIOps。
張冬梅介紹,微軟亞洲研究院在智能運維 AIOps 研究方向的起步非常早??梢宰匪莸?009年到2010年,那個時候微軟亞洲研究院成立了 Software Analytics Group(軟件分析組),希望從數據驅動的角度對軟件領域進行研究,在軟件場景下最重要的問題包括運行系統問題、用戶體驗問題、開發效率問題等,這與今天的 AIOps 非常類似。
云計算成為了過去10到15年內軟件和軟件工業的范式轉變動因和平臺。當云計算系統變成了軟件運行的主要形態時,Software Analytics 自然地就會把研究焦點集中到云計算系統。隨著軟件從以前面向單機和服務器到面向超大規模云數據中心的延展,軟件工程面臨著深刻變革,從之前主要關注程序員,向關注系統、用戶以及開發運維者的擴展——這是因為在公有云中的軟件,最終將運行起來變成系統,從而對外提供云服務,同時,作為系統還要關心用戶體驗和開發部署效率,這是三位一體、不可或缺的模式。
總結下來,云計算不僅是企業數據中心的轉型,更推動了軟件和軟件工業的數字化轉型——軟件的設計、開發、運維等由人工方式轉向數據和人工智能驅動,由此帶來了智能運維 AIOps 的可行性和可能性。而微軟亞洲研究院自十多年前開始的 Software Analytics 研究,保障了今天微軟云的穩定、可靠、安全等特性,以及業績不斷上漲的強勢局面。
目前,業界對于 AIOps 的研究以及實踐,仍處于初級階段。對比自動駕駛的五個等級,AIOps 可以說是數據中心的“自動駕駛”,也可以分為 L0-L5 等級,其中 L5 對應于完全“無人駕駛”的最高級,可以說是 AIOps 的終極目標。
微軟亞洲研究院首席研究員林慶維
張冬梅介紹,AIOps 通過創新的人工智能和機器學習技術,有效且高效地設計、構建和運維大規模復雜的云服務。從微軟亞洲研究院的角度,AIOps 主要有三大研究方向:系統、用戶與開發者。
首先是系統服務,即 AI for System。云服務由部署了軟件的數據中心系統為客戶提供服務,軟件必須要在云數據中心上運行起來,與云數據中心一起組成可運行的系統,才能對外提供云服務。而從可運行的系統角度來看,系統的性能、穩定性、安全性等各方面問題,都是需要研究的對象。其次是客戶,即 AI for Customer。與互聯網服務不同的是,云服務不僅服務于個人,更服務于企業,既然是為用戶服務,一定要注重用戶體驗。即使系統再穩定,但用戶體驗不好的話,大家也不會選擇云服務。第三是開發者,即 AI for DevOps,主要是面向開發人員和運維人員,用智能技術提高他們的生產率,讓日常工作更順暢。
在系統服務方面,經常遇到的場景有兩個:異常行為檢測,也就是當系統出現問題了,必須要能夠檢測出來;預警,即在問題出現之前預測可能要出現的問題。對于這兩個場景,主要基于數據和機器學習的方法,再結合專業領域知識,才能夠進行比較好地判斷和預判。
在用戶方面,一個場景就是加強與用戶的互動,從而讓用戶獲得很好的體驗。例如,當用戶遇到問題的時候,經常會聯系云服務的客服人員,如果事先能夠為用戶提供一些工具,讓用戶自動獲得云上服務的構建情況以及到底出現了什么問題,當與客服人員溝通的時候,客服人員也能第一時間掌握具體情況,雙方在同等知識層面上交流,這樣才能更好地幫助用戶。
在開發和運維方面,主要是幫助開發或運維人員更好完成諸如 CI/CD 持續集成和持續部署等工作。而當出現了問題,一方面要快速找到解決辦法,讓云服務盡快地回到正常狀態,但系統恢復正常并不等于根本性解決問題。很多時候,因為系統非常復雜,要花很多時間去研究、發現和調試,才能找到根因。由于日志量非常龐大,就需要通過智能的方法,幫助開發人員盡快高效、準確地完成診斷。
除了面向系統、用戶和開發者外,AIOps 需要解決的問題類型方面,又可以分為檢測、診斷、預測與優化等四大方面。在每一個問題方面,都有很多挑戰以及多個解決問題和挑戰的細分研究領域。歸根結底,云平臺非常復雜,不僅規模大而且為分布式架構,因此 AIOps 是一個需要長期投入的研究領域。
對于類似微軟云這樣的大規模高度復雜并承載大量客戶應用的云計算系統,很難運用傳統的非智能的軟件開發和運維技術進行高效地開發、部署、運營和管理。微軟云計算與人工智能事業部首席數據科學家黨映農介紹,早在五六年前,微軟云計算部門的工程團隊就深切意識到了實施智能運維的巨大必要性和迫切性,開始建立專門的數據科學家團隊,并且與微軟研究院深度戰略合作,進行智能運維方面的研發以及部署工作。
微軟云計算與人工智能事業部首席數據科學家黨映農
通過過去幾年和微軟研究院的深度合作,以及微軟云工程師們的不懈努力,今天微軟云已經在智能運維方面積累了不少重要的技術創新,包括云服務系統的智能化和管理自動化、云開發和部署的智能化,以及智能化客戶響應等等。具體來講,人工智能和機器學習技術已經深度集成到微軟云基礎設施的管理軟件中,包括智能監控、智能預測、智能修復等等。
黨映農強調,自動化和智能化一起推進,一方面使得云服務的可用性、可靠性以及效率得到提升,另一方面使得云服務運行的自主性得到提高,需要進行人工維護的場景不斷減少,維護代價不斷降低。而機器學習技術也極大改善并增強了微軟云的開發和運行維護解決方案的功能,比如像智能測試、智能診斷、智能部署等等,大幅提高了開發和運維工程師的效率。
以常見的硬盤故障為例。林慶維介紹,硬件問題是虛擬機宕機的原因之一,而硬盤故障是造成硬件問題的主要原因之一。為此,工程師們希望在出現故障之前,能更早地預測出故障,然后采取措施將用戶的虛擬機遷移到其它機器上,或是通過軟啟動的方式等解決問題,從而讓用戶不受影響。然而,在硬盤故障預測中,大規模復雜的云計算平臺上故障磁盤與健康磁盤的比例可能有3: 10,000,這樣極度不平衡的正負樣本為傳統的機器學習預測帶來了極大的挑戰。此外,在硬盤徹底無法使用之前,其上層應用已經受到影響,因此單靠硬盤自身數據是無法做到即時預測的。
解決硬盤故障,就遇到了 AIOps 研究中的一大難題,這就是小數據樣本。那么,微軟亞洲研究院的研究員又是怎么解決問題的呢?首先,不能光看硬件本身的數據,而要將硬件相關的上下游數據都連在一起看問題,這樣就極大擴展了可用數據。例如,遠在硬盤出現故障前,可能硬件之上運行的虛擬機性能就已經受到了影響,這時就可以通過監測虛擬機性能來提前判斷是否硬盤將要出現故障;另外,硬盤基本上都放置在同一個磁盤陣列中間,如果主板電壓不太穩定,當一個硬盤壞掉之后,可能同時影響到其它硬盤,或者工作負載也會受到影響,因此把鄰近的硬盤當作一個整體,也可以很好的進行預測。
基于上述思路,微軟亞洲研究院提出了鄰域-時間注意力模型(NTAM),包括鄰域感知組件、時間組件、決策組件等,在時間和空間上都能夠捕捉更多信息,讓模型預測能力更強。通過大量的數據實驗,與過去10年到20年最前沿期刊或者會議上的論文方法進行比較,微軟亞洲研究院提出的模型預測能力從精確度和召回率方面都有更佳效果。
NTAM 模型概覽
NTAM 論文鏈接:
https://dl.acm.org/doi/10.1145/3442381.3449867
在大規模服務故障預測方面,為了最大程度避免大規模服務中斷(outage),減少服務停機時間,確保云服務的高可用性,微軟亞洲研究院開發了一種智能的大規模中斷預警機制 AirAlert,可以在云服務大規模中斷發生前預測中斷的發生。AirAlert 收集整個云系統中的所有系統監控信號,檢測監控信號之間的依賴性,并動態預測整個云系統中任何地方發生的大規模中斷,然后使用一種叫做魯棒梯度提升樹(robust gradient boosting tree)的技術,預測潛在的大規模中斷。研究團隊在微軟云系統收集了超過1年的服務中斷數據,并在數據集上驗證了該方法的有效性。
在系統實際運行中時而會發生某些系統故障,導致系統服務質量下降甚至服務中斷,通常稱為服務事故(Service Incident)。云服務事故往往會帶來巨大的經濟損失,并且影響用戶在云上部署的服務。過去幾年,微軟亞洲研究院采用軟件解析的方法來解決在線系統中的事故管理問題,開發了一個系統云服務分析工作室(SAS)來幫助軟件維護人員和開發人員迅速處理、分析海量的系統監控數據,提高事故管理的效率和響應速度。SAS 在2011年6月被微軟某在線產品部門所采用,并安裝在全球的數據中心,用于大規模在線服務產品的事故管理。通過分析半年的 SAS 使用記錄發現,工程師在處理大約86%的服務事故中使用了 SAS,并且 SAS 能夠為其中約76%的服務事故處理提供幫助。
微軟亞洲研究院長期深耕數據智能領域,利用大規模數據挖掘、機器學習和人工智能技術對紛繁復雜的運維大數據進行實時分析,為系統維護提供有效的決策方案。如今,微軟亞洲研究院的研究成果已經應用到了微軟 Azure、Office 365、OneDrive、SharePoint 等諸多在線服務中,成為保障微軟云和在線服務高質量運行背后的黑科技。未來,微軟亞洲研究院也希望打造更加通用化的 AIOps 技術,幫助更多的用戶以及業界提升云服務的整體運維水平,夯實云計算作為新型社會基礎設施的“地基”。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。