如何解析基于Serverless的高可用大數(shù)據(jù)服務(wù)MaxCompute,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比涿鹿網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式涿鹿網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋涿鹿地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
一、什么是MaxCompute
Big Data in Alibaba
首先為大家介紹阿里巴巴大數(shù)據(jù)技術(shù)的一些相關(guān)背景。正如下圖所示,阿里巴巴其實(shí)在很早的時(shí)候就開始布局大數(shù)據(jù)技術(shù),甚至可以說阿里云的成立就是為了幫助阿里巴巴解決大數(shù)據(jù)相關(guān)的技術(shù)問題。如今,阿里巴巴幾乎所有的BU都在使用大數(shù)據(jù)技術(shù)。而在阿里巴巴內(nèi)部,大數(shù)據(jù)技術(shù)不僅應(yīng)用范圍非常廣,同時(shí)也非常深入。此外,整個(gè)集團(tuán)的大數(shù)據(jù)體系最終都會(huì)匯集到一起。
cdn.com/79d321f070f44bdc12462c5862973ac1ae544738.png">
Overview of Computing Platform
阿里云計(jì)算平臺(tái)事業(yè)部的職責(zé)就是將阿里巴巴的大數(shù)據(jù)體系匯集到一起,并且負(fù)責(zé)整個(gè)集團(tuán)的存儲(chǔ)、計(jì)算相關(guān)的研發(fā)工作。如下圖所示的就是阿里巴巴大數(shù)據(jù)平臺(tái)的簡(jiǎn)單架構(gòu)圖,最底層的是統(tǒng)一存儲(chǔ)平臺(tái)盤古,其負(fù)責(zé)存儲(chǔ)大數(shù)據(jù)。存儲(chǔ)時(shí)靜態(tài)的,而為了挖掘數(shù)據(jù)的價(jià)值就需要依靠計(jì)算能力實(shí)現(xiàn),因此阿里巴巴大數(shù)據(jù)平臺(tái)也提供了各種計(jì)算資源,比如CPU、GPU、FPGA以及ASIC等。為了更好地利用上述這些計(jì)算資源,需要將他們統(tǒng)一地進(jìn)行抽象,并有效地進(jìn)行管理,而在阿里云內(nèi)部,統(tǒng)一的資源管理系統(tǒng)稱為伏羲。基于資源管理和調(diào)度系統(tǒng),阿里云還開發(fā)了各種各樣的計(jì)算引擎,比如通用計(jì)算引擎MaxCompute、流計(jì)算Blink、機(jī)器學(xué)習(xí)PAI以及圖計(jì)算平臺(tái)Flash等。在這些計(jì)算引擎之上,平臺(tái)還提供了各種各樣的開發(fā)環(huán)境,并基于這些開發(fā)環(huán)境實(shí)現(xiàn)了各種業(yè)務(wù)。
下面將為大家重點(diǎn)介紹通用計(jì)算引擎MaxCompute。MaxCompute是一個(gè)通用分布式大數(shù)據(jù)處理平臺(tái),其一方面可以存儲(chǔ)海量數(shù)據(jù),另一方面還可以基于數(shù)據(jù)進(jìn)行通用計(jì)算。
首先看兩個(gè)數(shù)字,目前,阿里巴巴內(nèi)部99%的數(shù)據(jù)存儲(chǔ)和95%的計(jì)算任務(wù)都由MaxCompute承載。其實(shí),MaxCompute就是阿里巴巴的數(shù)據(jù)中臺(tái),集團(tuán)的各個(gè)BU所產(chǎn)生的數(shù)據(jù)最終都會(huì)匯總到MaxCompute上面,使得集團(tuán)的數(shù)據(jù)資產(chǎn)得以不斷增加。其次,再看幾個(gè)指標(biāo)。MaxCompute在BigBench測(cè)試中的表現(xiàn)是一般開源系統(tǒng)的2.5倍。在阿里巴巴集團(tuán)內(nèi)部,MaxCompute集群的機(jī)器數(shù)量達(dá)到了幾萬臺(tái),每天所承載的作業(yè)量更是達(dá)到了百萬級(jí)別。目前,MaxCompute集群所存儲(chǔ)的數(shù)據(jù)量也非常大在很久之前就已經(jīng)達(dá)到了EB級(jí)別,這在全球范圍內(nèi)都處于領(lǐng)先水平。此外,MaxCompute不僅對(duì)集團(tuán)內(nèi)部提供服務(wù),也開放給了外部企業(yè)使用,目前所提供的行業(yè)解決方案已經(jīng)達(dá)到了50多套。如今,MaxCompute的存儲(chǔ)量和計(jì)算量每年都在以極高的速度增長(zhǎng),而借助阿里云的能力,使得MaxCompute不僅能夠在國(guó)內(nèi)進(jìn)行部署,還能夠部署到海外的很多國(guó)家和地區(qū)。
MaxCompute系統(tǒng)架構(gòu)
MaxCompute的系統(tǒng)架構(gòu)與業(yè)界的大數(shù)據(jù)計(jì)算引擎架構(gòu)比較類似。如下圖所示,用戶能夠通過一些客戶端進(jìn)行接入,通過接入層就可以將數(shù)據(jù)傳輸?shù)組axCompute里面。而在中間存在一個(gè)管理層,可以管理各種各樣的用戶作業(yè),同時(shí)也會(huì)承載各種各樣的功能,比如大數(shù)據(jù)里面最基本的SQL編譯、優(yōu)化和運(yùn)行等功能。此外,MaxCompute提供了分布式元數(shù)據(jù)服務(wù),因?yàn)槿绻麤]有元數(shù)據(jù)管理,那么就無法知道數(shù)據(jù)存儲(chǔ)的究竟是什么。在MaxCompute架構(gòu)的最下面一層就是實(shí)際的存儲(chǔ)和計(jì)算發(fā)生的地方。
二、MaxCompute Serverless與背后的奧秘
如今Serverless這一概念非常火爆,而當(dāng)站在MaxCompute開發(fā)者的角度,Serverless的火爆既令人高興,也令人郁悶。值得高興的是:MaxCompute技術(shù)團(tuán)隊(duì)早在Serverless概念提出之前的很多年就開始研發(fā)類似功能了,并且設(shè)計(jì)理念也完全符合Serverless,這可以說明MaxCompute在Serverless方面的布局較早,并且技術(shù)具有一定的先進(jìn)性。但令人郁悶的是:雖然MaxCompute團(tuán)隊(duì)很早就被提出了Serverless的相關(guān)概念,也認(rèn)可這種技術(shù)路線的價(jià)值,但是卻沒有能夠及早地將這樣的能力包裝起來。
在Serverless概念提出之前,大家進(jìn)行大數(shù)據(jù)實(shí)踐的時(shí)候基本都是按照下圖的步驟,首先購(gòu)買服務(wù)器,搭建集群,有了硬件之后就可以在上面安裝大數(shù)據(jù)處理軟件“全家桶”,之后導(dǎo)入數(shù)據(jù),編寫業(yè)務(wù)所需要的查詢并做計(jì)算,最終獲取結(jié)果。當(dāng)然了,上述的每個(gè)步驟都離不開運(yùn)維相關(guān)工作。如果自行搭建大數(shù)據(jù)系統(tǒng),那么運(yùn)維工作將會(huì)貫穿始終的,而對(duì)于運(yùn)維同學(xué)而言,也需要時(shí)時(shí)刻刻待命,以防系統(tǒng)出現(xiàn)問題。
但是,如果回顧上述的步驟,真正能夠產(chǎn)生業(yè)務(wù)價(jià)值就是第四步的編寫查詢和進(jìn)行實(shí)際的計(jì)算,但是其他的步驟會(huì)消耗很多的資源和人力,而這對(duì)于偏向于業(yè)務(wù)型的公司而言,都是額外的負(fù)擔(dān)。而如今,Serverless就提供了幫助企業(yè)消除這些額外負(fù)擔(dān)的機(jī)會(huì)。
以MaxCompute Serverless為例,只需要經(jīng)過四個(gè)步驟就可以實(shí)現(xiàn)所需的業(yè)務(wù)價(jià)值。第一步開通賬戶并創(chuàng)建項(xiàng)目,這個(gè)項(xiàng)目既是數(shù)據(jù)存儲(chǔ)載體,也是計(jì)算的載體;第二步上傳數(shù)據(jù);第三步編寫查詢語句并進(jìn)行計(jì)算;第四步就可以獲取計(jì)算結(jié)果。在整個(gè)過程中,無需任何運(yùn)維工作,因此開發(fā)團(tuán)隊(duì)可以將精力集中在最為核心并且能夠產(chǎn)生業(yè)務(wù)價(jià)值的地方,這也就是Serverless的優(yōu)勢(shì)所在。其實(shí),這也代表了新技術(shù)對(duì)日常工作所帶來的變化,新的技術(shù)使得大家能夠更加專注于能夠產(chǎn)生核心價(jià)值的部分,而無需關(guān)心額外的或者輔助性的工作。
和其他的開源軟件或者大數(shù)據(jù)公司直接為客戶提供一個(gè)大數(shù)據(jù)軟件包的做法不同,MaxCompute所提供的是大數(shù)據(jù)服務(wù),而且所提供的服務(wù)能夠?qū)崿F(xiàn)365(天)X 24(小時(shí))的高可靠,既提供了大數(shù)據(jù)計(jì)算的能力,也同時(shí)提供了數(shù)據(jù)存儲(chǔ)的能力,并且使得用戶可以真正實(shí)現(xiàn)大數(shù)據(jù)技術(shù)的開箱即用。
在實(shí)現(xiàn)大數(shù)據(jù)平臺(tái)Serverless服務(wù)的過程中需要面對(duì)很多挑戰(zhàn),小編將會(huì)主要聚焦以下三個(gè)問題:
大數(shù)據(jù)服務(wù)如何持續(xù)迭代和升級(jí)
大數(shù)據(jù)服務(wù)的趨勢(shì):自動(dòng)化、智能化
數(shù)據(jù)安全
持續(xù)改進(jìn)和發(fā)布中的挑戰(zhàn)和方案
如果想要實(shí)現(xiàn)一套大數(shù)據(jù)系統(tǒng),那么持續(xù)改進(jìn)和發(fā)布的話題是絕對(duì)無法脫離。這是因?yàn)橛脩艨倳?huì)提出各種各樣的新需求,而為了滿足這些需求就需要不斷地升級(jí)和改進(jìn)大數(shù)據(jù)平臺(tái),而在改進(jìn)的同時(shí),還需要面對(duì)每天平臺(tái)之上運(yùn)行的百萬級(jí)作業(yè),并保證7*24小時(shí)的服務(wù)不間斷。那么,如何實(shí)現(xiàn)平臺(tái)升級(jí)過程的平穩(wěn)安全,并且使得用戶對(duì)于新功能發(fā)布無感知,此外還需要保證新版本的穩(wěn)定性,沒有Bug和性能回退問題,以及在出現(xiàn)問題之后能夠快速止損等,這些都是需要考慮的問題。此外,在持續(xù)改進(jìn)和發(fā)布的過程中,還需要考慮測(cè)試和數(shù)據(jù)安全性之間的矛盾??偠灾?,在大數(shù)據(jù)平臺(tái)之上實(shí)現(xiàn)持續(xù)改進(jìn)和發(fā)布,就如同在飛行的飛機(jī)上面更換引擎。
面對(duì)上述的問題和挑戰(zhàn),阿里云MaxCompute團(tuán)隊(duì)做了大量的工作。目前,在大數(shù)據(jù)領(lǐng)域,MapReduce對(duì)于用戶不夠友好已經(jīng)成為了業(yè)界的共識(shí),類SQL的大數(shù)據(jù)引擎已經(jīng)成為了主流。而對(duì)于類SQL的處理而言,最關(guān)鍵的就是三個(gè)步驟:編譯、優(yōu)化和執(zhí)行。因此,MaxCompute也抓住了問題的關(guān)鍵,針對(duì)編譯和優(yōu)化開發(fā)了Playback工具,針對(duì)執(zhí)行則開發(fā)了Flighting工具。除了上述比較偏向于測(cè)試驗(yàn)證階段所使用的兩種工具之外,在真正上線的時(shí)候,MaxCompute還提供了灰度上線等工具。
Playback工具
Playback誕生的背景就是MaxCompute需要快速地提高編譯器和優(yōu)化器的表達(dá)能力和性能優(yōu)化水平。而在對(duì)編譯器和優(yōu)化器進(jìn)行了重大改動(dòng)之后,如何保證編譯器和優(yōu)化器沒有問題就成為了一個(gè)挑戰(zhàn)。最為原始的做法就是通過將一些已有的SQL放到編譯器和優(yōu)化器上執(zhí)行,并通過執(zhí)行結(jié)果的人工分析來發(fā)現(xiàn)編譯器和優(yōu)化器的改進(jìn)中存在的問題。但是通過人工方式進(jìn)行分析,可能需要一百年才能完成,這顯然是無法容忍的。因此,MaxCompute團(tuán)隊(duì)希望借助大數(shù)據(jù)計(jì)算平臺(tái)的運(yùn)算能力來自我驗(yàn)證新的編譯優(yōu)化器。
其原理就是利用MaxCompute本身強(qiáng)大且靈活的能力,把所有真實(shí)的用戶查詢收集起來并放到MaxCompute系統(tǒng)里面,將用戶查詢以大規(guī)模、分布式的方式運(yùn)行起來,并通過新版的編譯優(yōu)化器來完成這些作業(yè)的編譯和優(yōu)化。而由于MaxCompute采用了業(yè)內(nèi)通行的模式,因此能夠很容易地將作業(yè)插件插入到任務(wù)之中,進(jìn)而對(duì)編譯優(yōu)化任務(wù)進(jìn)行校驗(yàn),如果存在問題也能夠很容易地暴露出來。
總結(jié)而言,Playback一方面利用MaxCompute靈活且強(qiáng)大的計(jì)算能力來分析海量用戶任務(wù),另外一方面還借助對(duì)于UDF的支持和良好的隔離方案來進(jìn)行編譯優(yōu)化和驗(yàn)證。這就使得對(duì)于新版本編譯優(yōu)化器的驗(yàn)證變得非常容易,對(duì)于之前想要實(shí)現(xiàn)但是卻無能為力的任務(wù),如今借助于大數(shù)據(jù)平臺(tái)的強(qiáng)大能力得以實(shí)現(xiàn)。
Flighting工具
Flighting是針對(duì)于運(yùn)行時(shí)的工具。其實(shí),對(duì)于改進(jìn)的優(yōu)化器進(jìn)行測(cè)試優(yōu)化的常規(guī)做法就是搭建一個(gè)測(cè)試集群進(jìn)行測(cè)試,這是最常規(guī)并且最自然的做法,但是也會(huì)造成極大的資源浪費(fèi),因?yàn)闇y(cè)試集群的成本非常大。由于測(cè)試環(huán)境與真實(shí)環(huán)境的任務(wù)復(fù)負(fù)載情況不同,因此,測(cè)試集群也無法真實(shí)地模擬出實(shí)際場(chǎng)景。此外,為了在測(cè)試環(huán)境中進(jìn)行驗(yàn)證,需要測(cè)試人員來創(chuàng)造出一些數(shù)據(jù),但是這些被創(chuàng)造出來的數(shù)據(jù)可能過于簡(jiǎn)單。否則就需要從真實(shí)場(chǎng)景中拿一些數(shù)據(jù),但是這樣做不僅需要經(jīng)過用戶的同意,還需要進(jìn)行數(shù)據(jù)脫敏,這也是一件極其麻煩的事情。不僅可能產(chǎn)生數(shù)據(jù)泄露的風(fēng)險(xiǎn),而且最終數(shù)據(jù)和真實(shí)數(shù)據(jù)也會(huì)存在一定的差異,很多情況無法驗(yàn)證出新功能所存在的問題。
而MaxCompute的運(yùn)行時(shí)驗(yàn)證工具Flighting所使用的就是線上真實(shí)的集群和環(huán)境。借助于資源隔離的能力,使得MaxCompute集群中99%的計(jì)算資源交給用戶來運(yùn)行作業(yè),而剩下的1%的資源交給Flighting工具進(jìn)行執(zhí)行器的新功能驗(yàn)證測(cè)試。這樣的做法非常高效,不僅不需要拖取數(shù)據(jù),還可以在生產(chǎn)環(huán)境中直接運(yùn)行,可以容易地暴露出真實(shí)執(zhí)行器所存在的問題。
灰度上線
MaxCompute平臺(tái)具有灰度上線的能力,可以將任務(wù)按照重要性進(jìn)行分級(jí),進(jìn)行細(xì)粒度發(fā)布,并且支持瞬時(shí)回滾,這樣就可以將風(fēng)險(xiǎn)降到最低。
MaxCompute平臺(tái)的持續(xù)開發(fā)驗(yàn)證迭代流程
如下圖所示的是MaxCompute平臺(tái)的持續(xù)開發(fā)驗(yàn)證迭代流程,其結(jié)合了針對(duì)編譯優(yōu)化器的Playback工具、針對(duì)運(yùn)行器的Flighting工具以及灰度上線的能力。在這樣的流程中, 第二個(gè)周期并不需要等待第一個(gè)周期完成再開始,這樣就使得整個(gè)研發(fā)流程更加高效。目前,MaxCompute的持續(xù)開發(fā)和交付過程在編譯優(yōu)化、執(zhí)行以及灰度等都具有較強(qiáng)的技術(shù)優(yōu)勢(shì),在整個(gè)行業(yè)內(nèi)也具有較強(qiáng)的技術(shù)競(jìng)爭(zhēng)力,這就使得MaxCompute能夠更好地向前演進(jìn),為客戶帶來更多更好的功能,同時(shí)也保證了MaxCompute平臺(tái)在升級(jí)的過程中不會(huì)影響用戶的正常使用。
自動(dòng)化、智能化
隨著人工智能和大數(shù)據(jù)技術(shù)的不斷發(fā)展,如今對(duì)于服務(wù)而言,不僅需要實(shí)現(xiàn)高可用,還需要實(shí)現(xiàn)自動(dòng)化。針對(duì)于這樣的思想,可以從兩個(gè)角度來看,即服務(wù)本身的角度和用戶運(yùn)維的角度。針對(duì)于服務(wù)本身,首先需要實(shí)現(xiàn)自動(dòng)化,更進(jìn)一步可以實(shí)現(xiàn)人工智能化。
任何服務(wù)都會(huì)出現(xiàn)各種各樣的問題,存在各種各樣的Bug,在出現(xiàn)問題的時(shí)候,傳統(tǒng)解決方案中需要依靠人力來解決。而服務(wù)自動(dòng)化和智能化的終極目標(biāo)就是在系統(tǒng)出現(xiàn)問題的時(shí)候,不需要人工來修復(fù),而完全通過系統(tǒng)的自愈能力來發(fā)現(xiàn)并解決問題。而服務(wù)自動(dòng)化和智能化的目標(biāo)需要一步步實(shí)現(xiàn),從用戶運(yùn)維的角度來看,就是從原本用戶自身負(fù)責(zé)的運(yùn)維工作,轉(zhuǎn)交給完成大數(shù)據(jù)任務(wù)的云上大數(shù)據(jù)平臺(tái),比如阿里云MaxCompute,這時(shí)候就相當(dāng)于將客戶的運(yùn)維工作轉(zhuǎn)移給了MaxCompute團(tuán)隊(duì)。而第三步就是MaxCompute團(tuán)隊(duì)也希望從大數(shù)據(jù)平臺(tái)繁瑣的運(yùn)維任務(wù)中解脫出來,實(shí)現(xiàn)服務(wù)的自動(dòng)化和智能化運(yùn)維,進(jìn)一步釋放MaxCompute團(tuán)隊(duì)的精力,將全部的精力投入到更加有價(jià)值的工作上。而實(shí)現(xiàn)大數(shù)據(jù)服務(wù)自動(dòng)化和智能化的目的在于提高服務(wù)可靠性,解放生產(chǎn)力,通過做更有價(jià)值的事情來回饋用戶。基本思想就是定時(shí)地收集和監(jiān)控服務(wù)的各項(xiàng)指標(biāo),針對(duì)異常指標(biāo)及時(shí)作出應(yīng)對(duì)措施。
除了大數(shù)據(jù)服務(wù)的自動(dòng)化和智能化之外,對(duì)于用戶查詢而言,自動(dòng)識(shí)別出可優(yōu)化的查詢并提供優(yōu)化建議也非常關(guān)鍵。大家所寫的SQL查詢未必是最高效的,可能存在一些更加有效的方式或者更好的技術(shù),因此需要自動(dòng)識(shí)別出用戶查詢中可優(yōu)化的部分,并給出相應(yīng)的優(yōu)化建議。對(duì)于這部分而言,也是業(yè)內(nèi)的發(fā)展方向,目前MaxCompute團(tuán)隊(duì)也正在進(jìn)行相應(yīng)的研究工作。
三、MaxCompute低成本的奧秘
低成本使得MaxCompute更加具有競(jìng)爭(zhēng)力,而在低成本的背后,是MaxCompute發(fā)揮出技術(shù)紅利使得成本確確實(shí)實(shí)地降低下來。為了使得大數(shù)據(jù)任務(wù)的成本更低,MaxCompute主要在計(jì)算、存儲(chǔ)和調(diào)度這三個(gè)方面進(jìn)行改進(jìn)和提高。
在計(jì)算方面,MaxCompute優(yōu)化了自身的計(jì)算引擎,能夠提高性能,降低作業(yè)占用資源的數(shù)量,這兩種做法都可以使得平臺(tái)能夠承載更多計(jì)算任務(wù),每個(gè)任務(wù)要么能夠減少計(jì)算時(shí)間,要么可以減少作業(yè)大小,最終降低計(jì)算任務(wù)所占用的資源,這樣就能夠使得更多的資源得以空出來,承載更多的計(jì)算任務(wù)。
在存儲(chǔ)方面,也有各種各樣的優(yōu)化方式。比如優(yōu)化壓縮算法,使用比較先進(jìn)的列式存儲(chǔ),對(duì)于數(shù)據(jù)存儲(chǔ)進(jìn)行分級(jí),對(duì)于冷數(shù)據(jù)進(jìn)行歸檔,對(duì)于沒有價(jià)值的數(shù)據(jù)進(jìn)行及時(shí)回收等。
在調(diào)度方面,為了降低成本進(jìn)行優(yōu)化方式主要包括集群內(nèi)調(diào)度和跨集群全局調(diào)度。
對(duì)于集群內(nèi)部調(diào)度而言,所需要解決的問題非常多。一方面,每時(shí)每刻都有很多的作業(yè)實(shí)例在等待調(diào)度,另外一方面還有很多資源等著運(yùn)行作業(yè)。
集群內(nèi)調(diào)度
那么如何將兩者結(jié)合起來就顯得非常關(guān)鍵,也非??简?yàn)調(diào)度能力。目前,MaxCompute大數(shù)據(jù)平臺(tái)的調(diào)度決策頻率達(dá)到了4000+/s,這里所作出的調(diào)度決策是將一定大小的作業(yè)放入到相應(yīng)的資源中去,盡可能做到既能滿足作業(yè)所需資源,又不能浪費(fèi)資源。
在性能方面,需要支持增量式調(diào)度,使得資源能夠得到很好地利用;此外,還提供了彈性配額能力,使得多用戶在運(yùn)行計(jì)算任務(wù)的時(shí)候可以實(shí)現(xiàn)削峰填谷。因?yàn)樵谡嬲褂么髷?shù)據(jù)平臺(tái)的時(shí)候,大家不可能同時(shí)提交任務(wù),在絕大多數(shù)情況下往往會(huì)錯(cuò)峰提交任務(wù),因此就會(huì)出現(xiàn)資源使用的峰和谷,而通過彈性配額能力可以盡量實(shí)現(xiàn)削峰填谷,使得資源能夠充分利用。對(duì)于任務(wù)的最優(yōu)化調(diào)度而言,則需要考慮延遲與吞吐之間的平衡。在負(fù)載均衡方面,需要規(guī)避一些熱點(diǎn)。此外,MaxCompute的調(diào)度決策系統(tǒng)還支持任務(wù)優(yōu)先級(jí)和搶占,能夠?qū)崿F(xiàn)實(shí)時(shí)性和公平性。
此外,針對(duì)于復(fù)雜任務(wù)調(diào)度而言,還進(jìn)一步劃分了服務(wù)和作業(yè)的調(diào)度。這里所謂的任務(wù)就是一次性作業(yè),而對(duì)于服務(wù)而言,在啟動(dòng)之后則會(huì)在一段時(shí)間之內(nèi)一直不間斷地處理數(shù)據(jù)作業(yè)。其實(shí),服務(wù)和作業(yè)的調(diào)度存在著很大的差異,服務(wù)調(diào)度要求較高的可靠性,不能被打斷,因?yàn)橐坏┍淮驍?,重新恢?fù)起來的成本將會(huì)非常高;而作業(yè)對(duì)于間斷的容忍程度則要高一些,即使被打斷,后續(xù)也可以拉起來繼續(xù)運(yùn)行。
二級(jí)配額組
對(duì)于單集群內(nèi)的調(diào)度而言,重點(diǎn)介紹一下在一般的大數(shù)據(jù)平臺(tái)中比較少見的二級(jí)配額組概念。在介紹二級(jí)配額組之前,首先介紹關(guān)于配額組的相關(guān)內(nèi)容。簡(jiǎn)單而言,將物理集群的各種資源做成資源池之后,將一些資源整合到一個(gè)組里面就稱之為配額組。在大數(shù)據(jù)平臺(tái)上,作業(yè)就運(yùn)行在配額組里面,而同一個(gè)配額組中的作業(yè)將會(huì)共享該配額組中的所有資源。而常見的一級(jí)配額組策略,存在著很多的問題。舉例而言,如果一級(jí)配額組具有1000個(gè)CPU內(nèi)核,而有100個(gè)用戶在共同使用該配額組,某一時(shí)刻某一用戶提交了一個(gè)非常大的作業(yè),于是占滿了整個(gè)配額組的1000個(gè)CPU內(nèi)核,進(jìn)而導(dǎo)致其他用戶的作業(yè)全部需要等待。
為了解決上述情況中所出現(xiàn)的問題,就需要使用二級(jí)配額組。二級(jí)配額組在一級(jí)配額組的基礎(chǔ)之上進(jìn)行了進(jìn)一步細(xì)分,設(shè)定了每個(gè)用戶所能夠使用的資源上限。每個(gè)一級(jí)配額組可以分為多個(gè)二級(jí)配額組,這樣做的目的就是為了更好地利用資源。在二級(jí)配額組中,資源可以實(shí)現(xiàn)共享,但是即便某個(gè)用戶需要使用的資源很多,也無法超過該二級(jí)配額組資源上限,因此可以比較好地保證用戶體驗(yàn)。
與一般的大數(shù)據(jù)系統(tǒng)不同,MaxCompute除了能夠?qū)崿F(xiàn)單集群內(nèi)部調(diào)度之外,還可以實(shí)現(xiàn)多集群之間跨集群的全局調(diào)度,這也是MaxCompute強(qiáng)大能力的體現(xiàn)。單個(gè)集群可能會(huì)受制于各種因素而無法實(shí)現(xiàn)擴(kuò)容,因此需要實(shí)現(xiàn)集群級(jí)別的水平擴(kuò)展。
對(duì)于業(yè)務(wù)量巨大的應(yīng)用而言,為了保證當(dāng)單個(gè)集群發(fā)生宕機(jī)的時(shí)候業(yè)務(wù)依舊能夠正常運(yùn)行,所以需要讓業(yè)務(wù)在多個(gè)集群上運(yùn)行,來保證保證業(yè)務(wù)的高可用。這時(shí)候就需要全局的跨集群調(diào)度能力,當(dāng)一個(gè)作業(yè)進(jìn)來之后,需要分析該作業(yè)可以向哪些集群上進(jìn)行調(diào)度,以及目前哪些集群可供使用并且比較空閑。而此時(shí)還會(huì)涉及數(shù)據(jù)多版本的問題,因?yàn)橥环輸?shù)據(jù)存儲(chǔ)在不同的集群之中,就會(huì)帶來數(shù)據(jù)不一致的問題。此外,對(duì)于同一份數(shù)據(jù)的不同版本,也需要考慮應(yīng)該具體的計(jì)算和數(shù)據(jù)復(fù)制策略,而阿里云MaxCompute也是經(jīng)過了大量經(jīng)驗(yàn)的積累才使得上述策略更加完善。
四、數(shù)據(jù)安全
對(duì)于一個(gè)企業(yè)而言,使用大數(shù)據(jù)計(jì)算平臺(tái)時(shí)最為關(guān)心的就是數(shù)據(jù)安全問題。從阿里巴巴的經(jīng)驗(yàn)來看,在數(shù)據(jù)安全方面,用戶最為擔(dān)憂的主要有三點(diǎn),第一點(diǎn):將數(shù)據(jù)放在平臺(tái)之上,其他人能否看到;第二點(diǎn):將數(shù)據(jù)放到平臺(tái)或者服務(wù)之上,提供服務(wù)的人是否會(huì)看到數(shù)據(jù)。第三點(diǎn):將數(shù)據(jù)托管到大數(shù)據(jù)平臺(tái)之上,如果平臺(tái)出現(xiàn)了問題,那么數(shù)據(jù)怎么辦。
對(duì)于用戶的這些憂慮,MaxCompute都能比較完善地進(jìn)行處理,用戶基本上無需擔(dān)心數(shù)據(jù)的安全性。首先,MaxCompute平臺(tái)具有完善的鑒權(quán)和授權(quán)機(jī)制,數(shù)據(jù)是屬于用戶的,而不是平臺(tái)的,雖然平臺(tái)幫助用戶進(jìn)行存儲(chǔ)和計(jì)算,但是卻不具有數(shù)據(jù)所有權(quán),無論是對(duì)數(shù)據(jù)進(jìn)行訪問還是計(jì)算都需要鑒權(quán)和授權(quán)。無論是其他用戶還是平臺(tái)方,在沒有授權(quán)的情況下,都無法看到數(shù)據(jù)。此外,授權(quán)的維度也比較多樣,包括表級(jí)別、列級(jí)別和作業(yè)級(jí)別。而因?yàn)镸axCompute是云上大數(shù)據(jù)平臺(tái),天然地具備多租戶的特點(diǎn),因此需要實(shí)現(xiàn)各個(gè)租戶之間的數(shù)據(jù)和計(jì)算隔離。對(duì)于數(shù)據(jù)而言,MaxCompute平臺(tái)實(shí)現(xiàn)了物理隔離,從根本上消除了數(shù)據(jù)的安全性問題。此外,平臺(tái)還提供了嚴(yán)格的權(quán)限控制策略,用戶無法查看其他用戶的數(shù)據(jù)。此外,MaxCompute還提供了E2E全鏈路存儲(chǔ)加密,這對(duì)于金融機(jī)構(gòu)顯得尤為重要;還提供了CRC校驗(yàn),保證了數(shù)據(jù)正確性,而且這部分能力已經(jīng)在阿里巴巴內(nèi)部使用了多年,已經(jīng)非常完善;最后MaxCompute平臺(tái)還為用戶提供了數(shù)據(jù)脫敏等功能,方便用戶使用。
關(guān)于如何解析基于Serverless的高可用大數(shù)據(jù)服務(wù)MaxCompute問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。