摘要:斯坦福教授、Tcl語言發明者John Ousterhout的著作《A Philosophy of Software Design》提出了一個經久不衰的觀點——軟體設計的核心在於降低複雜性。 在新技術不斷涌現的雲時代,出現了一種“技術過載”現象——本應幫助企業提高效率的技術,反倒讓企業心生焦慮, ...
摘要:斯坦福教授、Tcl語言發明者John Ousterhout的著作《A Philosophy of Software Design》提出了一個經久不衰的觀點——軟體設計的核心在於降低複雜性。
在新技術不斷涌現的雲時代,出現了一種“技術過載”現象——本應幫助企業提高效率的技術,反倒讓企業心生焦慮,企業擔心不會用、用不好,這在資料庫領域體現得十分突出。
資料庫是現代企業的核心系統,隨著雲計算從根本上改變IT產業的格局,資料庫重構突然變成了“容易”的事。“事出反常必有妖”,為了重構而重構的資料庫,給企業和開發者們帶來了新的挑戰。
他們要面對不同資料庫的複雜理念和運維,這些複雜性不應該被讓渡到使用者的層面。
斯坦福教授、Tcl語言發明者John Ousterhout的著作《A Philosophy of Software Design》提出了一個經久不衰的觀點——軟體設計的核心在於降低複雜性。
資料庫可謂是最複雜的關鍵基礎軟體之一,關於如何降低資料庫複雜性的思考,在當下變得十分應景。書中提到的一些方法,例如分層、抽象和複雜性下沉,正在先行者華為云云原生資料庫GaussDB身上得到新的演繹,也推動著雲原生資料庫走向下一階段。
分層和抽象之後
在軟體領域,分層和抽象的邏輯並不陌生,電腦體繫結構、TCP/IP網路協議等都是這種理念的體現,在雲計算領域,IaaS、PaaS、SaaS是雲計算平臺的三層能力,實際上就是雲對傳統IT的分層和抽象。
IaaS讓開發者不必考慮計算、存儲和網路等資源調度,PaaS提供中間件和豐富的平臺能力,SaaS提供開箱即用的應用,從IaaS到SaaS,抽象的程度越來越高,使用者關心的技術細節也就越來越少,正如現在幾乎沒有人關註電腦體系機構和TCP/IP網路協議一樣。
資料庫的雲原生化,就是一個不斷提高抽象程度的過程,資料庫廠商希望藉此降低複雜性。
此前,傳統資料庫或者新誕生的雲原生資料庫,都在貼近雲技術進行改造和重塑,開發者對後端資源的關註有所降低,但這依然不足以讓雲原生資料庫的複雜性降低到令人滿意的水平。
華為雲資料庫服務產品部總經理蘇光牛
華為雲資料庫服務產品部總經理蘇光牛表示,從雲化到雲原生化,過去更多是做服務化,今天更多是對資料庫內核進行重構,實現基於雲的架構來構建、真正的“生於雲、長於雲”的資料庫。
譬如從產品方面來講,傳統資料庫基於單機主備架構來構建,要做到雲化,需要對產品的整體架構做重構,貼合雲的各種技術棧來進行,例如:分散式存儲和對象存儲,容器化等基礎技術。
再從商業模式來講,資料庫雲化需要改變客戶使用傳統資料庫的模式,重點從按需的使用模式出發,端到端的客戶體驗的優化,比如Serverless模式,這是簡單的資料庫服務化做不到的,從IaaS的資源調度到Serverless,就是抽象程度提高的典型例子。
新的階段,資料庫所面臨的挑戰有四個方面,時效性、可用性、多模融合和性價比,錶面看起來似乎還是那些要求,但是要求資料庫廠商對技術的把握和業務的理解,再上一個臺階。
A Philosophy about “less”
John Ousterhout告訴我們,如果一定要在某個層次處理複雜性,這個層次越低越好,資料庫的複雜性和下層功能相關,下沉之後能夠解決其他層次和整體的複雜性,華為雲便是這麼做的。
華為雲認為,未來的雲資料庫需要做三大轉變,第一是從關註資源的規劃部署,轉變為聚焦應用如何更好地使用;第二是從關註數據的物理部署,轉變為如何讓數據全域可用;第三是從關註多個分離模型的數據轉變為多模融合,從關註單一交易或分析業務(TP或者AP)負載,轉為HTAP一體化負載,資料庫根據業務類型和負載自動選擇合適的引擎來處理。
為了實現這些轉變,資料庫領域需要引入新的技術,實現雲原生資料庫的Serverless、Regionless、Modeless,也是華為雲GaussDB的技術哲學——A Philosophy about “less”,讓複雜的事情簡單化。
蘇光牛提到,Serverless讓應用彈性透明地調度和無損透明切換成為可能,過去的Serverless主要是單機伸縮和無狀態管理,可能會引起業務中斷、受損,雲原生Serverless將從通用場景出發,實現失耦狀態的常態管理。
Regionless讓數據全域可用,用戶只需要關註流量從哪裡來,用戶從哪裡訪問,資料庫將數據分佈到不同的Region,應用就近、隨時隨地訪問數據。全球分佈統一管理的資料庫管理系統和資料庫的部署能力,將成為資料庫的核心競爭力。
Modeless帶來資料庫極簡體驗,傳統的資料庫只能支持單一負載或者單一模式(KV、文檔、時序、寬表等),而企業的應用在融合,交易和分析任務兼有,還有圖像和地理信息。
GaussDB分別採用HTAP和多模資料庫技術,一個入口處理多樣負載、一個入口處理多種數據類型,有效地避免了傳統解決方案的抽取、轉換和裝載繁瑣的過程,實現一站式處理,業務接入效率可從數月縮短至數天。
可以看出,為瞭解決資料庫的複雜性問題,華為雲下沉到了更深一層,Serverless是更進一步的資源抽象,Regionless是更進一步的空間抽象,Modeless是更進一步的模型抽象,三者都實現了雲原生化細顆粒度的解決方式。
“無感知”的資料庫
“Less is more”,抽象的程度越高,使用者就越不必關心具體技術和細節,但這並不意味著資料庫技術難度降低,相反,資料庫廠商把複雜做成簡單,內斂比外化要難得多。
例如華為雲無感知的資源調度框架AST,智能判斷用戶負載,實時匹配負載資源將用戶成本降到最低;全域數據分層引擎GTE,將部分不常用數據放到低成本的對象存儲上,GTE引擎還能支持多個實例共用一份數據同時讀取;NDPQ近存儲並行查詢技術,把一些運算元下推到存儲上進行計算,計算節點和存儲節點都能夠進行本地處理,減少網路帶寬傳輸,提高業務效率。
資料庫的複雜性下沉,既是技術的下沉,華為雲GaussDB將複雜性下沉到離用戶更遠的一層,也是場景應用的下沉,讓資料庫去適配應用開發者的習慣,企業用戶離DaaS(Database as a Service)才能越來越近。
華為從2007年就開始研發記憶體資料庫,起初是因為電信領域對數據的要求極高,市場上找不到能與之較好契合的資料庫。後來隨著華為業務的發展,華為不斷投入資源研發資料庫,打造了一系列資料庫產品。
蘇光牛提到,華為本身對資料庫的要求就是全方位的,包括:華為自身的IT系統、華為成熟的ICT業務以及華為的互聯網業務、終端雲等需求,GaussDB既要滿足金融政企對資料庫的嚴苛訴求,也要滿足互聯網行業這樣典型的To C類業務訴求,這是華為雲資料庫區別於其他廠商的關鍵。
因此,GaussDB一開始就瞄準全行業不同場景,與雲平臺的技術能力深度結合,把雲原生資料庫的彈性、極簡體驗做到極致,這也是資料庫的未來,企業無需關註資料庫的類型,即可擁有無感知的體驗。
例如華為運動健康App,全球範圍內用戶數超4億,月活躍用戶數超過9000萬,它選擇了華為雲GaussDB(for Cassandra),存算分離架構可以很好滿足業務海量併發的需求,同時具備快速擴容能力,高峰期承載上千萬QPS,最大能夠支持百億行的表。
互聯網應用重視資料庫的性價比,且對彈性擴展的靈活性要求高,GaussDB(for Cassandra)能夠保證業務高併發運行的同時,實現低時延,很好地滿足了穿戴設備數據寫入的需求。
再如永安保險,保險業務對資料庫的擴展性、性能等要求極高,更要滿足數據安全與災備監管要求,新時代業務敏捷創新與上線,呼喚雲化開放架構和分散式技術,永安保險希望找到“一專多能”的雲原生資料庫。
華為雲GaussDB(for MySQL)和數據複製服務DRS,支持主流商業資料庫生態,全棧工具鏈助力切換主流商業資料庫,業務無需改造,資源彈性擴容能力強,且華為雲DRS簡單易用、安全可靠,實現了永安保險意外險和健康險業務的高效上雲。
保險業務屬於金融場景,是資料庫領域的核心地帶之一,在雲原生時代的大背景下,以華為雲GaussDB整體為代表的“新”資料庫,正在挑戰Oracle和IBM DB2等為代表的“舊”資料庫,新與舊的博弈,最終由客戶業務場景來評判,雲原生資料庫正在攻城略地。
在全方位場景化的驅動下,華為雲資料庫凝練出自己的發展方向,讓企業客戶不必糾結於複雜的技術,儼然也成為雲原生資料庫行業的風向標,雲原生資料庫的成熟態,行且將至。