2017-11-16
作者丨畢玄
每家公司對于所謂運(yùn)維團(tuán)隊到底應(yīng)該做些什么释移,都有各自的看法。本文首先由阿里巴巴的運(yùn)維團(tuán)隊在整個阿里巴巴的業(yè)務(wù)里承擔(dān)的責(zé)任為切入點(diǎn),回顧了阿里巴巴從工具化到自動化的過程,接著分享了阿里巴巴在智能化領(lǐng)域的探索路線,最后總結(jié)了未來運(yùn)維團(tuán)隊所面臨的巨大挑戰(zhàn)风喇,特別是運(yùn)維智能化落地,有效性提升乖篷,以及最終效率提升及成本節(jié)約上帶來的挑戰(zhàn)响驴。
注:本文首發(fā)自 InfoQ 運(yùn)維公眾號,高效開發(fā)運(yùn)維撕蔼,ID:DevOpsGeek豁鲤,推薦關(guān)注届宠。
隨著大數(shù)據(jù)矮固、機(jī)器學(xué)習(xí)和 AI 技術(shù)的飛速發(fā)展,智能化運(yùn)維成為運(yùn)維的熱點(diǎn)領(lǐng)域。Gartner 的報告宣稱践惑,到 2020 年吉懊,將近 50% 的企業(yè)將會在他們的業(yè)務(wù)和 IT 運(yùn)維方面采用 AIOps刽脖,遠(yuǎn)遠(yuǎn)高于今天的 10%腕窥。盡管 AIOps 還是一個新名詞,但它無疑代表了運(yùn)維未來的一種趨勢炫狱。
智能化運(yùn)維的終極目標(biāo)藻懒,就是將運(yùn)維人員從繁瑣的工作中解放出來,提高整體運(yùn)維效率视译,降低運(yùn)維成本嬉荆,實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的高可用性。
運(yùn)維環(huán)境的異構(gòu)和復(fù)雜化酷含,導(dǎo)致日常運(yùn)維工作需要付出的人力鄙早、時間成本越來越高。 大約兩年前椅亚,智能化運(yùn)維開始被大家廣泛關(guān)注限番,隨著大數(shù)據(jù)分析、APM呀舔、智能異常檢測弥虐、機(jī)器學(xué)習(xí)等技術(shù)的興起和逐漸成熟,運(yùn)維需求也逐漸向自動化和智能化過渡媚赖。從最初級運(yùn)維發(fā)展到現(xiàn)在智能化運(yùn)維躯舔,大致經(jīng)歷了四個階段:腳本時代——工具時代——自動化時代——智能化時代。
目前業(yè)界真正的智能化運(yùn)維的落地實(shí)踐其實(shí)并不多省古,大多還是停留在自動化甚至人工化階段,然而智能化運(yùn)維是大勢所趨丧失,對于大公司來說豺妓,更是尤為重要。以下整理自 2017 上海 CNUTCon 全球運(yùn)維技術(shù)大會上布讹,阿里巴巴研發(fā)效能團(tuán)隊負(fù)責(zé)人琳拭,阿里研究員畢玄的演講《智能時代的新運(yùn)維》。
1阿里的運(yùn)維體系承載著怎樣的責(zé)任描验?
阿里的運(yùn)維體系介紹
阿里的運(yùn)維團(tuán)隊白嘁,主要覆蓋五個層面。
一.資源的規(guī)劃與支付是運(yùn)維的基石
整個運(yùn)維團(tuán)隊需要負(fù)責(zé)資源的規(guī)劃膘流、資源的交付絮缅。
Quota 管理:比如我們會跟業(yè)務(wù)團(tuán)隊做一些預(yù)算的管理鲁沥,對于每個業(yè)務(wù)團(tuán)隊首先需要有預(yù)算。只要你有預(yù)算耕魄,運(yùn)維團(tuán)隊一定會把資源交給你画恰,沒有預(yù)算一切免談。
規(guī)劃:比如阿里每年的雙十一交易吸奴,業(yè)務(wù)團(tuán)隊要給出下一年的交易額將做到多少允扇,至于背后需要增加多少的機(jī)器量,業(yè)務(wù)團(tuán)隊根本不關(guān)心则奥。所以需要運(yùn)維團(tuán)隊來做從業(yè)務(wù)需求到資源的轉(zhuǎn)化和規(guī)劃考润,這對于公司來講非常重要,因?yàn)橐馕吨罱K我在基礎(chǔ)設(shè)施上要投多少錢读处,還有節(jié)奏的控制糊治。
采購:當(dāng)規(guī)模大了以后,怎么樣合理規(guī)劃資源的數(shù)量和交付節(jié)奏是非常重要的档泽,比如 5 月份采購這批機(jī)器和 6 月份采購這批機(jī)器俊戳,是完全不同的概念。還需要資源的采購馆匿,比如 SSD 采購緊張抑胎,供應(yīng)量不夠。通常大公司會有更多的渠道獲得更好的供應(yīng)量渐北,小公司就會很困難阿逃。怎么做好供應(yīng)鏈控制是非常重要的。
資源調(diào)度:對于資源團(tuán)隊來講赃蛛,調(diào)度也很重要恃锉,我們交出去的機(jī)器是怎么樣的交法,怎么保證可用性呕臂、穩(wěn)定性破托, Bootstrap 等,每個業(yè)務(wù)都有自己的規(guī)劃歧蒋,按照業(yè)務(wù)需求怎么把整個業(yè)務(wù)環(huán)境全部交給業(yè)務(wù)方土砂。阿里目前就遇到了很大的挑戰(zhàn),比如在國際化的擴(kuò)張上谜洽,我們可能這個月需要在這里建個點(diǎn)萝映,下個月需要在另一個地方建個點(diǎn),怎么快速的完成整個資源阐虚,不僅僅是機(jī)器資源的交付序臂,還有軟件資源的交付,是非常重要的实束。我們現(xiàn)在在擴(kuò)展東南亞的業(yè)務(wù)奥秆,怎么樣在東南亞快速的完成整個軟件資源的交付逊彭,對于我們的競爭是非常重要的。
二.變更 是運(yùn)維不可避開的坑
對于運(yùn)維團(tuán)隊來講吭练,變更也是經(jīng)常要做的部分诫龙,變更信息的收攏,做應(yīng)用層面的變更鲫咽,基礎(chǔ)網(wǎng)絡(luò)的 IDC 等等签赃。
三.監(jiān)控 預(yù)測潛在的故障
監(jiān)控對于阿里來講主要分為基礎(chǔ)、業(yè)務(wù)分尸、鏈路锦聊,在監(jiān)控的基礎(chǔ)上要去做一些報警等。
四.穩(wěn)定性 是不少企業(yè)追求的目標(biāo)
穩(wěn)定性這個概念我們以前認(rèn)為針對的是大公司箩绍,因?yàn)樗赡軙绊懙酱蟊姷纳羁淄ィ瑫容^敏感。但是現(xiàn)在新型的互聯(lián)網(wǎng)公司材蛛,如外賣圆到,ofo、摩拜等卑吭,它的穩(wěn)定性要求比以前很多創(chuàng)業(yè)型公司更高芽淡,因?yàn)樗性谀莻€點(diǎn)必須能用,如果不能用豆赏,對用戶會有直接的影響挣菲。所以穩(wěn)定性可能在整個運(yùn)維行業(yè)會得到越來越高的重視,但是對于很多中小型公司掷邦,穩(wěn)定性的投入相當(dāng)大的白胀。
五.一鍵建站 讓規(guī)模化有力保障
像阿里在穩(wěn)定性上主要會去做多活體系的建設(shè)抚岗,然后故障的修復(fù)或杠、故障定位,然后還有一套全鏈路的壓測宣蔚。規(guī)耐⒍唬化是很多運(yùn)維團(tuán)隊很痛苦的事情,可能今年機(jī)器在這個機(jī)房件已,明年你的基礎(chǔ)設(shè)施團(tuán)隊可能告訴你,這個機(jī)房不夠用了元暴,我們要換個機(jī)房篷扩。反正在阿里巴巴,很多的運(yùn)維人員都說了茉盏,我們每年的工作中有一項(xiàng)不用寫的工作就是搬遷鉴未。雖然基礎(chǔ)設(shè)施團(tuán)隊會承諾說三年內(nèi)不會再搬枢冤,可是到了明年他會跟你說,由于某些原因我們還是再搬一下铜秆,搬完之后三年不會讓你再搬淹真。但是從我們過去發(fā)展的三年,每年都在搬连茧。未來我們確實(shí)相信阿里巴巴核蘸,可能在未來搬遷會相對更少一點(diǎn),我們認(rèn)為不能讓搬遷成為阿里巴巴運(yùn)維團(tuán)隊的核心競爭力啸驯。
我們在規(guī)目驮化層面做了很多事情,比如說我們做了一鍵建站罚斗,對于阿里來講徙鱼,我們對機(jī)器資源的交付時間,要求會越來越高针姿。比如說雙十一袱吆,是提前一個月交付資源還是提前兩個月還是提前三個月,對我們來講付出的錢是完全不一樣距淫,而且可能相差非常大绞绒。
所以,技術(shù)層面能不能更好的把這個時間縮短溉愁,是非常重要的处铛。所以一鍵建站的重要目的就是這個,每年雙十一我們都會拓展出非常多個站點(diǎn)拐揭,通過一鍵建站快速完成整個過程撤蟆。搬遷就是我說的,反正我們每年都要搬堂污,那我們應(yīng)該把搬遷這套系統(tǒng)做得更好家肯。還有騰挪,阿里很多時候因?yàn)樾枰鲆恍I(yè)務(wù)資源的復(fù)用盟猖,最好是有一個機(jī)柜讨衣,這個時候怎么更好完成挪的過程也是很麻煩。
我們還需要做一些單元的調(diào)整式镐,因?yàn)閷Π⒗锏慕灰紫到y(tǒng)來講是有單元的概念的反镇,我們怎么更好的控制一個單元內(nèi)機(jī)器的比率是非常重要的。一個單元的機(jī)器數(shù)可能是比較固定的娘汞,那如果比率搭配不好歹茶,就意味著瓶頸點(diǎn)會非常明顯。
以上,正是阿里巴巴的運(yùn)維團(tuán)隊所覆蓋的五個領(lǐng)域惊豺。整個運(yùn)維體系的演進(jìn)過程燎孟,差不多都是從最早的腳本到工具到自動化,到未來的智能化尸昧。
2從工具化到自動化過關(guān)斬將
從工具化到自動化這個層面揩页,過程并沒有那么的容易,以及對整個行業(yè)來講烹俗,目前更多的工作仍然是在探尋自動化爆侣,怎么樣讓自動化真正的被實(shí)現(xiàn)得更好。
這個行業(yè)的發(fā)展跟其他傳統(tǒng)的軟件衷蜓,標(biāo)準(zhǔn)的軟件研發(fā)行業(yè)累提,我覺得很不一樣。比如說阿里從工具化到自動化這個過程中磁浇,我們認(rèn)為工具化斋陪,其實(shí)挑戰(zhàn)相對小,即使傳統(tǒng)的運(yùn)維人員也很容易寫一些工具置吓,比如用 Python 去寫更多的工具體系无虚。但是如果你的工具最重要變成能夠到自動化這個階段,就意味著對工具的要求會越來越高衍锚,比如說工具的質(zhì)量友题,如果你寫出來的工具經(jīng)常有問題,規(guī)模一大就扛不住戴质,這個時候?qū)τ诖蠹襾碇v慢慢會越來越失去信任感度宦。最后會很難完成這個過程。
運(yùn)維團(tuán)隊轉(zhuǎn)型研發(fā)團(tuán)隊 組織能力是最大的壁壘
阿里過去走這條路的過程中告匠,我們覺得最大的挑戰(zhàn)是組織的能力問題戈抄。運(yùn)維團(tuán)隊怎么樣更好的完成朝研發(fā)團(tuán)隊的轉(zhuǎn)型,這個過程對于很多運(yùn)維團(tuán)隊來講都是巨大的挑戰(zhàn)后专。對于一個組織來講怎么完成這個過程也是非常重要的划鸽。
我想很多團(tuán)隊都有這個感受,工具研發(fā)的團(tuán)隊跟做運(yùn)維操作的團(tuán)隊之間戚哎,很容易產(chǎn)生一些沖突等等裸诽。所以阿里巴巴在走這個過程的時候,思考的核心就是怎么讓一個運(yùn)維團(tuán)隊真正從組織能力上型凳,演變成我們所需要的更好的團(tuán)隊丈冬。
阿里在走這條路的時候,走了四個過程甘畅。這個過程阿里在不斷的摸索殷蛇,最終到現(xiàn)在為止我們認(rèn)為阿里的方式相對來講還是不錯的实夹。我們最早跟大部分公司一樣,有一個專職的工具研發(fā)團(tuán)隊和一個專職的運(yùn)維團(tuán)隊粒梦。工具研發(fā)團(tuán)隊做工具,做出來給運(yùn)維團(tuán)隊用荸实。這個過程中容易出現(xiàn)的最明顯的問題就是工具做完了匀们,運(yùn)維團(tuán)隊說這個工具太難用了,不符合需求准给。要么就是運(yùn)維團(tuán)隊執(zhí)行的過程中泄朴,經(jīng)常出問題,出問題還要找工具研發(fā)團(tuán)隊來幫忙查問題在哪里露氮。本來運(yùn)維幾行腳本全部能搞定的問題祖灰,結(jié)果還要依賴工具團(tuán)隊。慢慢這個局面越來越難突破畔规,很難改變局扶。
所以阿里后來做了一個嘗試,既然兩個團(tuán)隊很難做很好的結(jié)合叁扫,那有一種方式是工具研發(fā)團(tuán)隊做完工具以后三妈,比如說做了一個發(fā)布,做完這個功能以后莫绣,這個運(yùn)維工作就徹底交給工具研發(fā)團(tuán)隊畴蒲,不讓運(yùn)維團(tuán)隊做了,運(yùn)維團(tuán)隊就可以做一些別的事情对室。這個模式看起來就是逐步接管的模式模燥,讓工具研發(fā)團(tuán)隊逐步解耦。
這個做了一段時間掩宜,碰到的最大問題還是組織能力問題蔫骂。對于運(yùn)維工具來講,質(zhì)量怎么做到很高锭亏,運(yùn)維好像很容易做的樣子纠吴,但是實(shí)際上運(yùn)維工具相當(dāng)難做,它的復(fù)雜度比在線業(yè)務(wù)更大慧瘤,就是它不是邏輯上的復(fù)雜戴已,更多的是環(huán)境層面的復(fù)雜。因?yàn)楸热鐣婕熬W(wǎng)絡(luò)涉及服務(wù)器涉及機(jī)房等等锅减,這跟業(yè)務(wù)完全不一樣糖儡。所以做了一段時間之后,我們覺得這還是一個問題怔匣。
將工具的研發(fā)和運(yùn)維融為一體 突破組織能力問題
后面我們做完這輪之后又開始做另外一個方向的嘗試握联,讓工具的研發(fā)團(tuán)隊和運(yùn)維團(tuán)隊做一個融合桦沉。所謂的融合就是把很多工具研發(fā)的人分派給運(yùn)維團(tuán)隊,到運(yùn)維團(tuán)隊去做金闽。我們期望通過工具研發(fā)的人帶動整個運(yùn)維團(tuán)隊轉(zhuǎn)變成研發(fā)型團(tuán)隊纯露。這是我們的思路。
阿里巴巴在走前面這三步的時候代芜,大概花了近一年半左右埠褪,意味著這其中我們大概做了三輪組織結(jié)構(gòu)調(diào)整。因?yàn)槲覀冋J(rèn)為這些都是要有組織層面的保障才能被實(shí)現(xiàn)的挤庇。
DevOps 是如何真正落地的
去年 6 月钞速,我們做了一個最大的組織結(jié)構(gòu)調(diào)整,把日常的運(yùn)維工作交給研發(fā)做嫡秕,研發(fā)自己會把日常的運(yùn)維工作都做掉渴语。但并不是說所有運(yùn)維工作,現(xiàn)在仍然有一個做運(yùn)維的團(tuán)隊昆咽,這個運(yùn)維團(tuán)隊相對來講更不一樣驾凶,跟以前有非常大的不同。
我們認(rèn)為這是 DevOps 真正的被徹底的執(zhí)行潮改。因?yàn)檫@個好處是狭郑,日常的運(yùn)維工作交給了研發(fā),運(yùn)維團(tuán)隊轉(zhuǎn)變成研發(fā)團(tuán)隊這個過程非常困難汇在,其實(shí)不完全是能力上的差距翰萨,更大的原因是,運(yùn)維團(tuán)隊要承擔(dān)非常多的日常雜活糕殉,尤其像集團(tuán)性的公司亩鬼,不管是阿里、騰訊阿蝶、百度都一樣雳锋,集團(tuán)性的公司多數(shù)支撐的 BU 都是無數(shù)個。你一個人支撐二十個 BU 一個 BU 里面一天有一個人找你羡洁,你一天就不用干別的活了玷过,你一天就在跟他們不斷的聊天,做操作筑煮,嘴里又叫著這個團(tuán)隊要升級辛蚊,要做組織升級,要轉(zhuǎn)變成研發(fā)團(tuán)隊真仲,實(shí)際上就是逼別人走向了一條死路袋马。
所以我們認(rèn)為,谷歌的做法秸应,谷歌在 SRE 那本書提到的是虑凛,會強(qiáng)制留 50% 的時間給研發(fā)團(tuán)隊做研發(fā)工作碑宴。這個說實(shí)話,在大多數(shù)公司很難執(zhí)行這個政策桑谍,除非運(yùn)維團(tuán)隊跟研發(fā)團(tuán)隊有非常強(qiáng)的話語權(quán)延柠。但這個很難。所以阿里的做法我認(rèn)為更為徹底锣披,阿里告訴研發(fā)團(tuán)隊捕仔,以后日常運(yùn)維的工作不要找運(yùn)維團(tuán)隊,自己干盈罐。這可能粗暴了一點(diǎn),在運(yùn)維體系還沒有準(zhǔn)備得很好的情況下做了這個事情闪唆,所以后面相對來講也導(dǎo)致了問題盅粪,比如說運(yùn)維工具四處建設(shè)、重復(fù)建設(shè)等等現(xiàn)象悄蕾。
但是從組織層面上來講票顾,我們很欣慰的看到,在做完這輪組織調(diào)整過后的一年后帆调,運(yùn)維團(tuán)隊的大多數(shù)人更多的時間是投入在研發(fā)工作上奠骄,而不是投入在日常的雜事上。我們看到了一個團(tuán)隊的能力番刊,在經(jīng)過這一輪的調(diào)整得到了非常好的升級含鳞。而這對于組織來講是最大的利好。所以我們認(rèn)為芹务,這種模式是阿里現(xiàn)在最為推崇也最為看好的一個方向蝉绷,這樣整個運(yùn)維團(tuán)隊將專注在我剛才講的五個部分的系統(tǒng)層面的研發(fā)以及建設(shè)上,而不是雜活上枣抱。這是阿里從工具化到自動化熔吗,最主要是這樣的一個過程。
成功率是衡量自動化運(yùn)維的關(guān)鍵指標(biāo)
對于自動化來講最重要的問題是成功率佳晶,比如我們看所有的運(yùn)維操作中桅狠,我們最關(guān)心的指標(biāo)是成功率。比如一個運(yùn)維系統(tǒng)里面的功能轿秧,在一個星期內(nèi)中跌,比如說會用幾十萬次,我們只關(guān)注成功率能不能做到 4 個 9 以上淤刃,否則算一下工單數(shù)就懂了晒他,這個運(yùn)維團(tuán)隊得有多少人支持這件事情,這些人又沒有時間去干研發(fā)的活逸贾,又要投入大量的精力做支持性的工作陨仅。所以我們在成功率上要做到非常高的保障津滞,運(yùn)維系統(tǒng)我們以前看過是面臨最大的挑戰(zhàn),我以前的背景全部是做在線業(yè)務(wù)型的系統(tǒng)灼伤,比如淘寶的交易等等触徐。
后來我們發(fā)現(xiàn)運(yùn)維系統(tǒng)有個最大的不同在于,運(yùn)維系統(tǒng)對于成功率的追求比在線業(yè)務(wù)型系統(tǒng)更高一些狐赡。在線業(yè)務(wù)型系統(tǒng)撞鹉,比如說我在訪問后面一個地方有問題的時候,我們會選擇盡快把這個過程失敗掉颖侄,而不是把時間不斷的拖長以及不斷的試錯鸟雏。在線系統(tǒng)會更加快的把錯誤往外拋。但是對于運(yùn)維系統(tǒng)來講如果也這樣做览祖,就意味著這個成功率非常難保障孝鹊。所以運(yùn)維系統(tǒng)要有更好的思考,怎么保障一次運(yùn)維操作展蒂,這背后可能有幾十個系統(tǒng)又活,而且多數(shù)是無數(shù)的團(tuán)隊寫的,阿里以前碰到的情況就是無數(shù)個系統(tǒng)锰悼,質(zhì)量層次不起柳骄,什么都有。怎么保證在這么復(fù)雜的環(huán)境下箕般,保證對外的耐薯,對用戶層面這個成功率可以做到很高的哮塞。這是一個很大的問題碌上。
規(guī)模帶來的挑戰(zhàn)也是不容小覷
隨著規(guī)模的不斷增長,所有開源類型的運(yùn)維類的系統(tǒng)绊寻,在規(guī)谋撸化复斥,當(dāng)你的機(jī)器規(guī)模等等其他規(guī)模上升到一個程度以后,通常來講都會面臨非常巨大的挑戰(zhàn)械媒。阿里巴巴所有的這種類型的系統(tǒng)目锭,我們論證都是自己做是比較靠譜。最大的原因是規(guī)模纷捞,規(guī)模上去以后會遇到很多問題痢虹。像代碼托管、代碼編譯什么的主儡,以前認(rèn)為不會有太大的問題奖唯,事實(shí)證明規(guī)模上來以后這些里面全都是問題。我們也要投入非常大的精力去做規(guī)模方面的解決糜值。
所以我覺得丰捷,阿里從以前的工具化走向更加自動化的過程中坯墨,我們探討的核心問題就是能不能有一個非常好的組織去完成這個過程。能讓運(yùn)維的團(tuán)隊更加轉(zhuǎn)型向 DevOps 這樣的方向病往。所以我們一直說捣染,我們一直很糾結(jié)運(yùn)維團(tuán)隊到底應(yīng)該叫什么名字,我們一致認(rèn)為停巷,運(yùn)維研發(fā)團(tuán)隊耍攘,我們覺得不大對,你的主要的活其實(shí)是干研發(fā)而不是運(yùn)維畔勤。但是叫研發(fā)運(yùn)維又有點(diǎn)奇怪蕾各。后來阿里巴巴基本上是叫研發(fā)團(tuán)隊。因?yàn)槲覀冋J(rèn)為運(yùn)維的研發(fā)團(tuán)隊和在線業(yè)務(wù)的研發(fā)團(tuán)隊沒有本質(zhì)區(qū)別庆揪,都是做研發(fā)的示损,只是一個在解決運(yùn)維領(lǐng)域的業(yè)務(wù)問題。剛才講的五個層次嚷硫,運(yùn)維領(lǐng)域的業(yè)務(wù)問題,也是業(yè)務(wù)始鱼,沒有什么區(qū)別仔掸。在線業(yè)務(wù),比如解決交易的問題医清,解決其他問題起暮,這是完全一樣的。兩個研發(fā)團(tuán)隊沒有本質(zhì)區(qū)別会烙。
所以這個過程负懦,阿里經(jīng)過過去這一年的組織調(diào)整以后,我們看到整個自動化層面柏腻,阿里有了很好的進(jìn)展纸厉,但是離我們的期望還要更加努力繼續(xù)往前演進(jìn)。
3阿里巴巴在智能化領(lǐng)域的探尋之路
現(xiàn)在智能化這個話題特別火熱五嫂,就像我們說颗品,AI 這個名字興起的時候,我們忽然發(fā)現(xiàn)沃缘,阿里巴巴所有的業(yè)務(wù)都講 AI+ 自己的業(yè)務(wù)躯枢,被所有人狂批一通。我們要想清楚槐臀,具不具備 AI 化的前提锄蹂,可能前提都不具備就不斷探討這個名字。因?yàn)闃I(yè)界在不斷的炒熱非常多的名詞水慨,讓大家去跟隨得糜。
自動化是智能化的前提
對于我們來講敬扛,我們認(rèn)為,比如說就像我對這個團(tuán)隊掀亩,我自己的團(tuán)隊講的一樣舔哪,我認(rèn)為智能化最重要的前提是,一是自動化槽棍。如果你的系統(tǒng)還沒有完成自動化的過程捉蚤,我認(rèn)為就不要去做智能化,你還在前面的階段炼七。智能化非常多的要求都是自動化缆巧,如果不夠自動化,意味著后邊看起來做了一個很好的智能化的算法等等豌拙,告訴別人我能給你很大的幫助陕悬,結(jié)果發(fā)現(xiàn)前面自動化過程還沒有做完全。
一個最典型的 case按傅,阿里巴巴以前一直在講捉超,我們認(rèn)為資源的搭配上,其實(shí)可以做得更好唯绍。比如說你半夜流量比較小拼岳,白天流量比較大,你能不能更好的做一些彈性况芒,把資源釋放出來去干點(diǎn)別的惜纸,然后白天再把它補(bǔ)起來。這從算法層面上并沒有那么復(fù)雜绝骚,從算法層面做到一個簡單的提升是很容易做的耐版。所以,當(dāng)時我們就有很多團(tuán)隊做了一個東西压汪,可以做到這一點(diǎn)粪牲。結(jié)果等到落地的時候發(fā)現(xiàn),業(yè)務(wù)不能自動伸縮止剖。如果你想虑瀑,比如說有些機(jī)器上面負(fù)載特別高,有些機(jī)器特別低滴须,我們希望負(fù)載能拉得更均衡舌狗,在線業(yè)務(wù)更加穩(wěn)定化,做一個算法扔水,比如說背包痛侍,更好的去做組合,結(jié)果就是這個東西做完了,給出了建議說最好這個應(yīng)用調(diào)到那臺機(jī)器主届,那臺應(yīng)用調(diào)到這臺機(jī)器赵哲。給完之后業(yè)務(wù)團(tuán)隊看了一眼,我們不干君丁,因?yàn)楦蛇@些工作全部要手工干枫夺,你還每天給我建議,更不要干了绘闷,每天就來調(diào)機(jī)器了橡庞。
所以首先你要想明白你的前提,自動化印蔗,具不具備自動化的能力扒最,不具備的話沒有必要在這方面做過多的投入。
數(shù)據(jù)結(jié)構(gòu)化是智能化的源動力
目前 AI 領(lǐng)域基本是靠暴力华嘹,暴力破解吧趣,未來可能有別的方向,但是目前的 AI 基本上是靠大量數(shù)據(jù)的積累去尋找一個東西出來耙厚,所以它一定需要有大量的數(shù)據(jù)積累强挫,數(shù)據(jù)包括非常多的東西,對于運(yùn)維來講薛躬,可能基礎(chǔ)層面的數(shù)據(jù)纠拔,機(jī)器的數(shù)據(jù),運(yùn)維變更的數(shù)據(jù)泛豪,上面還有一些場景化的數(shù)據(jù),比如你解決故障侦鹏,有沒有更好的結(jié)構(gòu)化的收集數(shù)據(jù)诡曙,這是非常重要的。數(shù)據(jù)這個層面比較難做的在于略水, 在最開始階段价卤,多數(shù)公司的運(yùn)維數(shù)據(jù)都是不夠結(jié)構(gòu)化的,結(jié)構(gòu)化不會做得那么好渊涝,當(dāng)然會有結(jié)構(gòu)化慎璧,但是結(jié)構(gòu)化的因素不會足夠好。
就像阿里巴巴在講跨释,我們在電商領(lǐng)域 AI 化胸私,我們最大的優(yōu)勢就是不斷對外部講,我們擁有的是結(jié)構(gòu)化的商品數(shù)據(jù)鳖谈,其他公司最多從我們這里扒結(jié)構(gòu)化的商品數(shù)據(jù)岁疼。你扒過去之后還要自己分析,并且做商品結(jié)構(gòu)的調(diào)整缆娃,這非常困難捷绒。但是阿里巴巴自己天然瑰排,所有人都會幫你把結(jié)構(gòu)做得非常好。所以對運(yùn)維來講也是一樣暖侨,如果你想在智能化上有更多的突破椭住,數(shù)據(jù)怎么更好的做結(jié)構(gòu)化,是一個非常大的挑戰(zhàn)字逗。你很難想清楚京郑。這兩個地方是我覺得首先要想清楚的。
智能化最適合的運(yùn)維場景
從目前來看扳肛,對于運(yùn)維場景來講傻挂,智能化特別適合解決的問題就兩種,對于所有行業(yè)好像都差不多挖息,第一是規(guī)模金拒,第二是復(fù)雜。規(guī)模就意味著套腹,我有很多的機(jī)器绪抛,在很多機(jī)器中我要尋找出一個機(jī)器的問題,這對于电禀,因?yàn)橐?guī)模太大了幢码,這時候?qū)τ谟脗鹘y(tǒng)的方式,將非常難解決這個問題尖飞≈⒏保或者你要投入非常大的人力等等,有點(diǎn)得不償失政基。規(guī)模上來以后怎么更好的解決規(guī)模的問題贞铣,智能化會帶來一些幫助。第二是復(fù)雜沮明,比如說你的應(yīng)用從原來的一個應(yīng)用變成了幾千個辕坝、上萬個、幾十萬個荐健,這時候你要尋找出其中哪個應(yīng)用的問題酱畅,將是非常復(fù)雜的問題。所以復(fù)雜度的問題是人類用人腦非常難推演的江场,但是機(jī)器相對來講是更容易做的纺酸。這是阿里有些團(tuán)隊希望嘗試智能化的方向,通常我們會看是不是在前面的這些前提條件上都具備址否。如果都具備了吁峻,那可以去探索一下。所以我講,阿里其實(shí)目前處于整個智能化運(yùn)維的探索階段用含,而不是全面展開階段矮慕。
阿里巴巴智能化運(yùn)維五步走
簡單講一下我們在各個領(lǐng)域目前在智能化這個領(lǐng)域,在運(yùn)維這五個領(lǐng)域啄骇,對于我們講痴鳄,智能化我們看到的一些可能性,包括我們正在做的事情缸夹。
一.資源的重點(diǎn)是成本
1. 基礎(chǔ)設(shè)施選型
對于資源這一塊痪寻,整個公司層面最為關(guān)注的問題,就是成本虽惭。你交付的資源具不具備最低的成本橡类,這個智能化確實(shí)可以給非常大的幫助。比如第一點(diǎn)芽唇,怎么更好的規(guī)劃這家公司機(jī)型顾画、網(wǎng)絡(luò)和整個數(shù)據(jù)中心,這為什么要用智能化的手段在于匆笤,一個數(shù)據(jù)中心的選址來自非常多的因素研侣,除了政府層面的政策因素之外,還有很多其他因素需要考慮炮捧,比如說氣候等等各種各樣的因素庶诡,都需要在這個階段去考慮。你需要通過大量數(shù)據(jù)的積累來分析咆课,比如在中國末誓,在海外,到底有那些地方是對你的業(yè)務(wù)發(fā)展策略來講最適合的书蚪,是在哪里喇澡,這要確定一個范圍,在一個范圍基礎(chǔ)上是進(jìn)一步的人的建立善炫。
對于網(wǎng)絡(luò)、機(jī)型來講库继,目前我們認(rèn)為最可以做的在于箩艺,可能因?yàn)榘⒗锏哪J礁行┕静灰粯樱⒗锔嗟臋C(jī)器都來自同一個部門宪萄,基本上是同一個部門在教阿里巴巴所有的機(jī)器艺谆。這就有巨大的好處了,因?yàn)槎荚谝粋€團(tuán)隊拜英。比如阿里巴巴在去年開始建設(shè)統(tǒng)一的調(diào)度系統(tǒng)静汤,更大的好處就來了,因?yàn)榇蠹宜械馁Y源都來自同一個地方,這個地方就收集了整個阿里巴巴的所有的資源需求虫给、數(shù)據(jù)藤抡,數(shù)據(jù)全部在它手上。
如果你結(jié)合這個數(shù)據(jù)抹估,以及它實(shí)際的運(yùn)行情況缠黍,更好的就可以去推導(dǎo),比如說對于阿里巴巴來講最合適的機(jī)型是什么药蜻,這個阿里大概在去年就開始做嘗試瓷式。在去年以前所有的過程,阿里巴巴语泽,比如說明年我的服務(wù)器的機(jī)型贸典,所謂機(jī)型,這里講的機(jī)型的含義主要是比率問題踱卵,不是選擇下一代什么樣的 CPU廊驼,那是硬件發(fā)展決定的。但是比率因素颊埃,以前我們更多的是人腦拍蔬充,人肉智能。人肉智能在一定階段是更加高階的班利,過了那個階段之后人就比不過機(jī)器了饥漫。團(tuán)隊說我們明年要買的機(jī)型里面的配置大概是這樣的,人算了一下罗标,就這樣吧庸队,就可以拍掉。去年開始我們引入了一套系統(tǒng)闯割,這套系統(tǒng)會分析所有的數(shù)據(jù)以及錢彻消,最重要的是錢,然后分析一下整個過程宙拉,推演對我們來說最合算的是什么宾尚。所以適合的機(jī)型到底是什么。
如果有一套非常好的推演的系統(tǒng)谢澈,來推演你的機(jī)型煌贴、網(wǎng)絡(luò)、IDC 未來應(yīng)該怎么規(guī)劃锥忿,這對于成本領(lǐng)域?qū)a(chǎn)生巨大的幫助牛郑。比如說網(wǎng)絡(luò),現(xiàn)在的發(fā)展敬鬓,萬兆淹朋,25G笙各、45G、100G础芍,你認(rèn)為對于你的公司來講最合適的是什么杈抢?多數(shù)公司八成就是人腦一拍就決定了,但是事實(shí)上可能不是這樣者甲。
2. DC 大腦春感,讓控制更加智能化
DC 大腦,這個現(xiàn)在比較火虏缸,這個領(lǐng)域現(xiàn)在非出昀粒火爆,火爆的主要原因有可能是因?yàn)槿ツ旯雀璧囊黄恼鹿粽蓿雀枞ツ臧l(fā)表了一篇文章窥岩,里面有一個消息透露了一下,他們通過更好的智能化宰缤,去控制整個機(jī)房的智能等等颂翼。比如說控制空調(diào)的出口,就是那個風(fēng)向往哪邊吹慨灭,控制這個朦乏,然后為谷歌節(jié)省了非常多的錢,非逞踔瑁可觀呻疹。所以對于很多數(shù)據(jù)中心團(tuán)隊來講,現(xiàn)在都在研究這個領(lǐng)域筹陵。因?yàn)檫@個領(lǐng)域?qū)嵲谔″X了刽锤。
我們后來類比了一下,我們說其實(shí)大多數(shù)人朦佩,可能你很難感覺數(shù)據(jù)中心并思,但是你最容易感覺的是另外一個地方,你的辦公室语稠。比如說我們以前說宋彼,阿里巴巴一到夏天的時候,辦公室實(shí)在是太冷了仙畦,比外面冷多了输涕。如果能夠更好的控制溫度,對于我們來講就會有巨大的幫助议泵,對公司來講可能會更加省錢占贫。所以怎么樣做好這個非常重要桃熄。
3. 彈性伸縮最大的前提是實(shí)現(xiàn)自動化
彈性伸縮先口,這是無數(shù)運(yùn)維團(tuán)隊都想做的事情型奥,研發(fā)團(tuán)隊說,業(yè)務(wù)團(tuán)隊說碉京,我要一百臺機(jī)器厢汹,你也不好反駁他,最后上線了一百臺谐宙,你發(fā)現(xiàn)他用十臺就夠了烫葬。但是你也很難跟他糾結(jié)這個問題,好像無數(shù)的運(yùn)維團(tuán)隊都在嘗試彈性伸縮凡蜻。但是我說了搭综,彈性伸縮最大的前提就是自動化,如果沒有自動化也沒有什么意義划栓。
4. 資源畫像讓資源更好搭配
資源怎么更好的搭配兑巾,阿里巴巴在嘗試做資源的畫像。對于所有的在線業(yè)務(wù)來講忠荞,它的趨勢比較好預(yù)測蒋歌,多數(shù)在線業(yè)務(wù),只有少數(shù)的在線業(yè)務(wù)不大好預(yù)測委煤。多數(shù)在線業(yè)務(wù)是一個模式堂油,如果預(yù)測得非常好,讓資源有合理的搭配碧绞,對于這家公司的資源將會產(chǎn)生巨大的幫助府框。
二.可以下降 30% 由變更引起的故障
在變更這個領(lǐng)域我們覺得首先是效率問題。阿里巴巴現(xiàn)在大概有幾萬的研發(fā)人員头遭,我們又把運(yùn)維這個工作交給研發(fā)了寓免,那怎么讓研發(fā)在這個過程中,把變更這件事情做得更有效率和更沒有感覺计维,是阿里巴巴現(xiàn)在追求的一個重點(diǎn)袜香。這個重點(diǎn)我們認(rèn)為,智能化是可以發(fā)揮巨大的幫助的鲫惶。上面講的第一個案例是講的文件分發(fā)過程當(dāng)中的智能的流控蜈首。比如一次發(fā)布要一個小時,那意味著多數(shù)研發(fā)是需要去盯一個小時的欠母,他雖然不一定要一直看著欢策,但是到發(fā)完之后是要去看一下,這挺耗精力的赏淌。另外一個方向是現(xiàn)在業(yè)界很火的無人值守踩寇,怎么做到在發(fā)布過程中,對于研發(fā)來講最好是無感六水,我制定了在某天發(fā)俺孙,只要測試通過了我就可以自動完成這個過程辣卒,有問題稍微控制一下就好了,沒有問題就當(dāng)這件事情沒發(fā)生睛榄。這對于有眾多研發(fā)團(tuán)隊荣茫,或者當(dāng)然,如果你有運(yùn)維團(tuán)隊在做這件事情场靴,對運(yùn)維團(tuán)隊來講就更有幫助了啡莉,意味著運(yùn)維很多人可能就去掉了一大塊活。
所以旨剥,變更這個領(lǐng)域咧欣,我們最希望做的是朝這個方向去發(fā)展。目前來看阿里巴巴的嘗試轨帜,我們可以看到變更引發(fā)的故障比率是最高的该押,目前已經(jīng)鋪的這個領(lǐng)域中,可以下降 30% 因?yàn)樽兏鸬墓收险笱瑁瑪r截主要是用來攔截問題蚕礼。
三.監(jiān)控 AI 化
智能報警
這個領(lǐng)域現(xiàn)在是 AI 進(jìn)入運(yùn)維行業(yè)中最火的領(lǐng)域,所有公司都在做梢什。第一個是阿里在做的奠蹬,阿里也不例外,我們也同樣在做嗡午。第一個是智能囤躁,大家比如說做運(yùn)維的都知道,你寫完了一個業(yè)務(wù)荔睹,要配監(jiān)控報警的閾值的狸演,比如說 CPU 到多少應(yīng)該報警,然后響應(yīng)時間到多少應(yīng)該報警僻他。阿里在嘗試的一個方向是讓你不要去配宵距,阿里根據(jù)分析來決定什么情況下需要報警,這對于研發(fā)來講有巨大的幫助吨拗。
異常檢測直接影響到效率
第二點(diǎn)是異常檢測满哪,這是很多公司都在做的。異常檢測之所以要做劝篷,最大的原因就是因?yàn)樾噬谘迹绻蛔觯鋵?shí)也 ok娇妓,但是要投入非常大的人力像鸡。比如說交易跌了,那到底是哈恰,比如對于我們來講只估,交易跌了华望,只要跌了就需要分析到底什么因素。而這個因素很有可能仅乓,最后你發(fā)現(xiàn)根本跟我們沒關(guān)系,可能是外部原因蓬戚,國家節(jié)日等等夸楣,各種各樣的因素造成的。尤其是小規(guī)模的業(yè)務(wù)子漩,比如我們的海外業(yè)務(wù)豫喧,波動非常大穷当,如果一波動就認(rèn)為是問題灿巧,這對于整個公司的效率來講是巨大的影響章咧。
所以我們認(rèn)為亚皂,如果異常檢測做得非常好疚察,對我們的效率會有非常大的幫助狈蚤。這張圖是通常來講绝葡,做異常檢測叫胖,運(yùn)維的數(shù)據(jù)都是時序化招驴,根據(jù)時序有各種各樣的算法篙程,上面列了業(yè)界常用的算法。最左上角的算法是阿里巴巴自己研究的算法别厘,從我們目前的測試情況來看虱饿,我們可以看到阿里巴巴自己研究的算法的準(zhǔn)確率等等,得比業(yè)界高非常多触趴。細(xì)節(jié)我不講了氮发,最重要的原因是這個東西馬上會在某個會議上發(fā)表一篇論文,大家以后會看到冗懦。
四.穩(wěn)定性是以效率為原則
故障修復(fù)要精準(zhǔn)且快速
穩(wěn)定性對我們來講最重要的是效率問題爽冕。第一個是故障的修復(fù),故障出現(xiàn)在越大的公司越大的規(guī)模越復(fù)雜的業(yè)務(wù)場景中披蕉,出現(xiàn)是不可避免的扇售,一定會出現(xiàn),關(guān)鍵是出現(xiàn)之后怎么盡快把故障修復(fù)掉嚣艇。故障修復(fù)這個領(lǐng)域承冰,阿里巴巴嘗試了非常多的方案,也嘗試了很多年食零。很多的案例都是困乒,這個過程需要慢慢的積累,原因在于信任感地當(dāng)故障出現(xiàn)的時候贰谣,我們都說公司的很多團(tuán)隊都處于高度緊張的狀態(tài)娜搂,這個時候有一套系統(tǒng)拋出了迁霎,現(xiàn)在多數(shù)這種系統(tǒng)都是拋出三個決定,給你三個建議百宇,然后你來選考廉。有時候經(jīng)驗(yàn)豐富的處理故障的人一看,你拋出的三個建議都不靠譜携御。當(dāng)十個故障中昌粤,有八次,不用八次啄刹,如果有個四五次都是這樣的涮坐,以后所有人都不會看這套系統(tǒng)了,太不靠譜了誓军,還不如人來判斷袱讹。這個系統(tǒng)難度非常高,需要整個公司堅定地朝這個方向走昵时,并且更好的積累很多的數(shù)據(jù)捷雕。
故障修復(fù),阿里現(xiàn)在只嘗試了一些非常簡單的案例壹甥,對于阿里來講非区,比如一個機(jī)房出故障,因?yàn)檎麄€阿里巴巴交易體系的架構(gòu)是支持多點(diǎn)的盹廷,對于我們來講如果在某種情況下征绸,我們判斷一個機(jī)房出故障,我們可以自動的做一些流量的切換等等俄占。但阿里現(xiàn)在也認(rèn)為管怠,智能化在穩(wěn)定性,尤其故障修復(fù)這種動作上缸榄,還是要非常小心渤弛,萬一沒事切出了問題,這影響更大甚带。
用智能化做好故障定位
我們以前一直都認(rèn)為定位這個問題不是個大問題她肯,如果我能快速修復(fù),定位鹰贵,你慢慢定好了晴氨,定個兩天我也無所謂。但是現(xiàn)在阿里特別重視的原因在于碉输,故障定位損耗了我們非常多的人力籽前,耗費(fèi)了我們非常大的團(tuán)隊力量。所以我們認(rèn)為需要有更智能化的方法,把故障定位出來枝哄,以助研發(fā)團(tuán)隊更專注投入在其他事情上肄梨。比如現(xiàn)在故障一出來,研發(fā)查了半天挠锥,一看众羡,跟它都沒有什么關(guān)系。所以就浪費(fèi)了很多蓖租,這張圖是我們現(xiàn)在在做的一套系統(tǒng)粱侣,從一個異常,那里標(biāo)一二三四五菜秦,當(dāng)有一個異常出來之后,第一步發(fā)現(xiàn)舶掖,第二步不斷的分析球昨,一直定位到最后到底是哪個地方出了問題,我們的目標(biāo)是最后盡可能定位到代碼層面的問題眨攘,或者是網(wǎng)絡(luò)或者是基礎(chǔ)設(shè)施等等主慰。
五.邊壓邊彈 做好規(guī)模化運(yùn)維
目前對阿里來講最重要的問題還是效率問題鲫售。比如說我們在每年準(zhǔn)備雙十一容量的時候共螺,很多人都知道阿里有全鏈路壓測,一個最重要的目的就是調(diào)整容量情竹,怎么把一個機(jī)房的容量調(diào)整成比率是最合適的藐不,比如說 A 應(yīng)用可能是瓶頸,但是事實(shí)上如果搭配得好秦效,A 應(yīng)用就不再是瓶頸雏蛮。所以怎么樣讓一個固定機(jī)器數(shù)下做一個最好的搭配,我們以前是壓一輪調(diào)整一下阱州,再壓一輪再調(diào)整一下挑秉,這非常耗費(fèi)一堆人通宵的精力。我們認(rèn)為這個過程需要提升苔货,現(xiàn)在改成非常簡單的模式犀概,流量過來以后不斷的自動調(diào)整容量比例,我們會有一個所謂邊壓邊彈夜惭,一邊壓測一邊調(diào)整比例姻灶。相信很多運(yùn)維同學(xué)都干過這個事情,因?yàn)闃I(yè)務(wù)方給你一個指標(biāo)诈茧,你是要算的木蹬,而且很難算的很精準(zhǔn)。邊壓邊彈意味著你不需要算得很精準(zhǔn),粗略算一個數(shù)就可以了镊叁,后面靠這套系統(tǒng)自動給你調(diào)平衡尘颓。
阿里巴巴在這五個方面,在智能化方面做的探索晦譬,阿里認(rèn)為我們還不足以所有的領(lǐng)域都去覆蓋疤苹。
4未來運(yùn)維領(lǐng)域需要突破的防線
無人化 讓夢想照進(jìn)現(xiàn)實(shí)
我認(rèn)為現(xiàn)在運(yùn)維這個領(lǐng)域中最大的挑戰(zhàn)仍然是,能不能真正的走向無人化敛腌,整個過程中是完全沒有人的卧土。
從目前來看,要做到無人化最重要的是質(zhì)量問題像樊,質(zhì)量做得不夠好是沒有辦法無人化的尤莺。另外如果出問題了能不能自動修復(fù)等等,所以我們認(rèn)為無人化對運(yùn)維領(lǐng)域是最大的挑戰(zhàn)生棍,能不能把這個落地變成現(xiàn)實(shí)颤霎,奠定了智能化的基礎(chǔ)。如果說智能化所有的動作要人介入涂滴,那基本就不用做了友酱。
智能化 帶來效率上的質(zhì)變
在智能化這一點(diǎn)上,第一點(diǎn)是有效性的問題柔纵,如果這個智能表現(xiàn)得比人的智力還差一些缔杉,這個慢慢就沒有人相信這個東西了。所以怎么樣把有效性提升上來搁料,另外最重要的是要看到智能化給運(yùn)維領(lǐng)域帶來效率上的質(zhì)變或详。智能化投入非常大,要做大量的收集做大量的分析郭计。所以最好帶來的是質(zhì)變而不只是量變鸭叙,如果只是量變可能投入都收不回來。對于所有公司而言拣宏,更少的人更低的成本是非常重要的沈贝。人最好投入在一些更重要的研發(fā)等等事情上。
作者介紹
林昊 (畢玄)勋乾,阿里巴巴研發(fā)效能事業(yè)部負(fù)責(zé)人宋下。2007 年加入阿里,10 年間打造了阿里目前使用最為廣泛的核心中間件之一的服務(wù)框架辑莫;建設(shè)了阿里的 HBase 團(tuán)隊学歧,發(fā)展到今天 HBase 已經(jīng)是阿里最重要的 NoSQL 產(chǎn)品;打造阿里基于 LXC 的虛擬化系統(tǒng)各吨,以及集群資源管理系統(tǒng)枝笨,不斷降低阿里巴巴在機(jī)器資源上投入的成本;設(shè)計并帶領(lǐng)團(tuán)隊實(shí)現(xiàn)了阿里巴巴技術(shù)發(fā)展史上具有里程碑意義的異地多活。