天天看點

智能運維AIOps,加速雲計算中的範式轉變

作者:微軟亞洲研究院

衆所周知,近年來微軟 Azure 雲計算平台一直保持着強勁的增長勢頭。微軟公司董事長兼首席執行官薩提亞·納德拉(Satya Nadella)曾表示,數字技術是通漲經濟中的去通漲之力,不論是大企業還是小企業,都能通過建構自己的技術強度而提高生産力,以及讓自己的産品和服務被更廣泛的采用。端到端傳遞數字平台和工具的微軟雲,正幫助企業群組織在目前的轉型和巨變中穩步前進。

智能運維AIOps,加速雲計算中的範式轉變

如今,微軟雲有上千萬台實體伺服器,部署在世界五大洲上千個資料中心,運作着上百萬客戶的應用和服務,其中包括95%以上的财富500強企業的服務,每個月都有新的硬體上線使用,幾乎每天甚至每分鐘都有新的軟體更新部署到雲上,微軟雲的複雜程度已經遠遠超出人類的了解範圍。那麼在微軟雲的背後,又有怎樣的黑科技呢?

近日,微軟亞洲研究院常務副院長、微軟傑出首席科學家張冬梅和微軟亞洲研究院首席研究員林慶維,以及微軟雲計算與人工智能事業部首席資料科學家黨映農,聯袂向外界披露了微軟雲背後的黑科技——智能運維 AIOps。

軟體工業的數字化轉型

近15年來的雲計算迅猛發展,為智能運維 AIOps 提供了廣闊的發展空間。所謂智能運維 AIOps 就是以大資料和人工智能的方式,替代原先人工對資料中心的運維方式。在公有雲資料中心出現之前,都是企業自建資料中心,相比來說都是中小型資料中心而且位置分散,出現的故障數量不高、故障類型也難以全面,是以很難形成用于人工智能分析的大資料。而公有雲的出現,改變了一切。

智能運維AIOps,加速雲計算中的範式轉變

微軟亞洲研究院常務副院長、微軟傑出首席科學家張冬梅

在數字經濟大發展的前提下,公有雲也獲得了大發展,以微軟雲為代表的公有雲,出現了全球化的超級雲,例如微軟雲就有上千萬台伺服器,是以在微軟雲一個雲平台上就有可能獲得全局、全量、全面的資料中心運維大資料。其次,由于公有雲成為了全社會的基礎設施,全社會對于公有雲營運商的要求也水漲船高,這就倒逼公有雲營運商必須提高資料中心運維的自動化和智能化水準,從人工方式切換到更加穩定、高效而又安全的智能運維 AIOps。

張冬梅介紹,微軟亞洲研究院在智能運維 AIOps 研究方向的起步非常早。可以追溯到2009年到2010年,那個時候微軟亞洲研究院成立了 Software Analytics Group(軟體分析組),希望從資料驅動的角度對軟體領域進行研究,在軟體場景下最重要的問題包括運作系統問題、使用者體驗問題、開發效率問題等,這與今天的 AIOps 非常類似。

雲計算成為了過去10到15年内軟體和軟體工業的範式轉變動因和平台。當雲計算系統變成了軟體運作的主要形态時,Software Analytics 自然地就會把研究焦點集中到雲計算系統。随着軟體從以前面向單機和伺服器到面向超大規模雲資料中心的延展,軟體工程面臨着深刻變革,從之前主要關注程式員,向關注系統、使用者以及開發運維者的擴充——這是因為在公有雲中的軟體,最終将運作起來變成系統,進而對外提供雲服務,同時,作為系統還要關心使用者體驗和開發部署效率,這是三位一體、不可或缺的模式。

總結下來,雲計算不僅是企業資料中心的轉型,更推動了軟體和軟體工業的數字化轉型——軟體的設計、開發、運維等由人工方式轉向資料和人工智能驅動,由此帶來了智能運維 AIOps 的可行性和可能性。而微軟亞洲研究院自十多年前開始的 Software Analytics 研究,保障了今天微軟雲的穩定、可靠、安全等特性,以及業績不斷上漲的強勢局面。

AIOps 的三大方向

目前,業界對于 AIOps 的研究以及實踐,仍處于初級階段。對比自動駕駛的五個等級,AIOps 可以說是資料中心的“自動駕駛”,也可以分為 L0-L5 等級,其中 L5 對應于完全“無人駕駛”的最進階,可以說是 AIOps 的終極目标。

智能運維AIOps,加速雲計算中的範式轉變

微軟亞洲研究院首席研究員林慶維

張冬梅介紹,AIOps 通過創新的人工智能和機器學習技術,有效且高效地設計、建構和運維大規模複雜的雲服務。從微軟亞洲研究院的角度,AIOps 主要有三大研究方向:系統、使用者與開發者。

智能運維AIOps,加速雲計算中的範式轉變

首先是系統服務,即 AI for System。雲服務由部署了軟體的資料中心系統為客戶提供服務,軟體必須要在雲資料中心上運作起來,與雲資料中心一起組成可運作的系統,才能對外提供雲服務。而從可運作的系統角度來看,系統的性能、穩定性、安全性等各方面問題,都是需要研究的對象。其次是客戶,即 AI for Customer。與網際網路服務不同的是,雲服務不僅服務于個人,更服務于企業,既然是為使用者服務,一定要注重使用者體驗。即使系統再穩定,但使用者體驗不好的話,大家也不會選擇雲服務。第三是開發者,即 AI for DevOps,主要是面向開發人員和運維人員,用智能技術提高他們的生産率,讓日常工作更順暢。

在系統服務方面,經常遇到的場景有兩個:異常行為檢測,也就是當系統出現問題了,必須要能夠檢測出來;預警,即在問題出現之前預測可能要出現的問題。對于這兩個場景,主要基于資料和機器學習的方法,再結合專業領域知識,才能夠進行比較好地判斷和預判。

在使用者方面,一個場景就是加強與使用者的互動,進而讓使用者獲得很好的體驗。例如,當使用者遇到問題的時候,經常會聯系雲服務的客服人員,如果事先能夠為使用者提供一些工具,讓使用者自動獲得雲上服務的建構情況以及到底出現了什麼問題,當與客服人員溝通的時候,客服人員也能第一時間掌握具體情況,雙方在同等知識層面上交流,這樣才能更好地幫助使用者。

在開發和運維方面,主要是幫助開發或運維人員更好完成諸如 CI/CD 持續內建和持續部署等工作。而當出現了問題,一方面要快速找到解決辦法,讓雲服務盡快地回到正常狀态,但系統恢複正常并不等于根本性解決問題。很多時候,因為系統非常複雜,要花很多時間去研究、發現和調試,才能找到根因。由于日志量非常龐大,就需要通過智能的方法,幫助開發人員盡快高效、準确地完成診斷。

除了面向系統、使用者和開發者外,AIOps 需要解決的問題類型方面,又可以分為檢測、診斷、預測與優化等四大方面。在每一個問題方面,都有很多挑戰以及多個解決問題和挑戰的細分研究領域。歸根結底,雲平台非常複雜,不僅規模大而且為分布式架構,是以 AIOps 是一個需要長期投入的研究領域。

智能運維AIOps,加速雲計算中的範式轉變

微軟雲背後的黑科技

對于類似微軟雲這樣的大規模高度複雜并承載大量客戶應用的雲計算系統,很難運用傳統的非智能的軟體開發和運維技術進行高效地開發、部署、營運和管理。微軟雲計算與人工智能事業部首席資料科學家黨映農介紹,早在五六年前,微軟雲計算部門的工程團隊就深切意識到了實施智能運維的巨大必要性和迫切性,開始建立專門的資料科學家團隊,并且與微軟研究院深度戰略合作,進行智能運維方面的研發以及部署工作。

智能運維AIOps,加速雲計算中的範式轉變

微軟雲計算與人工智能事業部首席資料科學家黨映農

通過過去幾年和微軟研究院的深度合作,以及微軟雲工程師們的不懈努力,今天微軟雲已經在智能運維方面積累了不少重要的技術創新,包括雲服務系統的智能化和管理自動化、雲開發和部署的智能化,以及智能化客戶響應等等。具體來講,人工智能和機器學習技術已經深度內建到微軟雲基礎設施的管理軟體中,包括智能監控、智能預測、智能修複等等。

黨映農強調,自動化和智能化一起推進,一方面使得雲服務的可用性、可靠性以及效率得到提升,另一方面使得雲服務運作的自主性得到提高,需要進行人工維護的場景不斷減少,維護代價不斷降低。而機器學習技術也極大改善并增強了微軟雲的開發和運作維護解決方案的功能,比如像智能測試、智能診斷、智能部署等等,大幅提高了開發和運維工程師的效率。

以常見的硬碟故障為例。林慶維介紹,硬體問題是虛拟機當機的原因之一,而硬碟故障是造成硬體問題的主要原因之一。為此,工程師們希望在出現故障之前,能更早地預測出故障,然後采取措施将使用者的虛拟機遷移到其它機器上,或是通過軟啟動的方式等解決問題,進而讓使用者不受影響。然而,在硬碟故障預測中,大規模複雜的雲計算平台上故障磁盤與健康磁盤的比例可能有3: 10,000,這樣極度不平衡的正負樣本為傳統的機器學習預測帶來了極大的挑戰。此外,在硬碟徹底無法使用之前,其上層應用已經受到影響,是以單靠硬碟自身資料是無法做到即時預測的。

解決硬碟故障,就遇到了 AIOps 研究中的一大難題,這就是小資料樣本。那麼,微軟亞洲研究院的研究員又是怎麼解決問題的呢?首先,不能光看硬體本身的資料,而要将硬體相關的上下遊資料都連在一起看問題,這樣就極大擴充了可用資料。例如,遠在硬碟出現故障前,可能硬體之上運作的虛拟機性能就已經受到了影響,這時就可以通過監測虛拟機性能來提前判斷是否硬碟将要出現故障;另外,硬碟基本上都放置在同一個磁盤陣列中間,如果主機闆電壓不太穩定,當一個硬碟壞掉之後,可能同時影響到其它硬碟,或者工作負載也會受到影響,是以把鄰近的硬碟當作一個整體,也可以很好的進行預測。

基于上述思路,微軟亞洲研究院提出了鄰域-時間注意力模型(NTAM),包括鄰域感覺元件、時間元件、決策元件等,在時間和空間上都能夠捕捉更多資訊,讓模型預測能力更強。通過大量的資料實驗,與過去10年到20年最前沿期刊或者會議上的論文方法進行比較,微軟亞洲研究院提出的模型預測能力從精确度和召回率方面都有更佳效果。

智能運維AIOps,加速雲計算中的範式轉變

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 技術,幫助更多的使用者以及業界提升雲服務的整體運維水準,夯實雲計算作為新型社會基礎設施的“地基”。