李飞飞:云原生分布式数据库面临哪些机遇与挑战?
一 背景與趨勢
云計算加速數據庫系統演進
首先我們看一下云計算的發展給數據庫系統帶來了哪些變化?數據庫系統是計算機領域三大基礎軟件系統之一,操作系統、編譯系統、數據庫系統。上世紀80年代初,數據庫系統開始走上了歷史舞臺,早期的關系型數據庫以甲骨文為代表,取得了巨大的商業成功。后來出現了開源的關系型數據庫,比如MySQL、Postgres等。到90年代,隨著關系型數據庫的廣泛應用,產生了大量的數據,分析這些結構化的數據對分析型的數據庫系統提出了很高的要求。這就是為什么在90年代涌現出了一批分析型數據庫系統。世紀更迭,2000年到2010年左右的這段時間是大數據技術走上歷史舞臺的時代。
數據倉庫加速從BigData向Cloud-Native+FastData演進
大數據技術之所以會誕生,其原因可以總結為兩個方面:
- 大數據的產生。隨著互聯網技術的蓬勃發展,尤其是以谷歌為代表的互聯網公司,產生了大量的數據。谷歌做搜索推薦引擎,最核心的是不斷的爬取全世界所有的網頁,動態地對這些網頁之間的關聯關系進行分析、處理。
- 獲取、處理、分析數據的方式不一樣。比如說銀行最簡單的交易、轉賬,對隔離、一致性、持久性都有非常嚴格的要求。大數據就不一樣,做搜索引擎,少爬一個網頁,或者計算的時候沒有把這個網頁的影響算進去,對最終的搜索結果會有一點影響,但不是特別重要。所以,這種應用場景和傳統的聯機交易關系型數據庫里面的強要求是完全不同的。
這時候大數據系統就出現了,谷歌發表了耳熟能詳的分布式文件系統、分布式表格存儲、MapReduce三大論文,這奠定了今天大數據的整個技術生態圈的基石。從2010年往后,我們又看到另外一個趨勢,就是云計算的熱度在這個時候逐漸升溫,對我們的數據處理系統產生了一個非常大的影響。我們看到云原生技術在數據處理系統深入的應用,我們看到傳統的關系型數據庫和傳統大數據生態正在快速發生融合。
每個人都在講云計算,如何深入理解云計算這個概念呢?今天整個計算機領域的技術架構是基于60年代誕生的馮諾依曼架構的,其最核心的是兩個部分,計算和存儲,計算和存儲是緊耦合在一起的。從馮諾依曼架構一直到云計算出現之前,所有的計算體系都是基于這樣的架構來實現的。比如一臺服務器如果CPU資源不夠了,要做高并發處理,需要再加一臺服務器。可能內存原本已經夠用了,但是為了擴容計算資源帶來了一定存儲空間的浪費。在對IT資源做預算的時候,就需要按照今年接下來的業務的高峰的峰值評估系統容量,不然系統無法支撐業務,但是這樣預算成本是浪費的。
這時候云計算出現了,云計算的本質就是利用分布式技術將資源高效池化,而對應用做到透明的集中式部署。
把云計算、數據庫、以及大數據發展結合起來看,數據系統本質上就是對數據從生產、處理、消費、存儲的一個全鏈路的過程。可以看到業界發展的趨勢,資源的池化,以云原生、分布式的技術為基礎,打造下一代的數據處理系統。我們之所以能夠支撐雙11,也是因為我們在不斷的實踐基于這些理念的一些思考。
數據庫挑戰(雙11)
第一張圖是我們歷年雙11的零點交易峰值的曲線,最新的2020年雙11的零點的峰值是58萬筆/秒。每一筆交易還會有一個拆單的動作,到數據庫系統就是每秒幾百萬TPS。第二張圖是我們系統零點負載的瞬間變化曲線。可以看到在一秒鐘時間內系統負載瞬間爆發了145倍。
如果我們不是利用這種云原生的技術,只是簡單依賴傳統技術,是無法滿足這種高并發、彈性、高可用的要求的。
我們阿里云利用這些技術在全球的數據庫市場也取得了一些成績。如今在云數據庫這個市場營收份額是亞太第一,世界第三。剛發布的2019年到2020年的市場調查結果表明,我們已經進入了領導者象限,這也是中國的基礎軟件領域第一次進入領導者象限。最右邊是市場份額,也是第一次在線下+線上的模式里面超過了甲骨文。
全球云數據庫市場格局
看一下業界的趨勢。甲骨文是大家都知道傳統的數據庫廠商,它把傳統的基于IOE架構快速向云化發展,也是基于云原生的技術。Snowflake這家軟件公司近幾年發展迅猛,本質上也是做了資源池化、存儲池化、存儲計算分離。它把一些傳統的數據庫能力和傳統大數據的能力融合在一起,而底下資源池化。此外,還支持多云部署。這是Snowflake成功的幾個關鍵的因素。
數據庫發展趨勢 (云原生企業級一體化、數據庫大數據一體化)
從架構的角度來講,數據庫系統有哪些變化?最左邊就是傳統的馮諾依曼架構。最右邊是分布式架構。中間就是我們講的云原生的架構,背后大量的利用了分布式技術。這種資源池化帶來的彈性、高可用的能力是顯而易見的。
數據庫系統架構演進
這是今天三種不同的架構,我們認為有這么幾個趨勢:
- 大數據和數據庫一體化的趨勢
- 云原生和分布式技術結合的趨勢
- 智能化的趨勢
- 軟硬件一體化,比如利用高速網絡等來提升數據處理系統的性能和效率
- 安全可信,如何確保數據不可更改
這是下一代數據庫的幾個核心技術:
下一代企業級數據庫關鍵技術
二 核心技術及產品
1 企業級云原生分布式數據庫
下面結合我們的核心技術把這些背景、趨勢實例化。
云原生關系型數據庫PolarDB
第一個是云原生關系型數據庫PolarDB。
云原生關系型數據庫PolarDB
每個數據塊也是分成三個物理節點,雖然下面大量使用分布式技術,但是不用關心分布式帶來的挑戰,比如說分庫分表、分布式的查詢,因為對應用是完全透明的,讀寫的是一份數據,做到了集中式部署。另外存儲計算分離,在分鐘級別部署一個新的計算節點,或者擴容存儲節點。同時在性能上做了大量的優化,非常好的兼容了生態,比如說100%兼容PG,高度兼容甲骨文。性價比在商業數據庫中有非常好的競爭優勢,在實際的客戶案例里面,利用PolarDB甲骨文兼容版替換掉現有的甲骨文,在性能一樣的前提下,整體成本不到原來的三分之一。
-
兼容生態
- 100%兼容 MySQL 5.6, 5.7 and 8.0
- 100%兼容 PostgreSQL 11
- 高度兼容Oracle
-
存儲計算分離
- 5分鐘添加只讀實例
- 15分鐘Scale Up
-
智能負載均衡
- 透明讀寫分離
- 自定義應用訪問路徑
-
分布式共享存儲
- 100TB存儲空間
- 分鐘備份數TB數據
-
用戶態I/O stack + NVM + RDMA
- 最高6倍社區開源MySQL性能,100萬QPS/秒
-
基于Redo log復制
- 備庫/只讀實例數據同步毫秒級延時
云原生分布式數據庫PolarDB-X
除了云原生的架構,也有分布式架構版的PolarDB。在每個分區里面做這種三節點的架構,同時三節點是利用協議去做數據的一致性保障,而且三節點可以做到同城跨AZ部署。
云原生分布式數據庫PolarDB-X
新一代云原生分布式數據庫系統
下一代的系統是將云原生技術和分布式技術合二為一,上面是分布式,而下面是云原生的方式實現,帶來的好處就是每個分區享受到了云原生帶來彈性、高可用的能力,同時上面有分布式帶來的水平拓展的能力,解決高并發可能帶來的瓶頸問題。
新一代云原生分布式數據庫系統
2 云原生數據倉庫與數據湖
再看看數據庫領域發生的一些其他的變化,比如說數據倉庫。
一體化設計成為下一代數據分析系統的核心理念
云原生數據倉庫
云原生的數據倉庫本質上也是云原生的架構,存儲池化、計算池化、存儲計算分離。同時實現海量存儲彈性,輕量化部署。就像現實生活中的倉庫,所有物品都要分門別類放好,所以數據倉庫是比較適合已經范式化的數據格式、業務類型比較固定的場景,性價比非常高。這是我們在云原生數倉方面做得一些工作,我們也利用這套架構支持了淘寶天貓對實時交易數據進行在線交互式分析和計算的需求。
云原生數據倉庫
AnalyticDB 云原生數據倉庫
數據湖
另外一個概念叫數據湖。湖面很平,湖底其實是參差不齊的,所以不同于數據倉庫,數據湖的存儲是多源異構的,只需要有一個統一的界面對這個數據進行分析、處理。我們打造一個云原生的數據湖解決方案,基于對象存儲,對多源異構的數據存儲進行統一的分析,非常低成本的實現彈性高可用的能力,并且滿足安全性的要求。我們集團各個業務之間,可能需要訪問一份數據,但是計算要進行隔離。云上很多用戶有這種需求,可以用云原生的數據湖的產品和解決方案去滿足這種彈性、高可用的場景。
DLA 云原生數據湖分析 (Serverless,統一元數據+開放存儲與分析計算)
3 智能化、安全可信與生態工具
智能化
我們在管控這一層去實現異常檢測、安全診斷,我們通過K8S這套編排技術,把多源異構的資源管理起來,打造智能化的運維管控平臺。
云原生+智能化數據庫管控平臺
安全可信
我們做了全加密的數據庫,數據進入內核以后不需要解密。今天的安全體系里面還有一個關鍵的薄弱點,就是數據進入大數據系統進行計算分析的時候必須進行解密。我們利用安全硬件技術做了全加密的流程和保護,實現了不解密也能進行數據加工和處理。
全加密云數據庫- ApsaraDB RDS Encrypted
數據庫生態工具
從傳輸、備份到管理,傳輸采用DTS,做端到端數據的同步,用DBS數據備份做多云多端的邏輯備份、物理備份,DMS做企業級的開發建模的流程。這一整套搭建起了阿里巴巴在雙11的核心鏈路,比如各個單元之間的數據同步,核心數據的容災備份,用DBS做數據的開發、管理,通過DMS做保障,這就是雙11背后的數據庫系統技術實踐。
多云多端+混合云:數據高速公路,遷移、管理、備份、建倉
三 最佳實踐
今年的疫情期間看到各行各業的一個非常大的變化,傳統的離線業務和在線業務有一個快速融合,線上線下的邊界越來越模糊。這帶來的挑戰是,業務的波峰波谷的變化越來越劇烈。這是疫情帶來必然的變化。數字化的轉型是一個必然存在的事實。這種背景下,我們云原生數據庫、云原生數據倉,支持了不僅是雙11,還有疫情期間各行各業尤其是在線教育、游戲等這些傳統的線上線下邊界變得越來越模糊的行業。
阿里云數據庫技術對抗新冠疫情
原文鏈接:https://developer.aliyun.com/article/780822?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的李飞飞:云原生分布式数据库面临哪些机遇与挑战?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年度盘点出炉!技术好文一口气读完
- 下一篇: DTCC 2020 | 阿里云叶正盛: