云时代,我们需要怎样的数据库?
本文作者騰訊云TDSQL負責人潘安群。潘安群主要負責騰訊云分布式數據庫研發,擁有超過13年分布式數據庫研發經驗,研發成果多次入選國際頂會VLDB、SIGMOD等。他帶領團隊打造的安全可控分布式數據庫TDSQL,是業內首個應用于互聯網銀行核心交易系統、首個進入銀行傳統核心系統、首個助力傳統大型銀行實現銀行業首例“大型機”下移分布式平臺的國產企業級分布式數據庫。
零、引言
數據庫技術發展已達半個世紀之久,數據庫圖靈獎得主Michael Stonebraker曾在Readings in Database Systems中將數據庫模型技術分為9個不同的時代與類型,而云時代開始以后,我們可以從全新的視角審視數據庫等基礎技術的過去和未來。
基于云計算,包括數據庫在內的IT基礎技術發生從技術形態到線上線下整個市場結合的大幅變化,數據庫技術呈現從傳統集中式到云時代分布式遷移替換的趨勢,這也給國產數據庫賦予機遇與挑戰。
在2020年11月,Gartner發布了2020年度的數據庫廠商評估報告,國數據庫廠商占據三席,標志著國內數據庫進入全新發展階段。
同時,Gartner預測,到2022年,世界上3/4的數據庫都會跑在云上,而我們認為,云數據庫的發展,目前正在經歷從第一階段“數據庫上云,即從數據庫到云數據庫”,到第二階段“從云數據庫到云原生數據庫”的變革。
歸根結底,云數據庫做了什么得到了業內的認可?未來數據庫發展趨勢是什么?我們可以如何在新機遇下的云融合時代把握技術創新的脈搏?在當前國產數據庫也成為一個熱門話題之際,我們談一談我們的理解和思考,與大家共勉。
一、云時代的IT基礎技術形態演變
隨著云計算的發展,整個IT基礎技術翻天覆地的變化體現在幾個方面:
IT設施部署,從過去的零散化走向今天的集中化、規模化。過去,每一個企業自建各自的數據中心等IT基礎設施,包括服務器、網絡到操作系統、數據庫等,形成企業市場上零散化的IT設施模式。而今天基于云計算服務,企業IT設施呈現集中化、規模化效應,對效率、性能、成本的要求提升。
IT服務交付,從過去的軟件交付模式走向服務交付模式。過去購買商業化軟件,或者是使用開源軟件產品,基本是通過商業化或開源的方式進行分發,而現在完全變成一個個服務的形式進行交付。這帶來的變化是,用戶不需要再盤算該購買幾臺服務器,而是在具有數據庫使用需求時,直接云上使用即可。
開發方式,將呈現從過去業務進行非常底層的開發以及調用底層API等操作的模式,轉向SaaS化、Severless模式的服務。在云上,開發者可以使用各種各樣的SaaS服務。無論從效率、基礎技術能力等方面來說,這都是一個巨大的變化。
而數據形式及應用場景領域而言,事實上過去的數據形式或應用場景相對單一,以傳統數據庫為例,場景主要集中在了比如金融、運營商、政務等傳統行業領域。隨著互聯網、移動互聯網、產業互聯網的發展,各個行業也正逐步加速其電子化、信息化發展趨勢,應用服務形式呈多樣化發展,使得當前行業的數據形式及應用場景也越來越多樣化,并對底層數據庫能力提出更多的要求和挑戰。過去,行業場景中更多以結構化的數據為主,關系型數據庫可以支撐極大部分場景需求,現在我們可以看到涌現出了許多如NoSQL、Graph圖數據庫等各種類型的數據庫,NoSQL下屬同時還可以細分KV型、文檔型等多種類別,而且整體數據庫類型還有持續增加的趨勢。這是非常合理的現象。也就是說,對于未來數據庫來說,其自身發展也會呈現多樣化的、而且是融合、創新的趨勢。我們知道,按照傳統經驗來說,如果一個技術產品是單一的形態,那么追求的是盡量做到通用化,然而,在當前多樣化需求的趨勢下,技術應用層面需要進行各種權衡和取舍。
因此可以說,這是云時代的發展變化,對數據庫帶來的新的挑戰和要求。在當前云數據庫成為大勢所趨的同時,我們認為,國產云數據庫要發展好,需要持續在基礎能力、成本效率、產品化、未來技術融合等各個層面進行探索突破。
二、云數據庫技術演進的挑戰
結合云計算的特點,國產云數據庫發展面臨著需要持續探索可用性與一致性、高并發性能、彈性可擴展等基礎能力突破,同時面向云時代的多樣化趨勢打造新一代分布式數據庫產品的挑戰和要求。
第一,可用性與一致性。
作為數據庫,高可用性、數據一致性是最基礎的挑戰。高可用性,要求達到99.999%以上;數據強一致性,意味著數據不出錯,數據庫高度可靠。云計算時代,技術設施的升級換代對技術實現方式帶來變革。過去,比如金融行業,系統基于穩定性較高的傳統集中式大型機或小型機來保障系統的可用性與一致性。然而,傳統集中式結構存在明顯的技術邊界,包括性能和吞吐量的邊界,今天它們已然面臨較大的吞吐和性能瓶頸,無法滿足云時代的產業需求。自然地,當前產業趨勢是向分布式架構轉型升級,轉向基于x86等的分布式、開放式平臺。傳統架構系統依賴于大型機或小型機在硬件層面進行的大量的冗余設計,在硬件層面實現可用性與一致性保障。而相對來說,基于x86機器部署的新一代分布式架構系統,則在如何實現性能、無限水平擴展的基礎上保證數據一致以及系統高可用提出新的挑戰要求。
第二,性能成本。
云計算時代,如果實現了規模化以后,還不能實現成本降低的話,是不可接受的。云計算要幫助提升整個社會資源利用率,性能成本需要控制到最低。
對于騰訊云的服務來說,我們需要考慮的是如何能夠保證客戶以最便宜的價格買到最高級的服務——比如花最少的錢買到最大的磁盤空間、以及最好的TPS等產品表現。而在這個過程中,最核心的就是資源利用率。舉個例子,云計算服務商如果把資源利用率提升20%,對客戶、服務商本身而言將能極大地降低一部分成本。
第三,云原生意味著一定是彈性伸縮的。
彈性伸縮,也就是可以根據用戶的實際需求進行資源分配與使用,而不再是過去通過預采購或預分配的方式。過去,客戶大部分都是先預估,然后采購,所以資源利用率一直被詬病;現在則不需要用戶再預估自己未來可能會用到多少資源,而是可以根據實時的使用需求實現彈性伸縮。也因為這樣,通過提高資源利用率,云數據庫才可以實現成本上的優勢。但是,極致彈性伸縮對數據庫在更高程度的SQL支持、分布式事務能力方面,提出了更高的要求。
第四,云數據庫產品化服務化程度。
國內數據庫發展歷程也經歷多個階段,但正是云計算、互聯網的時代興起,國內諸多騰訊這類云廠商得以抓住機會,基于自身業務場景特點和需求,發展新一代數據庫等基礎軟件技術。在過去很多年的時間當中,騰訊非常重看重的一點就是,如何打磨提升整個數據庫的產品化程度,提升用戶體驗,包括技術產品化、服務完善等方面。互聯網廠商基于內部業務場景發展自己的技術體系,這是優勢的一面,而在to B開放的過程中,同時也面臨產品標準化、通用性、使用體驗等挑戰。面向行業客戶提供技術產品,其要求比支撐內部使用高得多。對于傳統企業客戶而言,騰訊云希望提供給到客戶的是一個完整的產品,而不是一個半成品。因此,產品化程度,是騰訊一直持續強調的能力。
第五,海量場景驗證。
最后關鍵的一點是,對于云數據庫而言,包括穩定性、特性需求等基礎能力的發展,核心條件是需要有足夠的應用場景進行打磨。數據庫系統的研發、完善是一個非常復雜的過程,如何讓數據庫得到實踐、得到應用?走到今天,我們認為,持續的、海量的場景打磨,是產品發展的關鍵條件。得益于騰訊自身以及云上各行各業的應用,超過百萬開發者的使用,騰訊云數據庫能夠有足夠的空間打磨產品。這是我們的挑戰,也是推動我們發展的土壤。
這些挑戰是云數據庫發展過程中的必經之路,也是我們在云計算時代創造出新一代分布式數據庫產品的機遇。
三、云數據庫未來關鍵趨勢
基于這些挑戰以及云計算時代賦予的機會,我們認為未來云數據庫發展將包括幾大趨勢要求:
彈性伸縮:解決成本核心問題——資源利用率
前面提到,成本與性能是核心的要素。這里引申出來一個云計算時代的差異,那就是我們需要實現對CPU、內存和磁盤等基礎設施資源的靈活調度。
云數據庫時代我們將通過對極致的彈性伸縮架構探索,來綜合解決性能、效率和成本問題。針對不同的場景側重,云原生分布式數據庫可分為兩種架構:一種是Shared Nothing,一種是Shared Storage,兩者都可以通過實現計算與存儲分離架構來整體獲得更優秀的彈性伸縮能力,克服傳統架構下的存儲量受限、擴展難、主從延遲高等缺點,同時也能夠幫助我們將成本控制得更低,充分釋放領先技術的成本效益。
而計算與存儲全Serverless架構的數據庫服務也是未來可重點關注的方向,它在可自動無感擴縮容的基礎上,同時實現可按實際使用計費,不用不付費,提升云數據庫效用。
多模多引擎趨勢下的數據庫底層與服務超融合
新基建、產業互聯網快速發展,各行各業數字化進程加速,數據形式越來越多樣化,越來越海量,如何能最高效地解決數據庫在性能、成本、服務等方面問題,超融合是必然趨勢。
當下我們處于各行各業都在推進電子化、信息化建設和數字化轉型的趨勢浪潮之下,行業不斷涌現出大量的新興場景。數據庫作為支撐各類IT系統架構的基礎軟件技術,其整個技術形態也隨之出現各類新的應用實現,包括大量的NoSQL實踐,以及存儲領域有傳統的B+ Tree、現在的LSM Tree,和行存、列存等架構形態產品;而根據workload類型區分的話,則涌現出包括OLTP、OLAP,或者兩者混合形成的HTAP型數據庫等。
而多種多樣的引擎產品,在大多數情況下不會獨立存在來服務于一個企業或系統。One size fits none。從技術角度看,極致的性能成本與通用性有著天然的矛盾,因此,在多樣化場景下,一定會是多引擎共存,充分發揮各種引擎的特點與優勢,才能實現極致與通用的兼得。
但是不是作為云數據庫服務廠商,我們把這些各類引擎產品都暴露給客戶、開發者自行選擇呢?從產品服務體驗的角度看,必然不是。多模態技術引擎的現狀必然對開發者選型帶來選型、開發應用上的困難——即如何能夠在保證適應不同的場景下,同時獲得足夠高的性能表現,這也是當前數據庫發展面臨的一個困境。為了解決這個問題,未來我們希望是不需要用戶來進行這些復雜的選擇,而是系統基于AI智能調度、serverless等解決方案,來徹底實現多引擎的統一標準化服務。從底層的角度看,未來開發者無需感知具體的產品選型,而比如在做數據分析的時候,系統能夠自動幫助調度性能最好、事務交易一致性得到保障的方案。
在此基礎上,未來云數據庫服務的趨勢還是交付方式的融合,包括軟硬件一體化、私有云與公有云平臺融合等多種產品和服務交付方案,能夠讓客戶在敏感業務和運營成本之間實現更加精細化管理。
智能化:AI+DB
智能化技術等底層技術生態融合變革,實現數據庫自治與智能管理也是未來數據庫趨勢之一。過去,對于一個企業,也許幾個DBA來管理幾十套實例就足夠了,但比如對騰訊來說,數十萬的數據庫實例,難以通過配置人力來維持運營,因此倒逼我們必須要通過工具或平臺來解決運營效率的問題。此外,當前分布式微服務改造的趨勢下,未來企業IT運營也將具有越來越強烈的自治需求。智能化技術與數據庫底層的融合,能實現對數據庫進行全生命周期智能管理。
加速釋放新硬件紅利
過去一個新硬件的推廣周期很長,很多傳統企業在采購新硬件方面相對非常保守。而對于云廠商來說,相對有條件逐步率先探索新硬件的應用,比如先在非關鍵性應用,同時也具備海量的場景驗證,來實現穩步規模化的推廣。這個角度來說,基于云計算服務,云原生數據庫相對更加容易探索、釋放到新硬件帶來的紅利。
當前我們也處于新硬件創新層出不窮的時代,包括SSD、NVM、RDMA+SPDK、千核服務器、異構處理器等,基于云數據庫服務,廣大的客戶、普通開發者也能夠更快速地享受到新硬件帶來的加持。
因此,融合、自治、效用是未來企業級分布式數據庫基本特點。騰訊云數據庫將從實踐層面對以上趨勢進行落地推進,來滿足各行各業客戶未來對數據庫的多樣性需求。
總結
以上是生活随笔為你收集整理的云时代,我们需要怎样的数据库?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NLP 训练及推理一体化工具(Turbo
- 下一篇: 操作系统与存储:解析Linux内核全新异