天天看點

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

摘要:随着雲原生技術的不斷發展,資料庫也逐漸進入了雲原生時代。在雲原生時代,如何高效、安全且穩定地管理雲上與雲下的資料庫成為擺在企業面前的一大難題。在第十一屆中國資料庫技術大會(DTCC2020)上,阿裡巴巴資料庫生态工具團隊進階技術專家程實(花名:時勤)就為了大家分享了雲原生時代的資料庫管理體系以及解決方案。

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理
【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

本文内容根據演講錄音以及PPT整理而成。

本次分享将為大家介紹如何組合使用阿裡巴巴雲原生資料庫管理體系産品為使用者打造完整的解決方案。

雲原生的資料庫管理體系

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

雲原生時代的主要特征可以大緻歸納為兩點,即硬體特征和軟體特征,前者指的是硬體資源池化所帶來的高可用和彈性等;後者指的是在雲原生時代,很多工具無需企業自己研發,而可以通過API的方式調用軟體功能的組合,進而有機地組合成軟體生态。

那麼,雲原生時代的資料庫管理需要哪些技術呢?其實可以主要分為三類,即管理、遷移和備份。其中,管理需要安全、智能化以及面向混合雲的能力;遷移主要面對的挑戰在于資料庫的異構;而對于備份而言,如今需要解決的并不是能否備份成功,而是如何激活資料價值。

阿裡雲資料庫工具體系

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

如上圖所示的是阿裡雲資料庫工具體系。從圖中可以看到,首先,通過DBS、DTS資料遷移、資料庫備份這樣的工具可以打通從其他雲或者雲下到阿裡雲上的資料庫,并且還可以使得阿裡雲上的資料庫與阿裡雲上的計算平台、流計算平台以及資料分析平台之間實作打通。其次,通過DMS這樣的資料庫管理服務可以管理雲上和雲下的計算型和分析型資料庫。再次,阿裡雲還提供了資料庫自治服務DAS,也就是用于優化資料庫管理相關服務的智能化自治平台。

非雲資料庫如何擁抱雲原生?——雲原生賦能

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

接下來分析一個使用者常見的問題,就是對于使用者而言,如果其已有的大量資料庫是非雲資料庫執行個體,應該如何擁抱雲原生技術?我們當然可以為其介紹一款雲原生資料庫産品,但是使用者所想要了解的其實是如何使用這款産品,如何将資料遷移過來,以及線下的資料庫執行個體如何與雲原生資料庫共同發揮作用。也就是說,對于使用者而言,實際上需要的是一套解決方案。

阿裡雲資料庫為使用者提供了三種解決方案,可以适用于使用者不同的場景。

  • 方案1是整體遷移到雲資料庫。在這種方案中使用者最關心的是資料庫和應用的相容性問題。很多情況下,使用者要從Oracle資料庫遷移到雲資料庫或者從自己原有的曆史版本資料庫遷移過來,是以需要關心相容性問題。此外,對這種方案而言,傳輸性能也需要關心。
  • 方案2是資料仍然在雲下,但是要用雲原生技術對雲下資料進行管理,也就是“資料在雲下,管理在雲上”。對于這種方案而言,相當于在雲上運作了一個資料庫管理軟體,可以幫使用者節省資料庫運維的各種人力成本,而對于使用者而言,做需要關心的是如何在雲上管理服務與雲下的資料之間建立安全通道。其次,還需要關注資料安全和效能問題。最後,還需要深入考慮智能化問題,因為這種方案并不是要把人的能力搬到雲上去,把線下的人工操作變成了線上的操作這麼簡單,而是雲上的智能化管理,這将大大降低DBA和運維人員的負擔。
  • 方案3是生産資料在雲下,二級資料在雲上。如何了解生産資料和二級資料的關系呢?其實,生産資料就是業務所産生的資料,比如淘寶的交易所産生的資料,它就直接寫入到了阿裡巴巴的買家庫或者生産交易庫,這樣的資料就叫生産資料。而二級資料則是生産資料的備份,将生産資料拷貝到像Hadoop平台、Elastic平台以及其他備份資料的地方,這些資料全部叫做二級資料。在Gartner最近的報告中提到在現在的網際網路業界中,二級資料和生産資料的比例已經達到了20:1,也就是說生産資料隻占所有管理資料的一小部分,而二級資料反而成為大頭,甚至有可能是消耗資産的主要來源。

接下來介紹一些阿裡雲所提供的資料庫工具。

DMS資料管理——權限管理最佳實踐

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

在DMS資料管理産品中存在“三權分立”的概念,這種概念也是資料庫管理在大型企業中的一個最佳實踐。這裡大緻介紹一下,首先要有管理者或超級管理者的角色,通常由運維Leader或者CTO擔任,其主要負責定義人員的角色和配置設定人員的權限。其次,通常要有DBA或者運維人員,其負責資料庫的實際操作運維,比如擴容、Schema的變更等。最後的也是現在比較關注的,叫做安全管理者,其負責制定資料操作規範,比如每天可以操作多少次,在什麼樣的視窗可以完成這個操作,以及一次操作的範圍有多大等。安全管理者一方面限制DBA,另外一方面則限制第四種角色,即普通使用者,比如業務方的使用者隻需要讀寫某個資料庫,而并不需要操作資料庫執行個體,則需要受到安全管理者的限制;再比如有些高風險業務或者高敏感業務,業務人員不希望運維人員看到具體資料,特别是對于雲服務而言,是以也需要受到安全管理者的限制。安全管理者在DMS上可以限制每個類型的普通使用者,他可以看到甚至限制DBA所能夠看到的資料,還可以定義資料的脫敏處理,實作行級别的資料查詢限制。

DMS資料管理——與企業内部賬号SSO系統打通

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

上述資料管理最佳實踐落地的最大阻礙在于人和權限的管理沒有到位。對于公司而言,必然存在人員的入職、離職、以及部門更換等流動性過程,是以一定要實作人員權限與其目前位置的強關聯,這樣才是有效的管理,否則權限體系就會崩塌掉。DMS通過提供OpenAPI體系可以支援與企業的單點登入系統SSO,也就是企業的權限管理系統進行對接。無論是員工入職、更換部門還是崗位、職位調整,都可以通過在系統中關聯DMS的OpenAPI完成權限改變,使得員工權限始終與其崗位和部門保持一緻。

DMS資料管理——變更安全/研發效能

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

阿裡雲DMS所提供的功能還有很多,比如研發效能方面的變更工單系統、跨庫查詢等,變更安全方面的SQL稽核、資料脫敏、日志追蹤和復原以及不鎖表變更等。其中,DMS在資料脫敏方面能夠提供智能分析的能力,即便不告訴DMS哪些資料屬于敏感資料,其也能夠智能分析出來;在日志追蹤與復原方面,DMS能夠從日志中分析出某行資料記錄曆史的修改情況,而不僅僅是展現最終的資料修改結果,并且能夠幫助使用者自動生成復原SQL。在不鎖表變更方面,相當于把使用者送出的Schema或者批量的DML變更變成資料拷貝之後,在拷貝的副本上面進行變更,然後再完成替換操作。

DAS資料庫自治——自動優化參數

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

DAS是一款資料庫自治産品,這裡重點介紹DAS在去年和今年發表的兩篇VLDB論文。在2019年發表了題為《iBTune: Individualized Buffer Tuning for Largescale Cloud Databases》的論文,主要是利用機器學習技術智能地調整緩存大小。當DBA隻管理10個以内的資料庫,可以用大腦進行記憶像每個資料庫所需要的緩存大小、緩存命中率以及業務RT要求等資訊,而對于像阿裡巴巴這樣的情況,需要少量的DBA應對上萬的資料庫。此外。在使用者并不具備資料庫調優知識時,人工調整緩存也非常困難。上面這篇論文就嘗試解決這樣的問題,它通過機器學習方法,預測将緩存降低到什麼情況,緩存命中率和RT的值會發生什麼變化,其中使用的是深度神經網絡技術。這樣的預測技術在阿裡巴巴内部上萬個資料庫執行個體中使用得到的收益就是使得資料庫記憶體用量降低了12.44%。

DAS資料庫自治——自動優化SQL

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

上圖展示的是阿裡巴巴DAS在今年VLDB上釋出的題為《Diagnosing Root Causes of Intermittent Slow Queries in Cloud Databases》 的論文,主要做的事情就是智能分析慢查詢,分析後的操作分别是自動對SQL進行限流、自動對SQL進行優化以及自動擴容。這樣的事情可能看上去是DBA拍腦袋能決定的事情,但是當面對成千上百個資料庫的時候,想要了解每個資料庫有哪些SQL,以及哪些SQL造成了哪些問題都是非常困難的,是人力無法做到的,一定需要借助機器學習的方法。

DAS資料庫自治——自修複、自安全、自運維

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

對于資料庫自治而言,什麼時候限流、什麼時候擴容,這兩個場景其實是不一樣的。如果通過原有的流量預測,熬過了這段時間流量就會下來,那麼此時不應該擴容,因為這是一個短暫的峰值流量,為了短暫突發的峰值流量而擴容是不合适的,那麼此時可以對它進行限流。但是如果流量持續上漲,并且預測未來流量還會越來越高,那麼就應該擴容。DAS可以自動化地完成預測,無需DBA人工決策。此外,DAS還提供了異常檢測、故障檢測、SQL審計、防注入、安全漏洞修複等一系列功能,詳情可以參考DAS官方文檔。

DG資料庫網關——打通私網、本地IDC和他雲

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

DG的主要作用是打通線上雲資料庫和線下,前面提到一種方案是管理線上上,使用者資料線上下,使用者很容易覺得不安全,可能認為需要線上下開放一個資料庫的公網端口來便于管理。但是阿裡雲提供的方案并不是這樣的,不用暴露任何的對外的端口,通過反向建立TCP通道的方式,把DG的一端連接配接到線下資料庫,另一端連到線上管理服務,比如DMS和DAS服務來完成對資料庫的管理,而它的通道是加密的。

DTS資料傳輸——整體架構

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

其實,阿裡巴巴是最早做資料傳輸服務的,在阿裡雲誕生之前,DTS的前身DRC就是在阿裡内部做資料傳輸的,而阿裡早期引以為傲的技術,比如異地多活等都是靠點對點資料同步完成的。現在的DTS作為雲服務,其核心競争力就是支援非常多的源庫和目的庫類型,而這一點的實作并不簡單,因為不同資料庫的日志結構和分布式架構都不一樣,想要支援這些資料庫往往需要經過大量的探索,是以在技術上有相當高的門檻。此外,DTS除了支援從資料庫向資料庫進行遷移之外,還支援向一些分析平台進行遷移,或通過訂閱方式向一些流計算平台進行遷移,訂閱接口也相容Kafka的SDK。

DTS資料傳輸——核心技術:事務級實時同步

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

DTS具有事務級别并發的同步。阿裡雲DTS其實是最早開始研究事務級實時同步的,甚至比MySQL官方更早。此外,在高可用情況下需要防止雙寫,在多活狀态下需要防止循環,并且需要應對資料回放時可能會産生錯誤的問題。

ADMA專業遷移——整體流程

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

ADAM是一個專家的資料遷移服務,之是以在前面加了“專家”這樣的形容詞,是因為其不僅僅是對資料進行異構遷移和解決資料在兩端的存儲問題,更多的是幫助使用者進行資料庫選型。ADAM會嘗試去分析使用者線下使用的資料庫,比如ADAM可以幫助使用者分析使用的SQL、存儲過程等,可以分析出線上某個資料庫是否支援這些,如果不支援又可以使用其他什麼方案,這也是資料庫架構師或者DBA需要解決的問題,而目标資料庫的選型在ADAM中得到了很好的解決。其次,ADAM能夠實作相容性分析和自動SQL改造,這是因為資料庫與資料庫之間,即使是寫入的SQL也是不同的,更何況還有查詢的SQL和Join查詢等,雖然都遵循SQL 99規範,但是都有各自方言的SQL文法。最後是自動資料訂正,甚至可以指導應用來修改應用配置和參數來适配新的資料庫,是以叫做專家服務。ADAM即将要推出資料遷移實驗室,使用者将可以在不真正動資料的情況下進行資料遷移嘗試,以此分析SQL以及資料庫管理有何不同。

ADAM——核心技術:SQL文法轉換

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

上圖展示的是ADAM關于SQL文法轉換的技術示意圖。ADAM将源SQL通過标記AST文法樹的方式轉化成目标SQL,并針對于轉換中出現的問題輸出轉換報告。

DBS資料庫備份——整體架構

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

DBS資料庫備份是阿裡雲目前正在重點研發的産品,上圖展示了其技術整體架構。

DBS資料庫備份——核心技術:實體全量PIT拷貝、實體增量CBT

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

簡單分享一下DBS備份所使用的核心技術,首先是實體備份技術,也就是讓使用者在無感覺的情況下高速完成資料備份。目前,業界在實體備份主要需要面對兩個主要技術問題,一個是全量備份的PIT拷貝(Point-in-time Copy)問題,面對這一問題業界提出了五種技術方案,即Copy with Lock、Copy with Log、Copy on Write、Copy on Redirect和Mirror Split。Copy with Lock方案最為簡單,就是加一把鎖,比如拷貝MySQL資料庫,可以将其全部鎖住,并将檔案拷貝出來,這樣拷貝出來的檔案一定是一緻的。所謂Copy with Log就是邊拷貝資料邊拷貝日志,之後将這段時間拷貝的日志進行回放,MySQL使用Xtrabackup,而Oracle使用RMAN,也都是基于這種方案。而SQL Server資料庫所依賴的VSS機制就是使用的Copy on Write方案,可以沒有日志,而是在業務和存儲層接口部分有一層約定來實作一緻性拷貝。Mirror Split方案主要用于專用裝置。第二個問題就是增量備份CBT(Changed Block Tracking),在增量備份時需要發掘哪些資料塊從上一次到這一次是被修改過的,這樣的發掘能力對于不同的資料庫而言,所使用的技術也是不一樣的,比如Oracle使用RMAN和SBT。Windows使用VSS,而MySQL方面,官方的Percona的XtraDB提供了CBT功能,對于不是這樣的MySQL,則必須要通過掃描方式将更改的資料塊找出來,是以在使用Xtrabackup備份資料的時候開銷很大,而阿裡雲DBS在這些方面做了大量的優化工作。

DBS資料庫備份——核心技術:資料湖分析

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

前面提到希望将二級資料放在雲上并發揮資料價值,上圖所示的是将資料備份到對象存儲之後,直接建一個資料湖,然後實作對于資料送出SQL查詢的分析,這意味着資料并不需要再恢複到某個資料庫了,可以直接對備份資料進行SQL查詢,這對使用者是非常友好的,比如對于曆史資料的查詢隻需要在備份資料上就可以完成。

DBS資料庫備份——核心技術:CDM沙箱

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

前面所提到的方案實際上會涉及到對象存儲接口的多次調用,是以其性能不如原生資料庫,但阿裡雲提供了更好的方案。如果做實體備份,那麼可以運用實體備份技術加存儲虛拟化技術,再加上雲原生技術,幫助使用者直接線上上以秒級速度建立一個新的執行個體,而且建立的數量沒有限制。這項技術在業界叫做Copy Data Management,最近在資料備份的專業領域比較流行。而阿裡雲能夠實作在任何一個時間點都可以秒級速度拉起一個新的沙箱執行個體,該執行個體可以作為應急容災對象,也可以用于做開發測試。

最後針對前面所提到的三個問題給出相應的解決方案。

解決方案1:DTS+ADAM——整體遷移上雲

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

第一種方案是整體上雲,阿裡雲給出的就是ADAM+DTS的技術組合方案。ADAM完成資料庫畫像分析和雲資料庫選型,生成遷移計劃并進行結構的遷移和訂正,DTS對于資料進行全量和增量的遷移,最後ADAM還要對于線下應用進行畫像評估。第一個方案所需要解決的最主要問題就是資料庫異構問題,并打通異構通道。

解決方案2:DMS+DAS+DG——雲下資料+雲上管理

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

第二種解決方案是針對雲下資料、雲上管理的情況,首先通過DG實作安全網絡打通,然後通過DMS管理線下的資料庫并通過DAS智能運維線下資料庫。而不同身份的資料庫使用者面向不同平台來使用不同的資料服務。

解決方案3:DBS+DMS+DAS:雲下生産資料+雲上二級資料

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲程實:雲原生時代的資料庫管理

第三種方案是雲下生産資料+雲上二級資料,首先通過DBS将資料備份到雲上,通過CDM技術生成沙箱執行個體,既可以滿足應急讀寫需求,也可以面向開發測試秒級提供資料庫副本,并且可以通過DAS實作對于資料庫沙箱執行個體的運維管理。

點選這裡下載下傳本場演講PPT

相關閱讀

DTCC 2020 | 阿裡雲李飛飛:雲原生分布式資料庫與資料倉庫系統點亮資料上雲之路

https://developer.aliyun.com/article/781040

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲葉正盛:資料庫2025

https://developer.aliyun.com/article/780725

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲趙殿奎:PolarDB的Oracle平滑遷移之路

https://developer.aliyun.com/article/780749

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲朱潔:NoSQL最新技術發展趨勢

https://developer.aliyun.com/article/780746

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲王濤:阿裡巴巴電商資料庫上雲實踐

https://developer.aliyun.com/article/781001

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲張鑫:阿裡雲雲原生異地多活解決方案

https://developer.aliyun.com/article/781031

DTCC 2020 | 阿裡雲梁高中:DAS之基于Workload的全局自動優化實踐

https://developer.aliyun.com/article/781036

【内含幹貨PPT下載下傳】DTCC 2020 | 阿裡雲吉劍南:線上分析進入Fast Data時代的關鍵技術解讀

https://developer.aliyun.com/article/780747