中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解析基于Serverless的高可用大數據服務MaxCompute

發布時間:2021-12-16 11:31:58 來源:億速云 閱讀:178 作者:柒染 欄目:云計算

如何解析基于Serverless的高可用大數據服務MaxCompute,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一、什么是MaxCompute

Big Data in Alibaba
首先為大家介紹阿里巴巴大數據技術的一些相關背景。正如下圖所示,阿里巴巴其實在很早的時候就開始布局大數據技術,甚至可以說阿里云的成立就是為了幫助阿里巴巴解決大數據相關的技術問題。如今,阿里巴巴幾乎所有的BU都在使用大數據技術。而在阿里巴巴內部,大數據技術不僅應用范圍非常廣,同時也非常深入。此外,整個集團的大數據體系最終都會匯集到一起。
如何解析基于Serverless的高可用大數據服務MaxComputecdn.com/79d321f070f44bdc12462c5862973ac1ae544738.png">


Overview of Computing Platform

阿里云計算平臺事業部的職責就是將阿里巴巴的大數據體系匯集到一起,并且負責整個集團的存儲、計算相關的研發工作。如下圖所示的就是阿里巴巴大數據平臺的簡單架構圖,最底層的是統一存儲平臺盤古,其負責存儲大數據。存儲時靜態的,而為了挖掘數據的價值就需要依靠計算能力實現,因此阿里巴巴大數據平臺也提供了各種計算資源,比如CPU、GPU、FPGA以及ASIC等。為了更好地利用上述這些計算資源,需要將他們統一地進行抽象,并有效地進行管理,而在阿里云內部,統一的資源管理系統稱為伏羲。基于資源管理和調度系統,阿里云還開發了各種各樣的計算引擎,比如通用計算引擎MaxCompute、流計算Blink、機器學習PAI以及圖計算平臺Flash等。在這些計算引擎之上,平臺還提供了各種各樣的開發環境,并基于這些開發環境實現了各種業務。
下面將為大家重點介紹通用計算引擎MaxCompute。MaxCompute是一個通用分布式大數據處理平臺,其一方面可以存儲海量數據,另一方面還可以基于數據進行通用計算。

首先看兩個數字,目前,阿里巴巴內部99%的數據存儲和95%的計算任務都由MaxCompute承載。其實,MaxCompute就是阿里巴巴的數據中臺,集團的各個BU所產生的數據最終都會匯總到MaxCompute上面,使得集團的數據資產得以不斷增加。其次,再看幾個指標。MaxCompute在BigBench測試中的表現是一般開源系統的2.5倍。在阿里巴巴集團內部,MaxCompute集群的機器數量達到了幾萬臺,每天所承載的作業量更是達到了百萬級別。目前,MaxCompute集群所存儲的數據量也非常大在很久之前就已經達到了EB級別,這在全球范圍內都處于領先水平。此外,MaxCompute不僅對集團內部提供服務,也開放給了外部企業使用,目前所提供的行業解決方案已經達到了50多套。如今,MaxCompute的存儲量和計算量每年都在以極高的速度增長,而借助阿里云的能力,使得MaxCompute不僅能夠在國內進行部署,還能夠部署到海外的很多國家和地區。

MaxCompute系統架構

MaxCompute的系統架構與業界的大數據計算引擎架構比較類似。如下圖所示,用戶能夠通過一些客戶端進行接入,通過接入層就可以將數據傳輸到MaxCompute里面。而在中間存在一個管理層,可以管理各種各樣的用戶作業,同時也會承載各種各樣的功能,比如大數據里面最基本的SQL編譯、優化和運行等功能。此外,MaxCompute提供了分布式元數據服務,因為如果沒有元數據管理,那么就無法知道數據存儲的究竟是什么。在MaxCompute架構的最下面一層就是實際的存儲和計算發生的地方。

如何解析基于Serverless的高可用大數據服務MaxCompute

二、MaxCompute Serverless與背后的奧秘

如今Serverless這一概念非常火爆,而當站在MaxCompute開發者的角度,Serverless的火爆既令人高興,也令人郁悶。值得高興的是:MaxCompute技術團隊早在Serverless概念提出之前的很多年就開始研發類似功能了,并且設計理念也完全符合Serverless,這可以說明MaxCompute在Serverless方面的布局較早,并且技術具有一定的先進性。但令人郁悶的是:雖然MaxCompute團隊很早就被提出了Serverless的相關概念,也認可這種技術路線的價值,但是卻沒有能夠及早地將這樣的能力包裝起來。

在Serverless概念提出之前,大家進行大數據實踐的時候基本都是按照下圖的步驟,首先購買服務器,搭建集群,有了硬件之后就可以在上面安裝大數據處理軟件“全家桶”,之后導入數據,編寫業務所需要的查詢并做計算,最終獲取結果。當然了,上述的每個步驟都離不開運維相關工作。如果自行搭建大數據系統,那么運維工作將會貫穿始終的,而對于運維同學而言,也需要時時刻刻待命,以防系統出現問題。

但是,如果回顧上述的步驟,真正能夠產生業務價值就是第四步的編寫查詢和進行實際的計算,但是其他的步驟會消耗很多的資源和人力,而這對于偏向于業務型的公司而言,都是額外的負擔。而如今,Serverless就提供了幫助企業消除這些額外負擔的機會。

以MaxCompute Serverless為例,只需要經過四個步驟就可以實現所需的業務價值。第一步開通賬戶并創建項目,這個項目既是數據存儲載體,也是計算的載體;第二步上傳數據;第三步編寫查詢語句并進行計算;第四步就可以獲取計算結果。在整個過程中,無需任何運維工作,因此開發團隊可以將精力集中在最為核心并且能夠產生業務價值的地方,這也就是Serverless的優勢所在。其實,這也代表了新技術對日常工作所帶來的變化,新的技術使得大家能夠更加專注于能夠產生核心價值的部分,而無需關心額外的或者輔助性的工作。

和其他的開源軟件或者大數據公司直接為客戶提供一個大數據軟件包的做法不同,MaxCompute所提供的是大數據服務,而且所提供的服務能夠實現365(天)X 24(小時)的高可靠,既提供了大數據計算的能力,也同時提供了數據存儲的能力,并且使得用戶可以真正實現大數據技術的開箱即用。

在實現大數據平臺Serverless服務的過程中需要面對很多挑戰,小編將會主要聚焦以下三個問題:

  • 大數據服務如何持續迭代和升級

  • 大數據服務的趨勢:自動化、智能化

  • 數據安全

持續改進和發布中的挑戰和方案

如果想要實現一套大數據系統,那么持續改進和發布的話題是絕對無法脫離。這是因為用戶總會提出各種各樣的新需求,而為了滿足這些需求就需要不斷地升級和改進大數據平臺,而在改進的同時,還需要面對每天平臺之上運行的百萬級作業,并保證7*24小時的服務不間斷。那么,如何實現平臺升級過程的平穩安全,并且使得用戶對于新功能發布無感知,此外還需要保證新版本的穩定性,沒有Bug和性能回退問題,以及在出現問題之后能夠快速止損等,這些都是需要考慮的問題。此外,在持續改進和發布的過程中,還需要考慮測試和數據安全性之間的矛盾。總而言之,在大數據平臺之上實現持續改進和發布,就如同在飛行的飛機上面更換引擎。

如何解析基于Serverless的高可用大數據服務MaxCompute

面對上述的問題和挑戰,阿里云MaxCompute團隊做了大量的工作。目前,在大數據領域,MapReduce對于用戶不夠友好已經成為了業界的共識,類SQL的大數據引擎已經成為了主流。而對于類SQL的處理而言,最關鍵的就是三個步驟:編譯、優化和執行。因此,MaxCompute也抓住了問題的關鍵,針對編譯和優化開發了Playback工具,針對執行則開發了Flighting工具。除了上述比較偏向于測試驗證階段所使用的兩種工具之外,在真正上線的時候,MaxCompute還提供了灰度上線等工具。

Playback工具

Playback誕生的背景就是MaxCompute需要快速地提高編譯器和優化器的表達能力和性能優化水平。而在對編譯器和優化器進行了重大改動之后,如何保證編譯器和優化器沒有問題就成為了一個挑戰。最為原始的做法就是通過將一些已有的SQL放到編譯器和優化器上執行,并通過執行結果的人工分析來發現編譯器和優化器的改進中存在的問題。但是通過人工方式進行分析,可能需要一百年才能完成,這顯然是無法容忍的。因此,MaxCompute團隊希望借助大數據計算平臺的運算能力來自我驗證新的編譯優化器。

其原理就是利用MaxCompute本身強大且靈活的能力,把所有真實的用戶查詢收集起來并放到MaxCompute系統里面,將用戶查詢以大規模、分布式的方式運行起來,并通過新版的編譯優化器來完成這些作業的編譯和優化。而由于MaxCompute采用了業內通行的模式,因此能夠很容易地將作業插件插入到任務之中,進而對編譯優化任務進行校驗,如果存在問題也能夠很容易地暴露出來。

如何解析基于Serverless的高可用大數據服務MaxCompute

總結而言,Playback一方面利用MaxCompute靈活且強大的計算能力來分析海量用戶任務,另外一方面還借助對于UDF的支持和良好的隔離方案來進行編譯優化和驗證。這就使得對于新版本編譯優化器的驗證變得非常容易,對于之前想要實現但是卻無能為力的任務,如今借助于大數據平臺的強大能力得以實現。

Flighting工具

Flighting是針對于運行時的工具。其實,對于改進的優化器進行測試優化的常規做法就是搭建一個測試集群進行測試,這是最常規并且最自然的做法,但是也會造成極大的資源浪費,因為測試集群的成本非常大。由于測試環境與真實環境的任務復負載情況不同,因此,測試集群也無法真實地模擬出實際場景。此外,為了在測試環境中進行驗證,需要測試人員來創造出一些數據,但是這些被創造出來的數據可能過于簡單。否則就需要從真實場景中拿一些數據,但是這樣做不僅需要經過用戶的同意,還需要進行數據脫敏,這也是一件極其麻煩的事情。不僅可能產生數據泄露的風險,而且最終數據和真實數據也會存在一定的差異,很多情況無法驗證出新功能所存在的問題。

而MaxCompute的運行時驗證工具Flighting所使用的就是線上真實的集群和環境。借助于資源隔離的能力,使得MaxCompute集群中99%的計算資源交給用戶來運行作業,而剩下的1%的資源交給Flighting工具進行執行器的新功能驗證測試。這樣的做法非常高效,不僅不需要拖取數據,還可以在生產環境中直接運行,可以容易地暴露出真實執行器所存在的問題。

灰度上線

MaxCompute平臺具有灰度上線的能力,可以將任務按照重要性進行分級,進行細粒度發布,并且支持瞬時回滾,這樣就可以將風險降到最低。
如何解析基于Serverless的高可用大數據服務MaxCompute
MaxCompute平臺的持續開發驗證迭代流程

如下圖所示的是MaxCompute平臺的持續開發驗證迭代流程,其結合了針對編譯優化器的Playback工具、針對運行器的Flighting工具以及灰度上線的能力。在這樣的流程中, 第二個周期并不需要等待第一個周期完成再開始,這樣就使得整個研發流程更加高效。目前,MaxCompute的持續開發和交付過程在編譯優化、執行以及灰度等都具有較強的技術優勢,在整個行業內也具有較強的技術競爭力,這就使得MaxCompute能夠更好地向前演進,為客戶帶來更多更好的功能,同時也保證了MaxCompute平臺在升級的過程中不會影響用戶的正常使用。

自動化、智能化

隨著人工智能和大數據技術的不斷發展,如今對于服務而言,不僅需要實現高可用,還需要實現自動化。針對于這樣的思想,可以從兩個角度來看,即服務本身的角度和用戶運維的角度。針對于服務本身,首先需要實現自動化,更進一步可以實現人工智能化。
如何解析基于Serverless的高可用大數據服務MaxCompute
任何服務都會出現各種各樣的問題,存在各種各樣的Bug,在出現問題的時候,傳統解決方案中需要依靠人力來解決。而服務自動化和智能化的終極目標就是在系統出現問題的時候,不需要人工來修復,而完全通過系統的自愈能力來發現并解決問題。而服務自動化和智能化的目標需要一步步實現,從用戶運維的角度來看,就是從原本用戶自身負責的運維工作,轉交給完成大數據任務的云上大數據平臺,比如阿里云MaxCompute,這時候就相當于將客戶的運維工作轉移給了MaxCompute團隊。而第三步就是MaxCompute團隊也希望從大數據平臺繁瑣的運維任務中解脫出來,實現服務的自動化和智能化運維,進一步釋放MaxCompute團隊的精力,將全部的精力投入到更加有價值的工作上。而實現大數據服務自動化和智能化的目的在于提高服務可靠性,解放生產力,通過做更有價值的事情來回饋用戶。基本思想就是定時地收集和監控服務的各項指標,針對異常指標及時作出應對措施。

除了大數據服務的自動化和智能化之外,對于用戶查詢而言,自動識別出可優化的查詢并提供優化建議也非常關鍵。大家所寫的SQL查詢未必是最高效的,可能存在一些更加有效的方式或者更好的技術,因此需要自動識別出用戶查詢中可優化的部分,并給出相應的優化建議。對于這部分而言,也是業內的發展方向,目前MaxCompute團隊也正在進行相應的研究工作。

三、MaxCompute低成本的奧秘

低成本使得MaxCompute更加具有競爭力,而在低成本的背后,是MaxCompute發揮出技術紅利使得成本確確實實地降低下來。為了使得大數據任務的成本更低,MaxCompute主要在計算、存儲和調度這三個方面進行改進和提高。

  • 在計算方面,MaxCompute優化了自身的計算引擎,能夠提高性能,降低作業占用資源的數量,這兩種做法都可以使得平臺能夠承載更多計算任務,每個任務要么能夠減少計算時間,要么可以減少作業大小,最終降低計算任務所占用的資源,這樣就能夠使得更多的資源得以空出來,承載更多的計算任務。

  • 在存儲方面,也有各種各樣的優化方式。比如優化壓縮算法,使用比較先進的列式存儲,對于數據存儲進行分級,對于冷數據進行歸檔,對于沒有價值的數據進行及時回收等。

  • 在調度方面,為了降低成本進行優化方式主要包括集群內調度和跨集群全局調度。

對于集群內部調度而言,所需要解決的問題非常多。一方面,每時每刻都有很多的作業實例在等待調度,另外一方面還有很多資源等著運行作業。

集群內調度

那么如何將兩者結合起來就顯得非常關鍵,也非常考驗調度能力。目前,MaxCompute大數據平臺的調度決策頻率達到了4000+/s,這里所作出的調度決策是將一定大小的作業放入到相應的資源中去,盡可能做到既能滿足作業所需資源,又不能浪費資源。

如何解析基于Serverless的高可用大數據服務MaxCompute

在性能方面,需要支持增量式調度,使得資源能夠得到很好地利用;此外,還提供了彈性配額能力,使得多用戶在運行計算任務的時候可以實現削峰填谷。因為在真正使用大數據平臺的時候,大家不可能同時提交任務,在絕大多數情況下往往會錯峰提交任務,因此就會出現資源使用的峰和谷,而通過彈性配額能力可以盡量實現削峰填谷,使得資源能夠充分利用。對于任務的最優化調度而言,則需要考慮延遲與吞吐之間的平衡。在負載均衡方面,需要規避一些熱點。此外,MaxCompute的調度決策系統還支持任務優先級和搶占,能夠實現實時性和公平性。

此外,針對于復雜任務調度而言,還進一步劃分了服務和作業的調度。這里所謂的任務就是一次性作業,而對于服務而言,在啟動之后則會在一段時間之內一直不間斷地處理數據作業。其實,服務和作業的調度存在著很大的差異,服務調度要求較高的可靠性,不能被打斷,因為一旦被打斷,重新恢復起來的成本將會非常高;而作業對于間斷的容忍程度則要高一些,即使被打斷,后續也可以拉起來繼續運行。

二級配額組

對于單集群內的調度而言,重點介紹一下在一般的大數據平臺中比較少見的二級配額組概念。在介紹二級配額組之前,首先介紹關于配額組的相關內容。簡單而言,將物理集群的各種資源做成資源池之后,將一些資源整合到一個組里面就稱之為配額組。在大數據平臺上,作業就運行在配額組里面,而同一個配額組中的作業將會共享該配額組中的所有資源。而常見的一級配額組策略,存在著很多的問題。舉例而言,如果一級配額組具有1000個CPU內核,而有100個用戶在共同使用該配額組,某一時刻某一用戶提交了一個非常大的作業,于是占滿了整個配額組的1000個CPU內核,進而導致其他用戶的作業全部需要等待。

為了解決上述情況中所出現的問題,就需要使用二級配額組。二級配額組在一級配額組的基礎之上進行了進一步細分,設定了每個用戶所能夠使用的資源上限。每個一級配額組可以分為多個二級配額組,這樣做的目的就是為了更好地利用資源。在二級配額組中,資源可以實現共享,但是即便某個用戶需要使用的資源很多,也無法超過該二級配額組資源上限,因此可以比較好地保證用戶體驗。

與一般的大數據系統不同,MaxCompute除了能夠實現單集群內部調度之外,還可以實現多集群之間跨集群的全局調度,這也是MaxCompute強大能力的體現。單個集群可能會受制于各種因素而無法實現擴容,因此需要實現集群級別的水平擴展。

對于業務量巨大的應用而言,為了保證當單個集群發生宕機的時候業務依舊能夠正常運行,所以需要讓業務在多個集群上運行,來保證保證業務的高可用。這時候就需要全局的跨集群調度能力,當一個作業進來之后,需要分析該作業可以向哪些集群上進行調度,以及目前哪些集群可供使用并且比較空閑。而此時還會涉及數據多版本的問題,因為同一份數據存儲在不同的集群之中,就會帶來數據不一致的問題。此外,對于同一份數據的不同版本,也需要考慮應該具體的計算和數據復制策略,而阿里云MaxCompute也是經過了大量經驗的積累才使得上述策略更加完善。

四、數據安全

對于一個企業而言,使用大數據計算平臺時最為關心的就是數據安全問題。從阿里巴巴的經驗來看,在數據安全方面,用戶最為擔憂的主要有三點,第一點:將數據放在平臺之上,其他人能否看到;第二點:將數據放到平臺或者服務之上,提供服務的人是否會看到數據。第三點:將數據托管到大數據平臺之上,如果平臺出現了問題,那么數據怎么辦。

如何解析基于Serverless的高可用大數據服務MaxCompute

對于用戶的這些憂慮,MaxCompute都能比較完善地進行處理,用戶基本上無需擔心數據的安全性。首先,MaxCompute平臺具有完善的鑒權和授權機制,數據是屬于用戶的,而不是平臺的,雖然平臺幫助用戶進行存儲和計算,但是卻不具有數據所有權,無論是對數據進行訪問還是計算都需要鑒權和授權。無論是其他用戶還是平臺方,在沒有授權的情況下,都無法看到數據。此外,授權的維度也比較多樣,包括表級別、列級別和作業級別。而因為MaxCompute是云上大數據平臺,天然地具備多租戶的特點,因此需要實現各個租戶之間的數據和計算隔離。對于數據而言,MaxCompute平臺實現了物理隔離,從根本上消除了數據的安全性問題。此外,平臺還提供了嚴格的權限控制策略,用戶無法查看其他用戶的數據。此外,MaxCompute還提供了E2E全鏈路存儲加密,這對于金融機構顯得尤為重要;還提供了CRC校驗,保證了數據正確性,而且這部分能力已經在阿里巴巴內部使用了多年,已經非常完善;最后MaxCompute平臺還為用戶提供了數據脫敏等功能,方便用戶使用。

關于如何解析基于Serverless的高可用大數據服務MaxCompute問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

密山市| 普陀区| 舞钢市| 通化市| 左云县| 嵊泗县| 磴口县| 宁国市| 烟台市| 孟州市| 大港区| 稻城县| 宜春市| 甘德县| 望城县| 商城县| 赤城县| 建湖县| 涟源市| 平凉市| 巴林右旗| 台山市| 安国市| 古丈县| 红原县| 武安市| 虹口区| 阜南县| 开平市| 玉林市| 宜丰县| 西贡区| 华蓥市| 贺兰县| 荥经县| 阿鲁科尔沁旗| 儋州市| 融水| 长岛县| 七台河市| 灵武市|