自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

高可用大數(shù)據(jù)計算服務(wù)如何持續(xù)發(fā)布和演進(jìn)

大數(shù)據(jù)
MaxCompute 是一種統(tǒng)一的大數(shù)據(jù)計算平臺, MaxCompute 向用戶提供了完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計算模型,比如 SQL 、圖計算、流計算和機(jī)器學(xué)習(xí)等,能夠更快速的解決用戶海量數(shù)據(jù)計算問題,有效降低企業(yè)成本,并保障數(shù)據(jù)安全。

MaxCompute

MaxCompute

大數(shù)據(jù)計算服務(wù) (MaxCompute) 是一種快速、完全托管的 PB/EB 級數(shù)據(jù)倉庫服務(wù)。具備萬臺服務(wù)器擴(kuò)展能力和跨地域容災(zāi)能力,是阿里巴巴內(nèi)部核心大數(shù)據(jù)計算平臺,支撐每日***作業(yè)規(guī)模。

MaxCompute 是一種統(tǒng)一的大數(shù)據(jù)計算平臺, MaxCompute 向用戶提供了完善的數(shù)據(jù)導(dǎo)入方案以及多種經(jīng)典的分布式計算模型,比如 SQL 、圖計算、流計算和機(jī)器學(xué)習(xí)等,能夠更快速的解決用戶海量數(shù)據(jù)計算問題,有效降低企業(yè)成本,并保障數(shù)據(jù)安全。 

 

 

 

MaxCompute 不只對阿里集團(tuán)內(nèi)部用戶開放,也向外部開放。天貓、淘寶、螞蟻金服等都在使用 MaxCompute , MaxCompute 是阿里集團(tuán)內(nèi)部最關(guān)鍵的大數(shù)據(jù)平臺,目前, MaxCompute 機(jī)器已經(jīng)有五萬多臺,數(shù)據(jù)表是***以上,開發(fā)者有 8000 多個,性能上是 hadoop2 倍等,從數(shù)據(jù)上可以感受到 MaxCompute 是名副其實(shí)的海量大數(shù)據(jù)平臺,在業(yè)內(nèi)能處理的數(shù)據(jù)量以及計算能力也是處于領(lǐng)先地位的。 

 

 

 

MaxCompute 底層是由阿里自主開發(fā)的盤古分布式存儲系統(tǒng)和伏羲分布式調(diào)度系統(tǒng)組成,在此基礎(chǔ)上,我們也開發(fā)了 MaxCompute 執(zhí)行引擎, MaxCompute 是統(tǒng)一的大數(shù)據(jù)計算平臺,既能支持傳統(tǒng)經(jīng)典的批處理,也支持流計算、圖計算、內(nèi)存計算以及機(jī)器學(xué)習(xí)等,從這個角度來看,MaxCompute 與 spark 定位非常相似;在此之上, MaxCompute 支持靈活的語言,為了讓用戶能夠無縫接入 MaxCompute ,我們也支持開源系統(tǒng)好多的 API ,包括 spark API 和 Hive API 等。

批處理計算 

 

 

批處理計算 

目前,對于阿里巴巴甚至業(yè)界來說, SQL 類型的批處理是最經(jīng)典最廣泛的應(yīng)用了, SQL 批處理的流程如下:

用戶提交一條類似 SQL 的腳本到 MaxCompute 后, MaxCompute 會對 SQL 腳本進(jìn)行編譯并優(yōu)化,然后用 Runtime 運(yùn)行。

大數(shù)據(jù)計算服務(wù)

MaxCompute 要做大數(shù)據(jù)計算的服務(wù),并不像業(yè)界開源的 hadoop 、 spark 提供一套解決方案,我們需要提供一個 365 (天) x24 (小時)的高可靠,高可用的共享大數(shù)據(jù)計算服務(wù)。

那么,有什么好處呢?它可以:

– 使用門檻大大降低,用戶不用關(guān)心運(yùn)維升級等

– 共享細(xì)粒度使用資源,從而做到低成本,高效率

大數(shù)據(jù)計算服務(wù)強(qiáng)調(diào)穩(wěn)定性,與持續(xù)發(fā)展之間存在天然的矛盾。在一個穩(wěn)定運(yùn)行的大數(shù)據(jù)計算服務(wù)上改進(jìn)和發(fā)布新功能就像“空中換車”,在高速飛行的飛機(jī)上替換引擎而同時要保持平穩(wěn)飛行,其中的挑戰(zhàn)難度可想而知。

持續(xù)改進(jìn)和發(fā)布中的挑戰(zhàn)

  • MaxCompute 每天都有***作業(yè)。如何能夠平穩(wěn)安全,用戶無感知的發(fā)布新的功能?如何保證新版本的穩(wěn)定性,沒有 bug ,沒有性能的回退?出現(xiàn)問題后如何能夠快速止損等等?
  • 面對外部用戶,在測試時如何保證數(shù)據(jù)安全可靠呢?

針對以上挑戰(zhàn),我們提出在高可用服務(wù)下持續(xù)改進(jìn)和發(fā)布了以下技術(shù)手段來克服:

– MaxCompute Playback 工具

– MaxCompute Flighting 工具

– MaxCompute 灰度上線,細(xì)粒度回滾

編譯器Playback工具

MaxCompute 目前主流的仍然是 SQL 類型應(yīng)用,其中非常關(guān)鍵的模塊就是編譯優(yōu)化器,我們需要快速提高我們編譯器、優(yōu)化器的表達(dá)能力,以及性能優(yōu)化水平。

那么,如何能夠保證升級過程中沒有大的 Regression ?

每天有 100 萬 + 個 job ,每天都在變化,如果人工分析的話,每個 script 僅需要 2 分鐘,需要91 人年,這是不現(xiàn)實(shí)的,所以,我們開發(fā)了編譯器 Playback 工具。

Playback 工具用來解決編譯器和優(yōu)化器的測試驗證功能,利用大數(shù)據(jù)計算平臺的運(yùn)算能力來自我驗證新的編譯優(yōu)化器。

具體原理如下: 

 

 

 

基于 MaxCompute 強(qiáng)大而靈活的編譯擴(kuò)展能力,編譯器基于 AST 的編譯器模型,使用了經(jīng)典的 Visitor 模式。 SQL 腳本提交到系統(tǒng)后會將 SQL 腳本轉(zhuǎn)化成抽象語法樹,正常情況下的語法驗證和分析等實(shí)現(xiàn)了標(biāo)準(zhǔn)的 visitor , visitor 對應(yīng)于 AST 的驗證等擴(kuò)展性是非常好的,除了標(biāo)準(zhǔn)的 visitor 加入后,還可以加入一些有針對性的檢查驗證抽象語法樹的新 visitor ,將這些 visitor 加到語法樹上,就可以驗證新的編譯器和優(yōu)化器生成出來的各種各樣的產(chǎn)出是否 OK ,以此來驗證新的編譯器和優(yōu)化器的能力。

自我驗證 

 

 

 

整個驗證過程如下:

1. 當(dāng)用戶提交一條 SQL 腳本發(fā)給 MaxCompute ,利用 MaxCompute 本身靈活數(shù)據(jù)處理語言來構(gòu)造分析任務(wù);

2. 利用 MaxCompute 本身超大規(guī)模計算能力來并行分析海量用戶任務(wù),將一段時間用戶作業(yè)抽出;

3. 利用 MaxCompute 靈活的 UDF 支持且良好的隔離方案,在 UDF 中拉起待測的編譯器進(jìn)行編譯,之后再進(jìn)行詳細(xì)的結(jié)果分析。

整個過程都在 MaxCompute 完善的安全體系保護(hù)下,保障用戶的知識產(chǎn)權(quán)。

Playback 工具還有其它很豐富的作用,比如:

  • 進(jìn)行新版本的驗證
  • 精確制導(dǎo)找到觸發(fā)新的優(yōu)化規(guī)則的 query ,驗證其查詢優(yōu)化是否符合預(yù)期
  • 在語義層面對于 query 進(jìn)行整體數(shù)據(jù)分析

– 對相應(yīng)的用戶發(fā) warning 推動用戶下線過時的語法

– 對 query 整體進(jìn)行分析來確定下一步開發(fā)的重點(diǎn)

– 評估新版本在查詢優(yōu)化在執(zhí)行計劃上的提高程度

Flighting 工具

除了編譯器和優(yōu)化器外,另外有一個關(guān)鍵模塊就是執(zhí)行器。那么,如何保證 MaxCompute 運(yùn)行器是正確執(zhí)行的?避免在快速迭代中的正確性問題,從而避免重大的事故?同時,如何保證數(shù)據(jù)的安全性呢?

傳統(tǒng)方式驗證運(yùn)行器,最經(jīng)典的是用測試集群來驗證,該方式驗證的缺點(diǎn)如下:

– 調(diào)度或者 scalability 等方面的改進(jìn)往往需要建立一個相同規(guī)模的測試集群

  • 沒有相應(yīng)的任務(wù)負(fù)載,無法構(gòu)造對應(yīng)場景
  • 數(shù)據(jù)安全問題,使得我們需要脫敏的方式從生產(chǎn)集群拖數(shù)據(jù)

– 容易人為疏忽,造成數(shù)據(jù)泄露風(fēng)險

– 脫敏數(shù)據(jù)可能造成用戶程序 crash ,并且往往不能反映用戶運(yùn)行場景

– 整個測試過程冗長,不能達(dá)到測試的目的 

 

 

 

所以我們引入了 flighting 工具來做測試和驗證,將 99% 機(jī)器資源使用線上版本運(yùn)行生產(chǎn)作業(yè),1% 機(jī)器資源用來為程序員上載的測試版本進(jìn)行驗證。

資源隔離

那么,怎么保證測試驗證的作業(yè)不去影響線上生產(chǎn)的作業(yè)呢?這就需要我們完善資源隔離,具體包括:

  • CPU/Memory: 增強(qiáng) cgroup ,任務(wù)優(yōu)先級
  • Disk :統(tǒng)一的存儲管理,存儲的優(yōu)先級
  • Network : Scalable Traffic Control
  • Quota 管理

所以我們能夠在保障線上核心業(yè)務(wù)需求情況下進(jìn)行 flighting 的測試。

數(shù)據(jù)安全

從數(shù)據(jù)安全角度來說,我們的測試不需要人工干預(yù)進(jìn)行數(shù)據(jù)脫敏; Flighting 的任務(wù)的結(jié)果不落盤,而是直接對接分析任務(wù)產(chǎn)生測試報告:

– 結(jié)果正確性: MD5 計算,浮點(diǎn)等不確定性類型的處理

– 執(zhí)行性能的分析: straggler , data-skew , schedule quality

灰度上線 

 

 

 

SQL 的關(guān)鍵模塊如編譯優(yōu)化和執(zhí)行都可以得到有效測試和驗證,接下來就可以上線了,上線時也會有很大風(fēng)險,因此,我們實(shí)行灰度上線。按照任務(wù)的重要性進(jìn)行分級,支持細(xì)粒度發(fā)布,并且支持瞬時回滾,控制風(fēng)險到最小。 

 

 

 

開發(fā)新功能后做回歸,回歸后發(fā)布,開始時往往有新功能后,就進(jìn)行驗證,如果新功能是針對編譯器、優(yōu)化器,就用 playback 驗證,針對 Runtime 就用 flighting 驗證,所有測試驗證結(jié)束后,就到灰度發(fā)布階段,直到所有任務(wù)***發(fā)布上線后,我們就認(rèn)為這一次開發(fā)迭代是成功的,以此類推,不停的向前演進(jìn),既能保證服務(wù)可靠穩(wěn)定運(yùn)行的同時,將我們的性能提升,以滿足用戶的各種需求。 

責(zé)任編輯:龐桂玉 來源: 36大數(shù)據(jù)
相關(guān)推薦

2017-01-06 08:37:13

大數(shù)據(jù)高可用計算

2019-08-08 10:18:15

運(yùn)維架構(gòu)技術(shù)

2017-09-13 13:42:09

微服務(wù)緩存架構(gòu)

2017-07-03 15:32:49

數(shù)據(jù)庫MySQL架構(gòu)

2017-12-29 08:54:58

高可用數(shù)據(jù)庫架構(gòu)

2019-02-26 09:39:46

數(shù)據(jù)庫高可用架構(gòu)

2021-09-17 07:51:24

Keepalived服務(wù)高可用

2017-03-13 11:39:00

WOTWOTA高可用架構(gòu)

2013-09-09 09:39:02

云數(shù)據(jù)庫京東云

2012-07-03 16:46:39

實(shí)時監(jiān)控萬國數(shù)據(jù)

2024-01-10 07:23:52

高可用策略實(shí)踐

2021-05-08 09:14:55

云計算大數(shù)據(jù)人工智能

2018-01-04 13:39:34

大數(shù)據(jù)云計算IT行業(yè)

2015-12-18 14:05:09

大數(shù)據(jù)政府行業(yè)云華為

2017-05-04 12:48:18

WOT網(wǎng)易NDC

2017-12-07 22:08:16

系統(tǒng)架構(gòu)設(shè)計數(shù)據(jù)服務(wù)交易系統(tǒng)

2018-06-19 17:32:32

電競數(shù)據(jù)平臺

2024-10-08 08:27:22

2017-10-23 09:10:52

2020-12-09 09:21:41

微服務(wù)架構(gòu)數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號