阿里智能运维平台如何助力研发应对双11挑战
摘要: 12月13-14日,由云棲社區(qū)與阿里巴巴技術(shù)協(xié)會共同主辦的《2017阿里巴巴雙11技術(shù)十二講》順利結(jié)束,集中為大家分享了2017雙11背后的黑科技。本文是《阿里智能運維平臺如何助力研發(fā)應(yīng)對雙11挑戰(zhàn)》演講整理,在回顧了阿里巴巴運維歷程后,為我們講解了阿里基礎(chǔ)運維平臺和應(yīng)用運維平臺,并介紹了阿里相關(guān)運維產(chǎn)品及阿里在智能運維平臺上的發(fā)展成果。
12月13-14日,由云棲社區(qū)與阿里巴巴技術(shù)協(xié)會共同主辦的《2017阿里巴巴雙11技術(shù)十二講》順利結(jié)束,集中為大家分享了2017雙11背后的黑科技。本文是《阿里智能運維平臺如何助力研發(fā)應(yīng)對雙11挑戰(zhàn)》演講整理,在回顧了阿里巴巴運維歷程后,為我們講解了阿里基礎(chǔ)運維平臺和應(yīng)用運維平臺,并介紹了阿里相關(guān)運維產(chǎn)品及阿里在智能運維平臺上的發(fā)展成果。內(nèi)容如下。
分享嘉賓:
如柏(毛茂德),阿里巴巴高級技術(shù)專家,Apache頂級項目CXF初創(chuàng)成員之一,阿里集團基礎(chǔ)架構(gòu)事業(yè)群運維中臺負(fù)責(zé)人,親歷者。
如柏:雙11已經(jīng)過去兩周了,但雙11的熱度還在繼續(xù)。雙11從09年開始,到12年就變成了一個節(jié)日,變成了消費者日,商家感恩消費者的節(jié)日。不僅是阿里奉獻(xiàn)給國人的一個節(jié)日,更是阿里奉獻(xiàn)給世界的全球購物狂歡節(jié),因為今天阿里的業(yè)務(wù)已經(jīng)遍布全世界。業(yè)務(wù)的爆炸式的增長給技術(shù)帶來前所未有的挑戰(zhàn),今年雙11在技術(shù)上又創(chuàng)造了新的高峰。所以在在阿里內(nèi)部,我們也常說雙11是技術(shù)的練兵場,是業(yè)務(wù)和技術(shù)的大協(xié)同。每年雙11后,阿里都會給大家分享阿里在雙11中的前沿技術(shù)理念和技術(shù)成果,運維是阿里雙11技術(shù)分享以來的首次分享。運維是業(yè)務(wù)的重要支撐,運維平臺如何讓業(yè)務(wù)在如此迅猛的發(fā)展下依然穩(wěn)定、高效的發(fā)展是對我們巨大的挑戰(zhàn)。
今天我給大家分享的是阿里智能運維平臺如何協(xié)助研發(fā)應(yīng)對雙11的挑戰(zhàn)。今天的分享主要分為四個部分:
回顧阿里運維歷程
基礎(chǔ)運維平臺分享
應(yīng)用運維平臺分享
阿里在智能運維平臺上的發(fā)展成果
阿里運維歷程
阿里的運維和很多公司有相似之處,也經(jīng)歷了四個階段:
使用命令行工具運維
系統(tǒng)化工具運維
自動化平臺
智能化平臺與無人值守實踐
每個階段的轉(zhuǎn)變都是一個非常漫長的過程。在這個過程中我們一直秉承一個原則:讓機器做人去做的事;讓系統(tǒng)做可重復(fù)的事;讓系統(tǒng)做人做不好的事。
運維是一個非常大的概念。很難用一兩句話能描述清楚,在維基百科中,Operations有十幾個解釋。在我看來中文的“運維”其實非常好的描述了運維的本質(zhì),“運”就是讓業(yè)務(wù)穩(wěn)定持續(xù)的運行,“維”就是運行過程中針對任何出現(xiàn)的問題進(jìn)行維護(hù),使業(yè)務(wù)保持繼續(xù)運行的能力。運維本質(zhì)就是讓業(yè)務(wù)穩(wěn)定、高效的運做,并在此基礎(chǔ)上逐步降低運維成本。運維的職責(zé)覆蓋了產(chǎn)品從設(shè)計到發(fā)布、運行、成本技術(shù)優(yōu)化及至下線的生命周期。
我們把運維分成五個層次。
資源:Quota管理、資源規(guī)劃、資源采購、資源調(diào)度、bootstrap
變更:變更信息、應(yīng)用變更、基礎(chǔ)軟件變更、網(wǎng)絡(luò)變更、IDC變更
監(jiān)控:基礎(chǔ)監(jiān)控、業(yè)務(wù)監(jiān)控、鏈路監(jiān)控、報警、視圖
穩(wěn)定性:多活、故障修復(fù)、故障定位、故障注入、全鏈路壓測
規(guī)模化:一鍵建站、搬遷、騰挪、單元調(diào)整
在產(chǎn)品發(fā)布前,運維需要對產(chǎn)品的整體架構(gòu)做合理評估,把控資源訴求,分析產(chǎn)品是否有單點、是否有足夠的容量,是否可容錯,是否有強耦合等。資源規(guī)劃評估,包括所需的服務(wù)器資源、網(wǎng)絡(luò)資源以及資源的分布等,同時把相關(guān)產(chǎn)品對資源預(yù)算申請的合理性,控制服務(wù)成本。
當(dāng)所有的資源都到位后,把服務(wù)部署到線上,形成線上運行的業(yè)務(wù)。由于軟件需要不停的迭代,這個過程中會發(fā)生如網(wǎng)絡(luò)架構(gòu)的變化、服務(wù)器淘汰等各種變更。
在運行過程中,監(jiān)控是必不可少的。基礎(chǔ)服務(wù)、基礎(chǔ)軟件、業(yè)務(wù)、輿情等各方面都需要做監(jiān)控。
互聯(lián)網(wǎng)的快速發(fā)展導(dǎo)致業(yè)務(wù)必須具備非常快速的迭代、快速部署,這要求運維要有規(guī)模化的能力,能進(jìn)行快速復(fù)制。比如,如何讓新收購的海外公司融入集團運維體系里,這是一個非常關(guān)鍵的業(yè)務(wù)。
基礎(chǔ)運維平臺
運維的五個層次不可能只用一個系統(tǒng)來承載,每個層次都是有非常多的系統(tǒng)。基礎(chǔ)運維平臺和應(yīng)用運維平臺主要體現(xiàn)在資源和變更層次,一些監(jiān)控、規(guī)模化的內(nèi)容也涵蓋在這里。我們把基礎(chǔ)運維平臺定義成IT運維的基礎(chǔ)設(shè)施。
基礎(chǔ)設(shè)施是怎樣的?電、水、橋梁、機場都是日常生活中的基礎(chǔ)設(shè)施,這些基礎(chǔ)設(shè)施都有一些共同特征:穩(wěn)定、安全、統(tǒng)一、有預(yù)見性、無需感知。如果電力的供應(yīng)不穩(wěn)定,經(jīng)常發(fā)生斷電,我們的財產(chǎn)和日常工作都會遭受到非常大的損失。如果自來水不安全,居民的生命也會造成非常大的損。在運維領(lǐng)域,我們也需要有穩(wěn)定、安全、統(tǒng)一、有預(yù)見性的基礎(chǔ)設(shè)施,保證業(yè)務(wù)的持續(xù)穩(wěn)定發(fā)展。
StarAgent就是阿里運維的基礎(chǔ)設(shè)施,它的穩(wěn)定性已經(jīng)達(dá)到99.995%。它也非常安全,因為它關(guān)系到整個阿里巴巴所有服務(wù)器、所有網(wǎng)絡(luò)、所有業(yè)務(wù)。它有自我保護(hù)措施,保證任何人的操作都不影響整個集團的業(yè)務(wù)。
基礎(chǔ)設(shè)施的統(tǒng)一包含統(tǒng)一的標(biāo)準(zhǔn)和統(tǒng)一的數(shù)據(jù)。統(tǒng)一有三個好處;
保證不需重復(fù)建設(shè)一些系統(tǒng);
便于做全局優(yōu)化;
便于統(tǒng)一規(guī)劃,避免不必要的返工。
多個BU建設(shè)幾個同樣的基礎(chǔ)設(shè)施跟一個BU建設(shè)一個基礎(chǔ)設(shè)施的成本投入是有很大差別的。如果不同團隊做同一個設(shè)施,只有10%的差別,而專門的團隊做基礎(chǔ)設(shè)施可以做的非常精非常深。在阿里,我們利用中臺的思想,把所有的基礎(chǔ)設(shè)施統(tǒng)一到StarAgent上。
統(tǒng)一基礎(chǔ)設(shè)施使我們能看到全局概況而不是某一個BU的情況,方便做全局的優(yōu)化和高度抽象,保證系統(tǒng)具有可擴展性,能適應(yīng)所有場景,這也是阿里中臺思想的核心概念。
如果修馬路的人只關(guān)注修馬路而缺乏統(tǒng)一規(guī)劃思想,忽略管線的鋪設(shè),把馬路修完后又重新刨開處理管線的問題,就會造成很大的損失。運維基礎(chǔ)設(shè)施也是一樣,統(tǒng)一規(guī)劃能避免重復(fù)的返工和成本的浪費。
基礎(chǔ)設(shè)施必須具備預(yù)見性。新一代StarAgent在設(shè)計之初就考慮到了服務(wù)器數(shù)量和業(yè)務(wù)增長的趨勢對穩(wěn)定性和性能可能帶來的沖擊,保證在3-5年內(nèi)無需重新架構(gòu),在這兩方面都必須有預(yù)見性的考慮。
基礎(chǔ)設(shè)施還有一個特點,就是我們不需要任何人感知到它的存在。如果人們都能感知到基礎(chǔ)設(shè)施的存在,說明基礎(chǔ)設(shè)施不夠穩(wěn)定,性能不夠好。阿里做到現(xiàn)在很少有研發(fā)真正能感知到StarAgent系統(tǒng),就像我們感知不到電,感知不到水,因為現(xiàn)在這些基礎(chǔ)設(shè)施已經(jīng)非常穩(wěn)定,無需我們關(guān)注。
阿里運維基礎(chǔ)設(shè)施產(chǎn)品介紹
堡壘機主要是負(fù)責(zé)管理整個阿里賬號、權(quán)限、訪問控制、高危攔截、事后審計。阿里堡壘機在阿里是非常具有特色和競爭力的產(chǎn)品,能同時容納5000人在線,也符合ISO的各個行業(yè)規(guī)范。
StarAgent是一個運維通道,是基礎(chǔ)設(shè)施中最核心的功能。它主要分3層架構(gòu):中央管控、每個機房集群的管控,物理機、虛擬機、容器上的Agent。Agent是一個插件式管理。截止到目前為止,我們已經(jīng)有150多個插件,1/3的插件屬于后臺進(jìn)程類。
StarAgent的職責(zé)是保證所有插件、所有后臺進(jìn)程的穩(wěn)定運行和作為運維的通道。我們在資源上做了很多限制,在插件安裝前,開發(fā)者會定義每個插件所用到的內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)上的流量。如果進(jìn)程的運行超過限定范圍,我們就把這個進(jìn)程殺掉來保障服務(wù)器的安全。在運維通道方面,我們做了同步命令執(zhí)行和異步命令執(zhí)行,目前日均訪問量達(dá)1個億。
在安全方面,我們和集團的安全部合作,安排安全演練和攻防演練,保證系統(tǒng)的安全。我們也做了很多命令的攔截、全鏈路命令的加密等。
雖然系統(tǒng)龐大,需要的運維的人員并不多,95%的工作都已經(jīng)自動化,包括IP端的自動關(guān)聯(lián)、Agent的自檢自愈等,因此百萬級服務(wù)器只需半個人負(fù)責(zé)運維。當(dāng)然要從半個人運維進(jìn)化到無人值守運維是需要付出巨大的努力的。
蜻蜓是基于P2P技術(shù)的智能文件分發(fā)系統(tǒng),在架構(gòu)上與StarAgent類似。下圖為蜻蜓與wget的技術(shù)對比。X軸代表并發(fā)客戶端數(shù)量,從200到7000;Y軸代表完成一個500Mb文件分發(fā)的耗時。
從圖中可以看到,隨著客戶端數(shù)量的增長,蜻蜓的耗時時間都控制在10秒左右,而傳統(tǒng)文件分發(fā)工具耗時升高,甚至在客戶端增長到1200個后,整個集群已無法工作,因為數(shù)據(jù)源已經(jīng)被打爆了。蜻蜓不僅可以保護(hù)數(shù)據(jù)源、加快分發(fā)速度,也能節(jié)省跨IDC帶寬,尤其在跨國業(yè)務(wù)上,能節(jié)省很多跨國帶寬。在今年11月10日10點, 10000PB同時分發(fā)5GB預(yù)熱數(shù)據(jù)到上萬臺服務(wù)器,這對蜻蜓是一個前所未有的挑戰(zhàn),也是業(yè)務(wù)方首次第嘗試。今年雙11我們完美完成了這個任務(wù),并達(dá)到100%的成功率。
蜻蜓運用的主要場景是軟件安裝,阿里的發(fā)布系統(tǒng)也非常依賴于蜻蜓,目前阿里已整體實現(xiàn)Pouch化,所有的業(yè)務(wù)都已被容器化,在容器鏡像的傳輸方面也是用的蜻蜓。蜻蜓除了支持特大文件傳輸外,還包括斷點續(xù)傳及一些智能化特性如智能網(wǎng)絡(luò)、I/O的流控、智能磁盤I/O控制、智能動態(tài)壓縮等等。
蜻蜓的訪問次數(shù)已經(jīng)突破了20億次,分發(fā)量方面已突破了4PB/月,從圖中可以看到分發(fā)量和鏡像分發(fā)的占比,通過動態(tài)壓縮,整體提速了30%。
蜻蜓已經(jīng)在GitHub上開源了,開源協(xié)議是Apache2.0,蜻蜓開源版可以在https://github.com/alibaba/dragonfly訪問獲取。蜻蜓企業(yè)版可以在云效或阿里云容器服務(wù)中訪問獲取。開源版與企業(yè)版蜻蜓有略微差別。
開源版功能:P2P文件分發(fā),容器鏡像分發(fā)、局部限速、磁盤容量預(yù)熱
企業(yè)版功能:斷點續(xù)傳、全局限速、鏡像預(yù)熱、支持內(nèi)存文件系統(tǒng)、智能網(wǎng)絡(luò)流控、智能動態(tài)壓縮、智能調(diào)度策略
鏡像預(yù)熱可以幫助我們在業(yè)務(wù)龐大時快速拉取鏡像。比如應(yīng)用有上萬臺服務(wù)器,如果發(fā)布過程中同時拉取鏡像,耗時是非常長的。所以我們在發(fā)布前把鏡像推送到就近機房的節(jié)點中。在真正發(fā)布時,就近拉取鏡像,這樣能大幅度減小的耗時。在實際運營中,根據(jù)雙11的數(shù)據(jù)統(tǒng)計,經(jīng)過預(yù)熱后鏡像拉取耗時降低了67%。
應(yīng)用運維平臺
應(yīng)用運維平臺是真正面向研發(fā)的運維平臺,是研發(fā)經(jīng)常需要用到的平臺。在應(yīng)用運維平臺上,我們提供了以下幾個能功能。第一個功能是基礎(chǔ)設(shè)施即代碼。一個應(yīng)用可以通過代碼描述的形式把它需要的所有基礎(chǔ)設(shè)施、所有資源描述清楚,并保存在CMDB上作為用戶對應(yīng)用的資源的需求。所有資源的變更都會被保存下來并且都是版本化的,運維人員可以非常清晰的看到資源的變化情況和操作者是誰。基于這個文本,定義后臺所有資源的生產(chǎn)。我們還有定期巡檢,查看實際資源與用戶定義是否有差異。如果有差異,我們會自動化地幫用戶調(diào)整資源,資源的彈性擴容和縮容也是基于這種方式做的。基于傳統(tǒng)模式生產(chǎn)資源構(gòu)建應(yīng)用與這種模式相比效率相差幾乎20倍。通過這種方式AE能快速在全球部署一個站,快速復(fù)制俄羅斯的一個站點等,得到很大的效率提升。
第二個功能是無人值守發(fā)布變更。傳統(tǒng)研發(fā)在發(fā)布過程的每一步結(jié)束時查看各種監(jiān)控指標(biāo)及應(yīng)用日志。在無人值守發(fā)布過程中,這個工作交給系統(tǒng),系統(tǒng)會告訴你哪項指標(biāo)有異常。人只需要在接收到指標(biāo)時做評判和決策。判斷異常是不是問題,如果不是,類似的問題可能不會再提出來。舉個簡單的例子,我們在寫代碼的時候都會寫日志并保存下來,分析日志里是否發(fā)生異常。當(dāng)分析出異常時,判斷這個異常是否從未發(fā)生過,如果從未發(fā)生過,我們就會提示用戶有一個新的異常,發(fā)布暫停并讓用戶確認(rèn)。如果這個異常曾經(jīng)發(fā)生過,但頻率沒有這次發(fā)布中高,我們也會認(rèn)為這是一個異常并提示用戶。類似這樣的指標(biāo)共有四十多項。通過無人值守發(fā)布,降低在發(fā)布過程中可能產(chǎn)生的業(yè)務(wù)故障。實際11月11日的24小時內(nèi),我們有大量的發(fā)布同時發(fā)生,無人值守系統(tǒng)非常好的保障了上線代碼的質(zhì)量。
應(yīng)用運維平臺在WEB端和移動端都可以使用,用戶非常容易就可以在手機端得到無人值守發(fā)布、資源的創(chuàng)建等情況的消息并快速做出決策。除手機屏外,在阿里雙11協(xié)同作戰(zhàn)中也用到了很多監(jiān)控大屏,這對溝通成本的降低非常有幫助。實際上,整個業(yè)務(wù)運維平臺上有非常多運維大屏、業(yè)務(wù)大屏、技術(shù)大屏等。整個業(yè)務(wù)運維平臺有PC端大屏、移動端小屏、作戰(zhàn)大屏。下圖是阿里全新設(shè)計的UI,也是在今年雙11用到的大屏。
阿里智能運維進(jìn)展
AIOps是2016年Gartner發(fā)布的新概念,強調(diào)基于算法的IT運維實踐,核心是數(shù)據(jù)和機器學(xué)習(xí)。在AIOps閉環(huán)里會用到監(jiān)控,觀察所有業(yè)務(wù)運行狀況,將這些數(shù)據(jù)分析處理,最后形成自動化執(zhí)行任務(wù)。在智能運維里,最重要的是場景、數(shù)據(jù)、算法。所以AIOps跟阿里運維過程是密不可分的,在整個智能運維過程中核心問題是如何保證業(yè)務(wù)發(fā)展的穩(wěn)定,在業(yè)務(wù)發(fā)展穩(wěn)定后如何提升效率和降低成本。
“亻動”是日語里的自動化的“動”字,概況了我們目前在運維領(lǐng)域的狀態(tài),實際上我們所謂的自動化還是需要人的介入,人是非常關(guān)鍵的一個因素,所以智能化運維跟最終實現(xiàn)無人值守運維還存在非常大的差距。
下圖是智能化運維的整體劃分,跟自動駕駛非常相似的,從人工運維過渡到自動化,并且能一鍵化提示,最終實現(xiàn)無人值守運維的過程。
我們在運維平臺做的最多的兩件事是如何保證業(yè)務(wù)的穩(wěn)定性和在業(yè)務(wù)穩(wěn)定的基礎(chǔ)上如何提升運維效率。在穩(wěn)定性方面,我們做了異常檢測、根因分析、根源定位,并且嘗試做故障的自愈、故障的預(yù)測。在運維效率上我們做了智能參數(shù)的調(diào)整嘗試。蜻蜓跟IDST合作在智能網(wǎng)絡(luò)流控上做了一些工作,它的核心思想是蜻蜓在網(wǎng)絡(luò)流控上提供參數(shù),幫助我們設(shè)定蜻蜓可利用網(wǎng)絡(luò)帶寬的量,保證業(yè)務(wù)不受影響的情況下,最大限度的利用所有網(wǎng)絡(luò)資源。之前我們讓用戶非常方便地設(shè)定參數(shù),實際上這是不科學(xué)的。我們會做一個全局設(shè)定,通過智能化的參數(shù)調(diào)控、實時大數(shù)據(jù)分析知道下一個時刻需要用多少網(wǎng)絡(luò)帶寬,所有參數(shù)包括網(wǎng)絡(luò)、磁盤、智能壓縮都不再需要通過人為設(shè)定,而是系統(tǒng)在運行中自動化調(diào)整到最優(yōu)的狀態(tài)。
在自動化操作包括擴容、限流、降級也是同樣的思想,不需要再人為設(shè)定固化的參數(shù),讓系統(tǒng)自動化的調(diào)到最優(yōu)的狀態(tài)。我們核心的思想就是希望以前基于專家的經(jīng)驗轉(zhuǎn)化成算法和機器學(xué)習(xí),充實到整個運維平臺里。
上圖是整個StarOps產(chǎn)品體系,最底層是所有的資源,包括云上資源、混合云資源。在這之上是基礎(chǔ)運維平臺,基礎(chǔ)運維平臺里由很多的模塊組成的,如堡壘機、文件分發(fā)等。在基礎(chǔ)運維平臺上是應(yīng)用運維平臺,它涵蓋資源、變更、監(jiān)控、故障治理、日常運維等。橫向的來看我們的算法平臺覆蓋了所有板塊。除了上圖顯示的這些系統(tǒng)外,還有很多流程規(guī)范、運維紅線、故障管理等。面向用戶側(cè)的是最上面的一層,有PC端的web、API、SDK、命令行、移動端運維、大屏等。
總結(jié)
以上是生活随笔為你收集整理的阿里智能运维平台如何助力研发应对双11挑战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google 宣布推出隐私计算核心服务;
- 下一篇: 元宇宙“性骚扰”现象频出,Meta推出“