搜狗輸入法背后的運維又是如何智能的?
發布時間: 2017-06-20
再講智能運維之前,我們先來看看,運維工程師常見的三大痛點:操心成本、智商不夠、惱人成本。
操心成本
所謂操心成本與相聲《扔靴子》所表達的主題相似——你并不知道“第二雙靴子什么時候扔下來”,同樣你并不知道故障什么時候來臨,所以你一直提心吊膽,惶惶不安。7×24運維,半夜經常會有收到警報的情況,運維團隊負責多個模塊、機器、服務、業務等等,如何保障它們的可靠性?并且每個業務都有自己的指標,響應時間、請求量、磁盤容量、網絡IO等等,這些指標都可能發生異常。目前業界一些通用的監控手段,有時會鋪天蓋地報警,但這些報警不一定能反應真實的情況,真是讓人操碎了心。
智商不夠
當運維過程中遇到比較復雜的故障需要處理的時候,不能很快的找到出現故障的根源,很好地進行故障定位,感覺智商不夠用。
惱人成本
搜狗有一條明文規定,如果運維工程師不做運維開發,不予升職。所以搜狗的運維經理除了履行保障線上可靠性職責的同時還要做自動化研發。因為職責在身,線上一旦出現問題,無論大小,運維人員是首先被問詢的,所以運維人員最容易被打擾??勺鲅邪l大家都知道,是需要整塊時間才能夠保證效率且減少出錯。這樣一來,上班時間基本上不會有大塊時間來做研發,這樣的狀況真的很煩人。
針對這三大做運維最基本的痛點,搜狗運維選擇用“智能”來化解:
●針對操心成本,是智能熔斷
●針對智商不夠用的情況,是智能故障定位
●針對煩人成本,是智能問答機器人“維秘”
智能熔斷的思路
作為運維人員所要面臨的問題,往往是一張以時間為橫軸的時序圖,縱軸是響應時間、CPU占有率、網絡IO、磁盤IO等一系列指標,這樣的指標每個節點或機器都有一二十個。如果有上萬臺機器,上萬個節點,那么就會有一百萬張時序圖,工程師需要對每張圖做智能監控, 當發生異常,隨時上報。在股票、醫學領域,基于時間軸的數據監控已被廣泛應用。股市利用數據監控預測股票漲跌,醫學可以利用數據監控預測疾病的發生時間,這些特點與運維有高度的相似性。運維領域也是以時間軸為緯度分析,目前有很多監控和分析的工具,最簡單如設定一個固定的閾值或者周同比,但這些工具還不夠智能。智能熔斷系統。目前,搜狗運維正在研發智能熔斷系統,是為應對操心成本而生,針對故障的根本原因進行分析和故障預測。故障的原因有二:
●代碼變更或上線,這類的故障非常多,而且大多都是人為造成的 ,現在基本上可以實現智能上線平臺做自動上線,完全自主。
●就是機房、網絡和硬件等。
當面對自主上線的情況,如何保證平臺的穩定?搜狗引入熔斷機制,當某些指標有發生上線動作、發生異動的時候,系統自動判斷并做熔斷,比如做停止或者回滾操作。并和一些其他的智能設備相結合,如手機上可操作熔斷、停止及回滾等功能。這個系統能解決大部分問題,如環境、代碼、人為誤操作等等。
還有一個問題,就是一些研發人員水平不高,寫出的代碼在上線的瞬間,指標出現異常,但重啟一段時間就好了。同時研發人員表示,當前沒有精力去處理,暫時忽略。面對這種情況,就要引入更深的人工智能話題,要對異常進行判斷,是已忽視的正常異常,還是需要處理的異常,這里就涉及到對故障點分類的問題。
智能故障定位
搜狗搜索引擎的架構非常復雜,如下圖只是架構的冰山一角。在如此復雜的前后連接關系的情況下,當故障發生時,如何快速故障定位、如何減少用時、如何判斷報警的根本原因呢?
搜狗的做法是把問題抽離成一個規則的模板,即一個規則的集合,然后基于特定業務架構圖去分析,最終定位故障具體原因。大致的算法是每一個探針的請求都帶一個ID,這個ID在各個模塊都是打通的。運維工程師分析這個請求的ID在每個模塊里面的具體表現,根據這些規則模板看它是否命中設定規則模板,然后定位系統,再根據這些規則模板的命中情況做一個決策,將故障定位。甚至可以定位它是屬于哪個模塊的哪個節點,這樣就可以快速的去處理這個故障。
如下圖,右上角是各種模板命中的情況,根據命中情況做最終的判斷。
如果熔斷系統是人工智能的話,故障定位就是人肉智能,可以看到核心功能都是由人肉智能編纂出來的。每當出現一類問題,就編入知識庫和故障分析模塊,避免下一個同樣的故障發生。但實際情況是大家在操作某一個模塊時, 不一定會去看之前存在的問題和解決方案。搜狗的做法是把這些問題與知識固化到系統里,讓機器人發揮作用,如上圖的最終結果展示,包括Web端和手機端,都可對接一些故障問題。
智能問答機器人“維秘”
這是一個問答系統,已在搜狗內部開始內測,也是為了解決運維的第三個痛點——煩人成本。運維工程師每天需要解答各種各樣的問題,需要花費大量的瑣碎時間,而這個工作完全可以交由智能機器人來解決。
維密運維機器人,構建在搜狗內部的即時通訊工具中,類似微信公眾號,可實現直接提問與回答。它可以實現三項功能:
●智能查單,在搜狗內部運維系統有很多工單,當咨詢人員輸入工單號,就能查到工單進行到哪一步了,類似于搜索快遞單號,你輸入快遞單號就能顯示快遞狀態。
●智能找人,咨詢人員提問后,可能并沒有命中知識庫(上文中提到的知識庫已由運維工程師提前編輯和整理),機器人沒法回答,但機器人可以判斷這個問題是屬于哪個領域,然后推薦此領域的專家,如問到硬盤的問題,則會推薦一位硬件領域專家解答問題。而咨詢人員與專家的對話又將得以保存,并作為機器進一步學習的資料。
●是最為常見的智能問答,咨詢人員提出問題,機器人直接根據知識庫來進行解答。
在研究的過程中,如何低成本用人工智能武裝運維,是值得思考的問題。小編建議運維工程師挖掘真正痛點,深入思考產生好想法并用好 AI 云。