云時代下,數(shù)據(jù)庫的關(guān)鍵趨勢與DBA發(fā)展之路
?伴隨著云計算、分布式技術(shù)的逐步落地,近十年來數(shù)據(jù)庫的形態(tài)發(fā)生了很大變化,各類數(shù)據(jù)庫不斷涌現(xiàn),數(shù)據(jù)庫架構(gòu)也隨之演進。在云時代下,企業(yè)該如何選型并構(gòu)建數(shù)據(jù)庫架構(gòu)?如何應(yīng)對業(yè)務(wù)上云帶來的數(shù)據(jù)遷移挑戰(zhàn)?數(shù)據(jù)庫有何“新解”?DBA的未來發(fā)展趨勢如何?
今天為我們解答以上問題的嘉賓,是來自貨拉拉的DBA負責(zé)人蔡鵬老師。希望通過匯集蔡鵬的研究成果和實踐經(jīng)驗,帶大家明確新數(shù)據(jù)庫時代,DBA的個人發(fā)展之路。
蔡鵬
貨拉拉 DBA負責(zé)人
前餓了么、螞蟻金服技術(shù)專家,現(xiàn)任貨拉拉數(shù)據(jù)庫部門負責(zé)人。負責(zé)貨拉拉全球化業(yè)務(wù)場景下整體數(shù)據(jù)庫、消息隊列、緩存、數(shù)據(jù)庫中間件的穩(wěn)定性建設(shè)工作,主持過餓了么數(shù)據(jù)庫異地多活建設(shè),對數(shù)據(jù)庫庫中間件、分布式數(shù)據(jù)庫和自動化運維平臺設(shè)計開發(fā)有豐富的實踐經(jīng)驗。
主要觀點
數(shù)據(jù)庫進步、顛覆傳統(tǒng)DBA、塑造行業(yè)
云數(shù)據(jù)庫進入百家爭鳴的時代,云商間的激烈競爭,再加上現(xiàn)實的業(yè)務(wù)需求,迫切需要促進數(shù)據(jù)庫技術(shù)的進步。近幾年業(yè)內(nèi)涌現(xiàn)出了大量新式數(shù)據(jù)庫,這些新式數(shù)據(jù)庫,一方面對傳統(tǒng)關(guān)系型數(shù)據(jù)庫做了大量改進優(yōu)化(分布式、云原生等);同時在新硬件能力加持下(我們看到了恐怖的幾百核心CPU、超高容量高性能的存儲),數(shù)據(jù)庫性能進一步飛躍甚至“性能過?!?。數(shù)據(jù)庫形態(tài)的改變正在深刻的影響整個IT行業(yè),相信新技術(shù)下DBA也有新機會。
Q1如何理解:云時代,要讓研發(fā)具備DBA的能力?
個人理解:讓研發(fā)具備DBA的能力,本身是“開云時代的倒車”。因為云本身,不管是在屏蔽底層基礎(chǔ)設(shè)施的穩(wěn)定性上,還是在自身產(chǎn)品內(nèi)核的完善建設(shè)上,都具有更強的容錯及兼容能力,因此云不僅要提供一個穩(wěn)定的基礎(chǔ)設(shè)施,更是屏蔽了諸多研發(fā)過程中的一些復(fù)雜性、容錯性,讓研發(fā)更加注重對業(yè)務(wù)自身的建設(shè)上。
不管是在云時代,還是自建時代,研發(fā)都需要對數(shù)據(jù)庫本身做一定程度的理解,比如合理的設(shè)計范式、結(jié)構(gòu)設(shè)計、索引設(shè)計、SQL寫法等,但是我們也看到云數(shù)據(jù)庫越來越智能化,甚至能對SQL智能改寫、索引自動優(yōu)化做到了很高程度的自動化,這進一步削弱了研發(fā)對數(shù)據(jù)庫本身的關(guān)注度。
但凡事也有例外,比如數(shù)據(jù)庫類型越來越多,不同場景可能使用不同類似的數(shù)據(jù)庫更加具有優(yōu)勢,過去這種選型由DBA來主導(dǎo)完成?;谠艱B對研發(fā)復(fù)雜度的屏蔽,研發(fā)可以根據(jù)自己對云數(shù)據(jù)庫產(chǎn)品的理解程度,進行合理的選型,不過這里面是有潛在的風(fēng)險的。
比如早期貨拉拉就有類似的實踐:研發(fā)自行做了很多數(shù)據(jù)庫選型,最終導(dǎo)致的結(jié)果是服務(wù)治理失控,同時也帶來很嚴重的業(yè)務(wù)風(fēng)險(比如一條數(shù)據(jù)既寫MySQL,又寫MongoDB,跟ElasticSearch最后還要刷一份到Redis緩存,有吐血的修數(shù)據(jù)歷史)。因此這部分工作仍舊需要DBA來指導(dǎo)完成,因為DBA在這方面相對而言會有更好的大局觀。
Q2云時代的DBA職責(zé)有什么轉(zhuǎn)變?應(yīng)該提前做些什么?
職能轉(zhuǎn)變:
①數(shù)據(jù)庫的可靠性穩(wěn)定性在云能力加持下不在是核心工作比如部分SLA的工作由云來保障;
②如何科學(xué)合理的使用云能力賦能業(yè)務(wù)在架構(gòu)設(shè)計方案規(guī)劃、節(jié)約成本顯得更重要。
提前準備:
①在對云的理解上:對云產(chǎn)品進行積極學(xué)習(xí),了解各家云的套路玩法;
②個人能力建設(shè)上:需要加強復(fù)合多元化的能力建設(shè),做到懂?dāng)?shù)據(jù)庫、懂平臺、懂研發(fā)、實現(xiàn)DBA到架構(gòu)師的轉(zhuǎn)變。
Q3云時代,企業(yè)IT設(shè)施呈現(xiàn)集中化、規(guī)模化效應(yīng),對效率、性能的要求提升,我們對云數(shù)據(jù)庫產(chǎn)生了哪些技術(shù)新需求?
數(shù)據(jù)庫發(fā)展至今基本在滿足用戶無止境的既要(高性能)、又要(穩(wěn)定性)、還要(可擴展性、可運維性等)的“過分”需求:
- 能力多元化需求上:AP+TP(HTAP)、行列一體化、SQL與NoSQL共存、持久與Cache共存、存儲計算分離無限可擴容;
- 架構(gòu)上:要求基于云原生的異地多活/容災(zāi)(兩地三中心、三地五中心)能力;
- 治理上:更加智能化的自治能力;
- 成本上:越便宜越好(用戶跟老板一樣,總是不講道理)。
Q4數(shù)據(jù)庫存儲未來分層的設(shè)計,有沒有可能在混合云環(huán)境自由遷移或者自動遷移?實現(xiàn)的難點在哪里呢?
個人理解是很難的,實現(xiàn)的難點主要在云商間的壁壘,或者自身產(chǎn)品的封閉性與產(chǎn)品間的兼容性上:
- 云商壁壘:由于商業(yè)原因云商產(chǎn)品間存在天然的隔閡,云商間短期看不到相互產(chǎn)品間打通的需求;
- 產(chǎn)品封閉性:不同云產(chǎn)品底層技術(shù)原理不一致不公開,雖然只對用戶層暴露了統(tǒng)一的標(biāo)準協(xié)議,但是對實現(xiàn)跨云跨產(chǎn)品間的遷移,還是存在關(guān)鍵原理上的障礙;
- 產(chǎn)品兼容性:不同云產(chǎn)品,甚至在基礎(chǔ)協(xié)議層,都不兼容跨云遷移的前置條件。
當(dāng)然對于基礎(chǔ)協(xié)議層兼容,比如常用的MySQL及其變種系列(Binlog格式兼容)的跨云遷移技術(shù)實現(xiàn)上,還是相對比較簡單的,不管是借助云自身的能力(如DTS),或者自己開發(fā)一個遷移工具都是可行的、但是這種情況畢竟是少數(shù)。
不過隨著未來數(shù)據(jù)庫逐步往開源方向發(fā)展(封閉是沒有未來的),這會促使更多技術(shù)人對云產(chǎn)品做更多深入的理解,這會給跨云間的數(shù)據(jù)遷移提供更多技術(shù)支撐,當(dāng)然這對技術(shù)本身有很高的要求。
不過我也注意到:近幾年出現(xiàn)了很多三方技術(shù)服務(wù)公司,專門提供云上各種解決方案,或許基于云會誕生一些新的商業(yè)機會,也是技術(shù)人技術(shù)變現(xiàn)的一種途徑,這似乎也變相讓“DBA消亡論”不攻自破。?