2017年線上技術分會——運維/devops線上技術峰會上,來自阿裡基礎架構事業部大資料sre團隊的池楓分享了建構通用化智能運維體系的實踐。他主要介紹了智能運維體系的設計以及通用核心套件,從t-flow操作執行、ics事件連接配接、ias智能分析三個核心套件的實際案例出發詳細介紹了阿裡的運維經驗。
以下内容根據直播視訊整理而成。

上圖的上方是大資料sre團隊運維的産品,幾乎包括了所有阿裡巴巴使用的大資料産品。下方是運維模式的發展曆程,經過了:人工腳本化、工具整合、自動化平台、智能運維體系。承載這些服務的叢集規模、伺服器規模已經從一開始的k左右發展到如今的近百k左右,分布在所有阿裡巴巴的idc即生産網絡域中,業務的種類和業務的形态各不相同。特斯拉智能運維體系下的主要核心運維場景包括環境管理、操作執行、需求處理、時間連接配接、事件分析、故障預測。各行各業都希望ai能夠在自己領域落地,而在運維領域ai有比較現實的需求和比較具體的應用場景。智能運維必須在一個體系化的産品之上,強調的是從監控到分析、到執行整個過程的無人化甚至超人化,突出的是系統的自治能力和預知能力,這個目标比較長遠。
橫向上,将産品分為四種類型:執行類,直接作業系統,應用程式,硬體,網絡的産品;分析類,實作運維人員思考問題,分析需求,排查故障的産品;連接配接類,實作分析與執行産品驅動與回報的連系産品;展現類,将智能平台的狀态以多種可視化的方式表達出來。
從業務的縱向分層上,在特斯拉體系的内部又分成兩個層次:下層是運維paas層服務,上層是面向終端客戶的saas層服務。在特斯拉體系外部,依托于整個集團的運維paas服務。
t-flow是最基礎的paas服務,設計之初是用來替代運維人員的雙手。首先将運維操作抽象成一個對象,發現其三個關鍵的屬性(where、what、how),t-flow就是用來實作抽象、封裝、執行個體化的産品。
上圖總結了使用者在系統上操作的場景:在一個系統目标中按照順序執行操作、在不同系統目标中按照順序執行操作、在不同的系統目标中并發的執行操作。為此,設計了simple flow模型來适應這三種場景。
如何建構t-flow模闆?使用者首先需要配置這些節點中操作的内容,然後配置模闆需要輸入的參數(t-flow支援多種文本類型的輸入),将操作和參數内容進行配置綁定。希望使用者隻需要關心局部代碼邏輯的實作,從全局上面關注整個運維事件。
一次中等規模的應用運維事件往往會牽涉多個應用,任務種類、任務執行方式都不相同,是以在simple flow的基礎上又封裝了一層多任務、多應用的操作類multiflow,上圖共有4種simple flow,每一個方塊代表在一個應用上的一個執行個體,開始執行之後就可以看到每個步驟執行的狀态。
上圖是執行個體的執行界面,中間的綠色方塊代表節點,點選每個節點之後會在下方顯示節點具體的内容。這是生産上hbase叢集熱更新的案例。為了适應應用中的服務是熱更新的場景,開發了疊代器功能,實作一批伺服器上按照順序執行相同的指令,使用者隻需要配置同樣的指令、輸入目标叢集參數,系統就可以自動生成節點。
該案例的步驟隻有三步,每個步驟中使用了并發器元件(在一批機器上并發執行腳本指令),提供了灰階和正式批的區分,提供了并發數可配置的功能,并且異常節點可以很清楚的顯示在界面上。
并發器的具體内容如上圖所示,三個步驟都是推送檔案到目标伺服器上的操作。
此案例是multiflow的執行個體,在第一個大步驟中有12個simple flow執行個體,可以清晰看到每個執行個體的執行狀态和執行方式。
事件包括監控事件、故障分析、流程事件,服務包括腳本分析、t-flow執行個體執行、noc通知等。通過ics的使用,可以使簡單的運維事務實作閉環。比如在ics上配置監控事件并且配置其修複方案就實作了故障自愈的場景。ics能夠将我們關注的,而且是确定能夠通過自動化方案解決的事務形成一個簡單的智能處理閉環,減少了人工處理過程中的消耗。
上圖是ics的架構圖,整體分為三個部分:觸發器、事件處理、執行器。ics的觸發器和執行器采用了插件化的方式去實作業務連接配接。事件處理子產品充分考慮了事件的抑制、沖突等機制,保證了整個ics處理的穩定性、可靠性。
首先是高危事件的配置,事件觸發的來源可以有很多種,監控、檔案分析等,采用了從監控的源頭擷取事件。當選擇了監控事件之後,需要配置監控來源的應用、事件的抑制處理方案、異常處理的邏輯。下一步是配置事件修複的執行器。最後,将觸發器和執行器進行連接配接,生效之後ics平台就會關注這個事件。如果有事件發生就會啟動執行器進行處理。
ias預期目标包括:實作問題分析、發現潛在問題、進行決策分析。
該版本實作了問題排查的自動化,通過dag決策來模拟人排查定位問題的過程。在此基礎上,還要根據使用者的實際需求情況完善整個流程。圖中的每一個節點代表使用者的分析邏輯,由使用者來實作,邊代表各個節點之間的依賴關系,邊上的條件可以通過使用者需求進行配置。
上圖是使用ias的案例,界面為ias模闆的配置界面。首先需要建立流程模闆,最中間是核心的分析流程,包含了兩類節點,藍色為分析節點,黃色為結論節點。左邊是整個流程定義的全局變量,每個節點都可以去修改全局變量的内容。當我們點選任何一個分析節點之後,就可以在右邊的詳情面闆上展示出其内容。
特斯拉體系中除了運維paas元件之外,還有面向客戶的saas服務,這些服務對營運效率的提高也是巨大的。運維工作需要沉澱,即對運維過程的格式化,隻有格式化之後才能産生資料。隻有格式化的資料才能作為資料分析、挖掘的依賴。通過tesla運維體系的建設使得運維更加主動,使運維有時間去做更深層次的、更高價值的工作。運維智能化的大潮剛好是改變運維價值的很好機會,将運維從低價值的工作中解脫出來,起到更重要的作用。