李飛飛,阿里巴巴集團副總裁、高級研究員,阿里雲智能資料庫事業部總負責人
上世紀80年代初,資料庫系統逐步走上信息技術舞臺的中央;2000年開始,大數據技術興起;再到2010年後,雲計算熱度持續升溫;技術的進程走到了今天這個奇妙的節點,看向未來有幾個趨勢可能會發生。
僅以此文,分享一些淺見和實踐。
三段交叉的技術史
過去40年,資料庫系統、大數據和雲計算三項技術交替興起。
首先是資料庫系統,成型於上個世紀80年代,是計算機領域三大基礎軟體系統之一。早期的關係型資料庫以甲骨文資料庫為代表,取得了巨大的商業成功。後來出現了MySQL、PostgreSQL等開源的關係型資料庫。
90年代,隨著關係型資料庫的廣泛應用,產生了大量的數據,分析這些結構化的數據對分析型的資料庫系統提出了很高的要求,因而在90年代湧現出了一批分析型資料庫系統。
世紀更迭,2000年到2010年,大數據技術走上歷史舞臺的時代。大數據技術誕生的原因有以下兩方面:
一是大數據的產生。隨著以谷歌為代表的網際網路公司的發展,產生了大量數據。
二是獲取、處理、分析數據的方式不一樣。比如說銀行最簡單的交易、轉帳,對隔離、一致性、持久性有非常嚴格的要求,大數據不一樣,單一數據對最終結果沒有特別影響,這種應用場景和傳統的聯機交易關係型資料庫完全不同。
於是,大數據系統應運而生。谷歌發表了耳熟能詳的分布式文件系統、分布式表格存儲、MapReduce三大論文,奠定了今天大數據的整個技術生態圈的基石。
2010年後,另一個趨勢是雲計算的熱度逐漸升溫。雲計算的本質就是利用分布式技術將資源高效池化,而對應用做到透明的集中式部署。
把雲計算、資料庫以及大數據發展結合起來看,數據系統本質上就是對數據從生產到處理、消費、存儲的一個全鏈路的過程。
雲計算對數據處理系統產生了非常大的影響:
第一, 雲原生技術在數據處理系統深入的應用;
第二, 傳統的關係型資料庫和傳統大數據生態正在快速發生融合。
業界發展的趨勢,是資源的池化、資源解耦,以雲原生、分布式的技術為基礎,打造下一代的數據處理系統。舉例來說,阿里雲資料庫之所以能夠支撐雙11,也是在不斷實踐基於這些理念的思考。
以雙11為例,第一張圖是歷年雙11的零點交易峰值的曲線,最新的2020年雙11的零點峰值是58萬筆/秒。每一筆交易還會有一個拆單的動作,到資料庫系統就是每秒幾百萬TPS。
第二張圖是系統零點負載的瞬間變化曲線,一秒鐘時間內系統負載瞬間爆發了145倍。如果不是利用雲原生的技術,簡單依賴傳統技術根本無法滿足這種高並發、彈性、高可用的要求。
幾個重要趨勢
從架構的角度來看,資料庫系統的變化如下圖所示:
左邊是傳統的馮諾依曼架構,右邊是分布式架構,中間是雲原生的架構,背後大量利用了分布式技術。這種資源池化帶來的彈性、高可用的能力顯而易見。
這是今天三種不同的架構,有以下幾個趨勢:
大數據和資料庫一體化雲原生和分布式技術結合智能化多模數據處理軟硬體一體化:例如,利用高速網絡等來提升數據處理系統的性能和效率安全可信:例如,如何確保數據不可更改
結合阿里雲資料庫的核心技術,把以上背景、趨勢實例化:
1
雲原生關係型資料庫PolarDB
每個數據塊分成三個物理節點,不用關心分布式帶來的挑戰。比如分庫分表、分布式的查詢,對應用完全透明,讀寫一份數據,做到了分布式技術透明化、集中式部署。
PolarDB的存儲與計算架構分離,能在分鐘級別部署一個新的計算節點,或者擴容存儲節點。同時,在性能上做了大量的優化,非常好地兼容了生態,比如100%兼容MySQL和PostgreSQL,高度兼容Oracle。
其性價比在商業資料庫中有非常大的競爭優勢,在實際的客戶案例裡,利用PolarDB Oracle兼容版替換現有的Oracle,在性能一樣的前提下,整體成本不到原來的三分之一。
除了雲原生的架構,也有分布式架構版的PolarDB-X。在每個分區裡面做這種三節點的架構,同時,三節點利用協議做數據的一致性保障,而且三節點可以做到同城跨AZ部署。
2
一體化設計是下一代數據分析系統的核心理念
下一代的系統是將雲原生技術和分布式技術合二為一:上面是分布式,而下面是雲原生的方式實現。每個分區都可以享受雲原生帶來彈性、高可用的能力,同時,上面有分布式帶來的水平拓展的能力,解決高並發可能帶來的瓶頸問題。
3
雲原生數據倉庫AnalyticDB
雲原生的數據倉庫本質上也是雲原生的架構,存儲池化、計算池化、存儲計算分離,同時實現海量存儲彈性、輕量化部署。
利用這些技術實現數據處理和計算分析的離在線一體化、資料庫與大數據一體化。如同現實生活中的倉庫,所有物品要分門別類放好。所以,數據倉庫比較適合已經範式化的數據格式、業務類型比較固定的場景,性價比非常高。
這是我們在雲原生數倉方面做的一些工作,我們也利用這套架構研發了AnalyticDB(ADB),支持了淘寶天貓對實時交易數據進行在線交互式分析和計算的需求,同時支持複雜的離線ETL與在線分析的融合。
4
數據湖
數據湖,「湖底」的數據參差不齊,「湖面」卻是平的。不同於數據倉庫,數據湖的存儲是多源異構的,只需要有一個統一的界面對這些數據進行分析、處理。
我們打造了一個雲原生的Serverless數據湖解決方案DLA——基於對象存儲,對多源異構的數據存儲進行統一的計算和分析,利用雲原生的Serverless技術,可以用非常低的成本實現彈性高可用的能力,並且滿足安全性的要求。
5
多模、智能化和安全可信
在管控這一層實現異常檢測、安全診斷,通過K8S這套編排技術,把多源異構的資源管理起來,打造智能化的運維管控平臺。
我們做了全加密的資料庫,數據進入內核以後不需要解密。利用安全硬體技術做了全加密的流程和保護,實現了不解密也能進行數據加工和處理。
數據業務的多樣化帶來了除了結構化數據之外的多模數據,例如文本、時序、圖片、圖數據等非結構化數據。針對多模數據,我們設計研發了基於雲原生架構的多模資料庫Lindorm以及雲原生內存資料庫Tair來支持多模數據處理。
最後是生態工具,從傳輸、備份到管理。傳輸採用DTS,做端到端數據的同步,用DBS數據備份做多雲多端的邏輯備份、物理備份,DMS做企業級的開發建模流程,ADAM做針對基於傳統資料庫和數據倉庫開發的應用評估和遷移。
今年疫情期間,各行各業有一個非常大的變化——傳統的離線業務和在線業務在快速融合,線上線下的邊界越來越模糊。這帶來的挑戰是,業務波峰波谷的變化越來越劇烈。這是疫情帶來的必然變化,數位化的轉型也是一個必然發生的事實。
這種背景下,阿里雲原生資料庫PolarDB、雲原生數據倉庫AnalyticDB,不僅支持了雙11,更在疫情期間服務了各行各業,尤其是在線教育、遊戲等傳統的線上線下邊界越來越模糊的行業。