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