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