當DevOps遇見AI,智能運維黃金時代即將開啟?
人工智能應用的分類
很多情況下人工智能無法給出 100% 正確的回答(其實人類也是一樣的),如何找到人工智能善于解決的問題就成了首要的任務。
人工智能應用可以分成三類:
- 核心業務,失敗不可接受。 醫療,銀行,法律。
- 核心業務,失敗率可接受。 自動駕駛,自然語言理解。
- 非核心業務,對失敗不敏感。 用于改善用戶體驗。
從人工智能發展和應用的過程來看,通過對感知的模擬,幫助人類做決策,直到完全 代替人類處理大量重復的數據方面的工作。
另一方面,由 巨大商業利益 推動的人工智能將很快成為現實,自動駕駛商業應用會帶來客觀的商業價值比如:
人為交通事事故減少,保險費降低,無人參與駕駛,用車成本減少到五分之一;按需用車,汽車保有數量會減少到三分之一,導致車商業模式變革;車輛流量變化,大量節省道路和停車場的面積,導致城市規劃改變。
人工 + 智能才是最佳的組合方式
卡斯帕羅夫和李世石真的敗給了機器嗎?
(IBM 的深藍和谷歌的 AlphaGo)在人類選手的對面,是人工智能匯集了所有人類智慧和經驗的智能流算法,如果是這樣的話人類必敗無疑。
但反過來想如果人類也有一個人工智能輔助來比賽呢?那勝負就未嘗可知了。
卡斯帕羅夫在被深藍擊敗后,發起了自由式國際象棋比賽,可以使用人工 + 智能(半人馬選手)方式參與比賽,由人工智能給出建議,人類來決定是否采納建議。2014 自由式國際象棋對抗比賽人類贏得了 42 場半人馬選手贏得 53 場,當前最優秀的國際象棋團隊都是半人馬選手由人類和人工智能組成。既然人工智能可以幫助人類成為最優秀的象棋選手,那么可以推測人工智能也能幫助人類成為最優秀的醫生、飛行員、法官 和教師甚至是運維和開發人員。
人工智能的工作方式和解決的問題種類
上圖為典型的機器學習流程(圖來源于 Natalia Konstantinova 博士的博客)
機器學習可以解決以數據為基礎四類問題:典型的機器學習通過無監督學習和監督學習,抽取特征,再通過機器學習算法,實現基于通用特征分組,得出預測模型,通過預測模型為新數據數據打標簽。邏輯推理預測、規劃師、溝通者、體驗與情感。
由 Ajit 的一片博客中總結到人工智能善于解決的 12 中問題(http://www.opengardensblog.futuretext.com/archives/2017/01/twelve-types-of-artificial-intelligence-ai-problems.html)
- 領域專家:模擬現場專家給出建議
- 領域擴展:給出新見解新方法。
- 復雜規劃師:比非 AI 算法易于優化
- 更好的溝通者:智能代理,自動語言翻譯
- 新感知能力:機器視覺產生了自主車輛
- 企業 AI:改進業務流程
- ERP AI: 通過認知系統增強 ERP
- 跨界影響預測:比如自主車輛導致司機崗位需求降低;人為交通事事故減少,保險費降低;按需用車消費導致車企商業模式變革,車輛流量變化,導致城市規劃改變。
- 目前算法和硬件問題無法很好解決的問題:語音識別達到人的能力。
- 更好的專家系統:通過資料無監督學習獲取知識
- 超長序列模式識別:時間序列預測模型
- 情感分析:通過行為預測人類情感的變化
運維發展的歷程與人工智能的作用
運維行業經歷了初始、專業化、工具化、平臺化、云化和智能化過程。從手動運維階段基本沒有數據,到規模化結構化數據和智能化非結構化數據的趨勢。
人工智能發展初期充當輔助人類的助手角色,以增加銷售額,提升用戶體驗,優化生產過程和節省成本為目標。
手動階運維階段
運維工作量小運維人員主要工作就是看監控屏幕,隨著對運維要求提高,工作分工此階段產生,產生了穩定,便捷,可靠,快速的工作原則。
人工智能可以做的是:基于人的經驗,對結構化銷售數據進行商業智能分析(BI)找出數據中的知識,從而提升銷售額。存在的問題主要是數據專家基于經驗發現業務數據中的知識,對業務了解程度成為 BI 有效性的最大瓶頸。即缺乏即懂業務規則又懂數據發掘的人才阻礙商業智能的發展。
規模化階段
隨著 DevOps 概念的推出,工具大量涌現來協助運維工作運維能力大幅提升,帶來問題是很少有一家公司可以生產覆蓋所有 DevOps 生命周期的工具,而學習多種不同廠商的工具完成任務帶來很高的技術門檻。隨著一些創業型公司崛起,運維工作量爆發式增長,為了保證業務的連續性 SRE 也在此時期產生,主要目標是使用軟件工程技術實現業務大幅增長而運維工作了保持平穩。
人工智能可以做的是:出現以結構化數據為主工業級解決方案,使用算法為主解決商業通用問題,以提高人員利用率加快創造價值為典型問題。同時也存應用了工業級智能解決方案有多大的效率提升很難估算和當數據知識變化后很難進行跟蹤優化的問題。
生態化階段
隨著互聯網規模的發展,少數大公司承擔起基礎設施的工作,通過高度集中提升數倍的運維效率(在亞馬遜購買 1 美元的基礎設施,可以帶來與傳統數據中心 7 美元投資相同的計算力),這種變革讓云計算客戶專注于業務的發展將基礎設施運維交給云計算平臺。市場規模繼續增長一個公司無法使用一套解決方案覆蓋所有細分市場的需求,生態化從而產生。因此大量的數據為人工智能實用化奠定基礎。
人工智能可以做的是:出現以非機構化數據為主通用的技術框架,不同的公司負責一部分問題形成生態圈,協助業務人員完成工作,通過新感知能力半自動或自動化完成以前手工的工作。如何結合新的感知能力輔助人類在巨大數據量,變化的規律中做出決策成為新的問題。
用矛盾論的觀點分析 DevOps
DevOps 的本質是在解決矛盾的對立與統一的問題
DevOps 存在矛盾的兩方面,我們做的事情無外乎一分為二,最終二合為一 矛盾論。

這是第一次西方的 DevOps 方法論與中國的矛盾論結合,其實所謂的方法論要不就被認為是廢話(一般性原則),要不就是不被人理解(太深奧)。不妨我們往下看看,一分為二和二合為一是什么意思。
我們先拋開 DevOps 的定義,假設我們 DevOps 要做什么事情,他就像足球比賽開始時候裁判拋出的硬幣正面或反面朝上,來決定由哪一方先發球,先發球就意味著具有很大優勢,但是雙方認可這枚硬幣來作為雙方都可以接受的方式來開始一場比賽。這就是 DevOps 在研發和運維工作中起到的低成本的溝通協調的作用。
很有趣的一點就是隨著 DevOps 理論的提出各種工具(硬幣)大量涌現,這些工具只不過提供了比拋硬幣復雜一些的規則而已。而人工智能會給這些工具帶來增強效果。
不能一味的追求事物的某個方面而忽略另一方面
我們在回過頭來看一分為二是什么意思。研發追求功能的吞吐量,主要關注需求實現時長,發布頻率和部署前置時間。而運維追求穩定性,主要關注部署成功率,應用錯誤率,事故嚴重程度和嚴重 bug。這本來就是一對不可調和的矛盾。
但是從更高的維度看,只做好吞吐量或是穩定性,不能帶來性能提升、體驗提升和業務成功。當我們確定了運維和研發的共同目標 — 即業務成功后,問題就變成:為了共同的業務成功,研發和運維在 DevOps 協同過程中,不會一味最求吞吐量或是穩定性。
為什么人工智能在 DevOps 中大有可為?
DevOps 可以獲取幾乎所有類型的數據
指標體系框架來自《精益軟件度量》我們了解到人工智能解決的問題都是以數據為基礎的,那么有了價值、效率、質量和能力方面有指標和數據就可以在 DevOps 過程中通過人工智能解決問題了。
找到 DevOps 全生命周期中人工智能可以改善問題
在 DevOps 生命周期中還有很多工具無法實現自動化的過程,這些過程往往會投入大量的人力和溝通成本,也有很多信息不足無法做出很好決定的場景,在這些場景中人工智能可以根據以往大量數據訓練的模型,給出建議,從而給出研發和運維都能認同的工作方式,提升工作效率提高工作質量。
當人工智能牽手 DevOps
我們現在有了 DevOps 生命周期中的數據,同時也了解到人工智能易于解決的四類問題。我們可以嘗試使用全連接的方式找出 36(4×9)個在 DevOps 領域里適合使用人工智能解決的問題。
比如上圖中的“精益需求管理”過程中:通過價值和效率數據使用邏輯推理和預測人工智能方法,得出需求的價值命中率和客戶滿意度的預測。通過這些人工智能得出的標簽優化需求的優先級管理。這樣從完全靠人工經驗的過程變為人工智能輔助完成的高效過程。
到那時需求人員只需要調節想得到的轉化率(運營指標),或是性能(運維指標),就可以通過人工智能方式自動提升改善這些指標的需求的優先級。。甚至是根據需求改變的特性,分析大量現有代碼庫中的通過測試的代碼而自動為開發人員推薦代碼。
“分層自動測”過程中:使用圖片轉文字,方式將必須人工完成的測試自動化彎道提高測試效率與準確率。
“持續運營反饋”過程中:通過自動化運維根因分析,提升定位系統問題的效率。
找到成功的第三條路,在吞吐量和穩定性中間建立平衡讓兩方面都能正常行事
再說“最終二合為一”的矛盾論下半部分。通過人工智能給出的第三種方式讓雙方都能向自己的目標前進,從而為一個共同業務成功目標結合為一個整體。
比如,在“安全發布策略(灰度發布)“階段,使用研發團隊的能力數據、內在質量數據和歷史中發布后的外部質量數據訓練機器學習模型。通過這個模型在發布階段給出軟件發布后外部質量評估。在發布過程中對比前后兩個版本的外部質量差距來決定是否進入灰度發布的下一個階段。回想當初那個正面是 Dev 反面是 Ops 的硬幣,這個 AI 的工具是不是先進了不少呢?
人工智能可能的應用
通過 DevOps 過程獲得數據,使用人工智能提升服務或產品競爭力需要想象力。唯一限制我的是我們的大腦想不到的偉大的想法,而不是什么我們做不到。下面想象一下科幻大片里的一些場景。
1.終結者自動駕駛一樣,通過監控系統反饋,進行自動化軟件發布過程
2.安德的游戲一樣動態監控互動界面,像一個孩子通過 AR 方式指揮龐大的艦隊戰勝外星生物那樣管理系統軟件與硬件的運維工作a. 告警抑制
b. 服務自愈
c. 主動運維
3.像鋼鐵俠超大別墅中智能管家一樣的容量規劃管理a. 自然語言交流
b. 容量預測規劃
4.像黑客帝國殺毒程序一樣的風險合規管理a. 攻擊特征提取
b. 主動防御黑客攻擊
5.像喬布斯一樣的先驗用戶體驗a. A/B 測試(fisher‘s exact test 費歇爾精準檢驗)
b. 軟件質量評估
不得不提的是 1996 年 12 月蘋果公司收購了 NeXT,使喬布斯回歸蘋果,到 2011 年 10 月喬布斯去世,蘋果市值在 5 年時間里從 30 億美金增長到 3470 億美金,增長 115.7 倍。不得不說喬布斯的用戶體驗感知能力足夠科幻了。
智能運維領域案例
2014-2016 百度通過機器學習實現了被動異常監控和主動的流量調度算法。騰訊通過人工智能幫助我檢測和打擊欺詐犯罪很多公司都在人工智能方面做出了嘗試,在目前尋求差異化的時代,人工智能可以成為產品的一個亮點進行差異化競爭,成為避免價格戰的手段。
作者:
萬金,Thoughtworks高級咨詢師,10年+工作經驗,知名外企與中國企業的IT從業經驗,包括IBM、華為、中興、Thomson。具有7年云計算相關經驗,多系統的研發和運維經驗,熟練掌握敏捷和DevOps方法論和實踐,具有軟件研發生命周期工具與流程改進豐富經驗。
弱人工智能”(Narrow AI), 是在某些特定領域高效完成任務的專用人工智能, 比如識別圖片中的內容或是通過搜索大量醫學臨床案例為醫生提出治療建議的專用人工智能。目前可實現的人工智能的本質是,人來提出目標,由機器分析大量數據人來高效找到答案。