華為云云原生資料庫:A Philosophy about “less”

来源:https://www.cnblogs.com/huaweiyun/archive/2023/01/18/17059293.html
-Advertisement-
Play Games

摘要:斯坦福教授、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等為代表的“舊”資料庫,新與舊的博弈,最終由客戶業務場景來評判,雲原生資料庫正在攻城略地。

在全方位場景化的驅動下,華為雲資料庫凝練出自己的發展方向,讓企業客戶不必糾結於複雜的技術,儼然也成為雲原生資料庫行業的風向標,雲原生資料庫的成熟態,行且將至。

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 用.net6開發一個Winform程式,處理Excel文件,並把結果導出Excel文件。 要用到兩個演算法,一是turf.js庫的booleanPointInPolygon方法,判斷經緯度坐標是否在區域內;二是經緯度糾偏演算法,因為對方給的區域坐標集合有偏移,需要糾偏。 這兩個演算法,網上找C#的實 ...
  • 作者:小牛呼嚕嚕 | https://xiaoniuhululu.com 電腦內功、JAVA底層、面試、職業成長相關資料等更多精彩文章在公眾號「小牛呼嚕嚕」 大家好,我是呼嚕嚕。我們都知道現代電腦採用 0 和 1 組成的二進位,來表示所有的信息。那大家是不是有時候會有這些疑問:為什麼電腦採用了 ...
  • 前言 我們在學習 51 單片機的過程中會用到延時,比如一個簡單的流水燈就需要延時來控制依次點亮的時間,或者一些模塊在單片機發出讀數據指令後,需要延時幾十微秒才可以讀出數據等等,這些都離不開延時,所以我們需要一個精準的延時函數來滿足我們的需求。 本篇介紹一個最簡單並且延時最精準的 51 單片機延時函數 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者: 葉金榮 文章來源:GreatSQL社區原創 如何快速臨時禁止某賬戶登入 角色ROLES管理需要先激活 關於授權的其他幾點補充 如何複製/復用賬戶 ...
  • GreatSQL社區原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。 GreatSQL是MySQL的國產分支版本,使用上與MySQL一致。 作者: JennyYu 文章來源:GreatSQL社區原創 前言 兩表使用nest loop(以下簡稱NL)方式進行連接,小表驅動大表效率高,這似乎是大 ...
  • 摘要:華為雲EI DTSE技術佈道師王躍,針對統計信息對於查詢優化器的重要性,GaussDB(DWS)最新版本的analyze當前能力,與開發者和伙伴朋友們展開交流互動,幫助開發者快速上手使用統計信息的自動收集功能。 在本期《統計信息大揭秘——SQL執行優化之密鑰》的主題直播中,我們邀請到華為雲EI ...
  • 摘要:近日,中國信息通信研究院(簡稱“中國信通院”)公佈了第十五批“可信資料庫”評測結果。華為雲GaussDB(for MySQL)憑藉過硬的技術實力順利通過“HTAP資料庫基礎能力評測”。 本文分享自華為雲社區《華為雲GaussDB(for MySQL)通過中國信通院“可信資料庫”評測》,作者:G ...
  • 彙總數據 聚集函數 聚集函數(aggregate function) 運行在行組上,計算和返回單個值的函數。 | 函 數 | 說 明 | | : | : | | AVG() | 返回某列的平均值 | | COUNT() | 返回某列的行數 | | MAX() | 返回某列的最大值 | | MIN() ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...