1. 程式人生 > >當 DevOps 遇見 AI,智慧運維黃金時代即將開啟?

當 DevOps 遇見 AI,智慧運維黃金時代即將開啟?

DevOps

作者:

萬金,Thoughtworks高階諮詢師,10年+工作經驗,知名外企與中國企業的IT從業經驗,包括IBM、華為、中興、Thomson。具有7年雲端計算相關經驗,多系統的研發和運維經驗,熟練掌握敏捷和DevOps方法論和實踐,具有軟體研發生命週期工具與流程改進豐富經驗。

弱人工智慧”(Narrow 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)

  1. 領域專家:模擬現場專家給出建議
  2. 領域擴充套件:給出新見解新方法。
  3. 複雜規劃師:比非 AI 演算法易於優化
  4. 更好的溝通者:智慧代理,自動語言翻譯
  5. 新感知能力:機器視覺產生了自主車輛
  6. 企業 AI:改進業務流程
  7. ERP AI:  通過認知系統增強 ERP
  8. 跨界影響預測:比如自主車輛導致司機崗位需求降低;人為交通事事故減少,保險費降低;按需用車消費導致車企商業模式變革,車輛流量變化,導致城市規劃改變。
  9. 目前演算法和硬體問題無法很好解決的問題:語音識別達到人的能力。
  10. 更好的專家系統:通過資料無監督學習獲取知識
  11. 超長序列模式識別:時間序列預測模型
  12. 情感分析:通過行為預測人類情感的變化

運維發展的歷程與人工智慧的作用  

運維行業經歷了初始、專業化、工具化、平臺化、雲化和智慧化過程。從手動運維階段基本沒有資料,到規模化結構化資料和智慧化非結構化資料的趨勢。

人工智慧發展初期充當輔助人類的助手角色,以增加銷售額,提升使用者體驗,優化生產過程和節省成本為目標。

手動階運維階段

運維工作量小運維人員主要工作就是看監控螢幕,隨著對運維要求提高,工作分工此階段產生,產生了穩定,便捷,可靠,快速的工作原則。

人工智慧可以做的是:基於人的經驗,對結構化銷售資料進行商業智慧分析(BI)找出資料中的知識,從而提升銷售額。存在的問題主要是資料專家基於經驗發現業務資料中的知識,對業務瞭解程度成為 BI 有效性的最大瓶頸。即缺乏即懂業務規則又懂資料發掘的人才阻礙商業智慧的發展。

規模化階段

隨著 DevOps 概念的推出,工具大量湧現來協助運維工作運維能力大幅提升,帶來問題是很少有一家公司可以生產覆蓋所有 DevOps 生命週期的工具,而學習多種不同廠商的工具完成任務帶來很高的技術門檻。隨著一些創業型公司崛起,運維工作量爆發式增長,為了保證業務的連續性 SRE 也在此時期產生,主要目標是使用軟體工程技術實現業務大幅增長而運維工作了保持平穩。

人工智慧可以做的是:出現以結構化資料為主工業級解決方案,使用演算法為主解決商業通用問題,以提高人員利用率加快創造價值為典型問題。同時也存應用了工業級智慧解決方案有多大的效率提升很難估算和當資料知識變化後很難進行跟蹤優化的問題。

生態化階段

隨著網際網路規模的發展,少數大公司承擔起基礎設施的工作,通過高度集中提升數倍的運維效率(在亞馬遜購買 1 美元的基礎設施,可以帶來與傳統資料中心 7 美元投資相同的計算力),這種變革讓雲端計算客戶專注於業務的發展將基礎設施運維交給雲端計算平臺。市場規模繼續增長一個公司無法使用一套解決方案覆蓋所有細分市場的需求,生態化從而產生。因此大量的資料為人工智慧實用化奠定基礎。

人工智慧可以做的是:出現以非機構化資料為主通用的技術框架,不同的公司負責一部分問題形成生態圈,協助業務人員完成工作,通過新感知能力半自動或自動化完成以前手工的工作。如何結合新的感知能力輔助人類在巨大資料量,變化的規律中做出決策成為新的問題。

用矛盾論的觀點分析 DevOps  

 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 百度通過機器學習實現了被動異常監控和主動的流量排程演算法。騰訊通過人工智慧幫助我檢測和打擊欺詐犯罪很多公司都在人工智慧方面做出了嘗試,在目前尋求差異化的時代,人工智慧可以成為產品的一個亮點進行差異化競爭,成為避免價格戰的手段。

智慧運維行業應用參考:

●    Twitter: Seasonal Hybrid ESD (S-H-ESD)

https://blog.twitter.com/2015/introducing-practical-and-robust-anomaly-detection-in-a-time-series

●    Netflix: Robust PCA

http://techblog.netflix.com/2015/02/rad-outlier-detection-on-big-data.html

●    Linkedin: exponential smoothing

https://github.com/linkedin/luminol

●    Uber: multivariate non-linear model

尾聲——在很長一段時間裡人工智慧不能完全取代人類  

人工智慧不會導致大範圍失業,隨著人類的技術發展,生產力的提高,人口在增加,不過失業率沒有明顯上升反而生活水平在提高,更多的工作產生了,人工智慧也不過是一種提高生產力的技術而已。 隨著生產力提升各種細分低技術含量工作也會繼續細化吸收被釋放的低端勞動力,產生比如細分的家政服務換季整理衣服,高層建築擦玻璃。

再看我們的祖輩從事工業和農業工作,那個年代無法想象會有靠動動手指就能養活自己的程式設計師的職業。而我們大多從事技術工作,而不是工人或農民。機械化取代了大量農業勞動的同時,生產率的提高了,價格的下降,隨著產業發展更多需求來帶更多投資。而周邊產業獲得投資日益發展帶來更多高階就業機會,比如生物科技農藥化肥,農用機械也隨之產生。

目前人工智慧沒有自我意識, 就像人類根據鳥類的啟發造出飛機一樣,人類和人工智慧是不同的智慧,無法讓人工智慧像人類一樣自主學習。 可以預見在相當長的時期內人工 + 智慧的組合方式會成為主流,由人類意識來確定目標(定義模型訓練的損失函式),由人工智慧高效實現。

所以目前大多數人工智慧只應用在非常狹小的領域,這些人工智慧雖然高效但“自閉” 在自己的領域裡。比如也許人工智慧可以與人類高效的溝通,但他並不能像相聲演員一樣給你帶來愉快的溝通氛圍。

在可預見的未來的很長一段時間都裡,人類把一部分運維工作交給人工智慧,然後去創造新的運維工作,隨著新運維工作不斷成熟又會把一部分工作交給人工智慧不斷迴圈。

文章來自微信公眾號:高效運維開發