華為云云原生資料庫: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
  • 一:背景 1. 講故事 年前遇到了好幾例托管堆被損壞的案例,有些運氣好一些,從被破壞的托管堆記憶體現場能觀測出大概是什麼問題,但更多的情況下是無法做出準確判斷的,原因就在於生成的dump是第二現場,借用之前文章的一張圖,大家可以理解一下。 為了幫助更多受此問題困擾的朋友,這篇來整理一下如何 快狠準 的 ...
  • 前言 .NET6 開始,.NET Croe API 項目取消了 Startup.cs 文件,在 Program.cs 文件的 Main 函數中完成服務的註冊和中間件管道的管理。但當我們項目引入更多包的時候,Program.cs 文件也會看起來很臃腫。 而且,我們不只會有一個後端項目,為了方便快速創建 ...
  • 目錄 背景 get 與 post 的區別 所有介面都用 post 請求? 背景 最近在逛知乎的時候發現一個有趣的問題:公司規定所有介面都用 post 請求,這是為什麼? 看到這個問題的時候其實我也挺有感觸的,因為我也曾經這樣問過我自己。在上上一家公司的時候接到一個項目是從零開始搭建一個微服務,當時就 ...
  • *以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「englyf」https://mp.weixin.qq.com/s/2GFLTstDC7w6u3fTJxflNA 本文大概 1685 個字,閱讀需花 6 分鐘內容不多, 但也花了一些精力如要交流, 歡迎關註我然後評論區留言 謝謝你的 ...
  • 在新版本的pandas中,上述代碼會引起警告,建議改成SQLAlchemy connectable(engine/connection),後續代碼將引入這種升級的連接方式。 ...
  • 幾乎所有的高級編程語言都有自己的垃圾回收機制,開發者不需要關註記憶體的申請與釋放,Python 也不例外。Python 官方團隊的文章 https://devguide.python.org/internals/garbage-collector 詳細介紹了 Python 中的垃圾回收演算法,本文是這篇 ...
  • 如果您想查找高於或低於平均值的數字,可以不必計算該平均值,就能查看更高或更低的值。通過Java應用程式,可以自動突出顯示這些數字。除了快速突出顯示高於或低於平均值的值外,您還可以查看高於或低於的值的個數。現在讓我們看看如何在 Java應用程式中實現此操作。 引入jar包 導入方法1: 手動引入。將  ...
  • 第一種方式:使用{} firstDict = {"name": "wang yuan wai ", "age" : 25} 說明:{}為創建一個空的字典對象 第二種方式:使用fromkeys()方法 second_dict = dict.fromkeys(("name", "age")) #valu ...
  • 在golang中可以使用a := b這種方式將b賦值給a,只有當b能進行深拷貝時a與b才不會互相影響,否則就需要進行更為複雜的深拷貝。 下麵就是Go賦值操作的一個說明: Go語言中所有賦值操作都是值傳遞,如果結構中不含指針,則直接賦值就是深度拷貝;如果結構中含有指針(包括自定義指針,以及切片,map ...
  • 本文結合京東監控埋點場景,對解決樣板代碼的技術選型方案進行分析,給出最終解決方案後,結合理論和實踐進一步展開。通過關註文中的技術分析過程和技術場景,讀者可收穫一種樣板代碼思想過程和解決思路,並對Java編譯器底層有初步瞭解。 ...