跨越數(shù)據(jù)庫發(fā)展鴻溝,談分布式數(shù)據(jù)庫技術(shù)趨勢

2021-03-08    分類: 網(wǎng)站建設(shè)

一、金融行業(yè)架構(gòu)轉(zhuǎn)型需求

隨著移動化與互聯(lián)網(wǎng)化的不斷發(fā)展,我國金融行業(yè)的商業(yè)模式與技術(shù)體系已經(jīng)逐漸走上了與西方世界完全不同的道路。眾所周知,歐美國家的移動化普及率遠(yuǎn)遠(yuǎn)不如我國,同時人口基數(shù)也有著數(shù)量級的不同。這就使得國內(nèi)外金融行業(yè)所面臨的業(yè)務(wù)類型、數(shù)據(jù)量、并發(fā)量都存在巨大的差異,導(dǎo)致對整個IT基礎(chǔ)設(shè)施的需求截然不同。

在最近的一兩年中,國內(nèi)部分科技的銀行已經(jīng)率先對微服務(wù)與分布式技術(shù)進(jìn)行了探索,一些新建的互聯(lián)網(wǎng)金融類業(yè)務(wù)也已經(jīng)開始嘗試使用微服務(wù)架構(gòu)、分布式技術(shù)、DevOps框架進(jìn)行應(yīng)用的開發(fā)與維護(hù)。甚至一些銀行在規(guī)劃下一代核心體系架構(gòu)時,也會嘗試適當(dāng)引入分布式架構(gòu),以滿足未來業(yè)務(wù)壓力與數(shù)據(jù)量不斷增長的需求。

與新一代分布式架構(gòu)相比,中間件加數(shù)據(jù)庫的傳統(tǒng)“煙囪式”架構(gòu)在面向海量數(shù)據(jù)、高并發(fā)、高響應(yīng)速度的業(yè)務(wù)應(yīng)用時存在諸多問題。

  • 從業(yè)務(wù)部門和系統(tǒng)來看,復(fù)雜的業(yè)務(wù)導(dǎo)致企業(yè)中系統(tǒng)數(shù)量多、分散、數(shù)據(jù)之間完全隔離無法共享;
  • 系統(tǒng)缺乏靈活的水平伸縮能力,性能瓶頸明顯,很容易遇到硬件瓶頸,無法滿足彈性擴張的業(yè)務(wù)需求;
  • 系統(tǒng)無法快速響應(yīng)順勢爆發(fā)的海量請求,例如雙十一期間、秒殺等業(yè)務(wù)導(dǎo)致的瞬時爆發(fā)性增長很難處理;
  • 采購和運維成本高昂,小型機設(shè)備與軟硬件分別采購獨立運維,導(dǎo)致整體擁有成本高昂;
  • 缺乏自主掌控能力,高度依賴國外的廠商,出了嚴(yán)重問題本地支持團隊很難在短時間內(nèi)解決問題,導(dǎo)致生產(chǎn)運營風(fēng)險增加。

二、銀行架構(gòu)演進(jìn)歷程

在過去的近二十年間,我國銀行的IT架構(gòu)歷經(jīng)了幾個階段的變化。我國的第一代銀行核心系統(tǒng)構(gòu)建在大型機之上,采用的是典型的大集中架構(gòu)。

而隨著SOA概念的提出,一些銀行也開始逐漸進(jìn)行了去大機化,將核心業(yè)務(wù)系統(tǒng)從主機或400下移到UNIX小型機。虛擬化技術(shù)的增強使得一些銀行和金融機構(gòu)在其基礎(chǔ)架構(gòu)中引入虛擬化機制,將開發(fā)環(huán)境以及一些生產(chǎn)環(huán)境的應(yīng)用程序部署在虛擬機上。

如今,很多銀行都已經(jīng)基于分布式與PC服務(wù)器架構(gòu)建設(shè)了大數(shù)據(jù)平臺,而一些基于微服務(wù)體系的應(yīng)用程序則更是將業(yè)務(wù)邏輯進(jìn)行了容器化封裝,結(jié)合后臺的分布式存儲與數(shù)據(jù)庫技術(shù),實現(xiàn)了端到端的分布式架構(gòu)體系。

正如同很多銀行的科技部門都經(jīng)歷過核心系統(tǒng)從大集中向SOA轉(zhuǎn)型的艱辛,由當(dāng)前的小型機體系向分布式架構(gòu)轉(zhuǎn)型同樣面臨巨大的挑戰(zhàn),例如技術(shù)堆棧的選擇、應(yīng)用程序的開發(fā)、與DevOps體系的搭建等。

應(yīng)用開發(fā)從傳統(tǒng)架構(gòu)向分布式轉(zhuǎn)型,最先面臨改造的自然就是應(yīng)用程序框架。如今的微服務(wù)框架已經(jīng)非常成熟,其代表性架構(gòu)往往包括協(xié)議處理、服務(wù)拼裝、原子服務(wù)、以及底層持久化四層。業(yè)務(wù)邏輯從傳統(tǒng)的單一中間件被拆解成眾多微服務(wù)模塊,每個微服務(wù)模塊由完全對等的一系列容器構(gòu)成,可以簡單通過增加容器的方式實現(xiàn)對該服務(wù)吞吐處理能力的擴容。

但是微服務(wù)的拆分即意味著每個服務(wù)都擁有自己獨立的執(zhí)行邏輯與存儲。從數(shù)據(jù)庫的角度來看,微服務(wù)體系的拆分對數(shù)據(jù)庫存儲提出了極大的挑戰(zhàn)。如果每個微服務(wù)依然將數(shù)據(jù)存放在傳統(tǒng)的單點數(shù)據(jù)庫中,其存儲與處理能力均無法隨著微服務(wù)容器數(shù)量的上升提供同樣的擴展能力。在這種情況下,數(shù)據(jù)庫將會成為微服務(wù)體系框架中性能與擴展性的大制約瓶頸。

而如果每個微服務(wù)使用獨立的數(shù)據(jù)庫進(jìn)行存放,整個企業(yè)IT的數(shù)據(jù)架構(gòu)將會變得支離破碎。數(shù)據(jù)庫的數(shù)量從過去的幾百被拆分為上萬個數(shù)據(jù)庫,整個運維團隊的管理成本與數(shù)據(jù)庫采購成本面臨幾何級數(shù)的提升。

因此,分布式數(shù)據(jù)庫的目標(biāo)不僅僅作為傳統(tǒng)Oracle或DB2的單一替代,將一個數(shù)據(jù)庫存放不下的數(shù)據(jù)放到多個物理機存放。在實際環(huán)境中,大部分銀行都有著較為完善的數(shù)據(jù)生命周期管理策略,一般不會在生產(chǎn)環(huán)境中堆積大量的歷史數(shù)據(jù),因此數(shù)據(jù)量一般來說不會是使用分布式數(shù)據(jù)庫的最重要原因。

三、分布式數(shù)據(jù)庫架構(gòu)體系

分布式數(shù)據(jù)庫的核心價值在于對分布式應(yīng)用程序提供一個彈性可擴張的數(shù)據(jù)服務(wù)資源池,也可稱之為DBPaaS平臺。

其主要能力在于為上層數(shù)以萬計的來自不同開發(fā)商、不同業(yè)務(wù)類型、不同SLA安全級別、不同數(shù)據(jù)類型的微服務(wù)提供一個可彈性擴展、高響應(yīng)速度、易維護(hù)的數(shù)據(jù)庫服務(wù)平臺,同時必須支持在不同微服務(wù)數(shù)據(jù)間進(jìn)行高可用配置、容災(zāi)策略定義、多租戶、業(yè)務(wù)數(shù)據(jù)邏輯物理隔離、交易分析混合模式隔離、冷熱數(shù)據(jù)隔離等一系列數(shù)據(jù)隔離與治理機制。

一些采用微服務(wù)架構(gòu)的互聯(lián)網(wǎng)企業(yè),20余人的數(shù)據(jù)庫運維團隊可以支撐幾十萬個不同的數(shù)據(jù)庫實例,運維最核心便是構(gòu)建了企業(yè)統(tǒng)一的DBPaaS平臺,通過分布式數(shù)據(jù)庫的故障自愈、彈性擴展等機制大規(guī)模簡化了運維人員對數(shù)據(jù)庫的管理。

當(dāng)前業(yè)界存在眾多分布式數(shù)據(jù)庫產(chǎn)品,主要分為三種架構(gòu)體系。

1、應(yīng)用垂直拆分

應(yīng)用垂直拆分是一種最傳統(tǒng)的分布式理念。其中一種實現(xiàn)方式是將應(yīng)用拆解成多個獨立的子服務(wù),每個服務(wù)對應(yīng)整體中的部分?jǐn)?shù)據(jù);另一種實現(xiàn)方式則是在一個服務(wù)中對接多個數(shù)據(jù)庫連接,在應(yīng)用內(nèi)部根據(jù)業(yè)務(wù)規(guī)則選擇數(shù)據(jù)源。例如,應(yīng)用根據(jù)用戶賬戶ID進(jìn)行切分,ID為一到一百萬之內(nèi)的用戶存在數(shù)據(jù)庫A、從一百萬零一到兩百萬存在數(shù)據(jù)庫B,以此類推。

該機制通過在應(yīng)用程序內(nèi)預(yù)設(shè)一個規(guī)則,每次進(jìn)行數(shù)據(jù)訪問首先要從規(guī)則庫篩選出目標(biāo)所在的數(shù)據(jù)庫實例,然后再直接獲取連接進(jìn)行訪問。

使用這種機制,一方面跨數(shù)據(jù)庫的事務(wù)極為難以實現(xiàn),另一方面從應(yīng)用程序來說,分布式能力的業(yè)務(wù)侵入性極強,需要非常多的定制化開發(fā)才能完成基本業(yè)務(wù)邏輯,同時每次擴容需要對應(yīng)用邏輯做完整的端到端梳理,可能會存在大量的風(fēng)險與二次開發(fā)工作。

2、中間件分庫分表

隨著需要分布式存儲能力需求的普及,業(yè)界開始逐漸出現(xiàn)了另一類技術(shù)體系,稱為中間件分庫分表。這類技術(shù)體系的思路是在應(yīng)用程序和數(shù)據(jù)庫之間構(gòu)建一個SQL解析器服務(wù),將傳統(tǒng)的SQL進(jìn)行解析然后翻譯成底層每個數(shù)據(jù)庫所對應(yīng)的子查詢,然后將查詢直接下發(fā)給底層的傳統(tǒng)數(shù)據(jù)庫進(jìn)行執(zhí)行。

該機制的優(yōu)勢在于數(shù)據(jù)存儲能夠繼續(xù)基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫不變,同時上層對于應(yīng)用程序接口得到了一定程度的封裝。但是,中間件分庫分表的機制從整個行業(yè)來看,可以認(rèn)為是從傳統(tǒng)單點數(shù)據(jù)庫向分布式數(shù)據(jù)庫轉(zhuǎn)型的過渡階段。

在新型基于PC服務(wù)器構(gòu)建的分布式數(shù)據(jù)庫普及之前,一些急需數(shù)據(jù)拆分的應(yīng)用可以先通過該方式緩解業(yè)務(wù)與數(shù)據(jù)量暴漲的壓力,但在未來原生分布式數(shù)據(jù)庫成熟且得到驗證后會其優(yōu)勢將很難繼續(xù)保持。

同時,該技術(shù)對于應(yīng)用無法做到100%完全透明,一般來說需要在應(yīng)用拼裝SQL的時候指定一些參數(shù)或使用較獨特的語法,很難做到對應(yīng)用完全透明無感知。

3、原生分布式數(shù)據(jù)庫

不同于中間件分庫分表技術(shù),原生分布式數(shù)據(jù)庫從底層的存儲引擎直接以PC服務(wù)器為基礎(chǔ)進(jìn)行重構(gòu),從數(shù)據(jù)存儲結(jié)構(gòu)、數(shù)據(jù)安全機制、分布式事務(wù)控制等多個領(lǐng)域針對分布式存儲與執(zhí)行進(jìn)行優(yōu)化。

原生分布式數(shù)據(jù)庫是底層完全從零開始研發(fā),完全拋棄小型機體系,基于PC服務(wù)器硬件架構(gòu)設(shè)計的分布式數(shù)據(jù)庫,將高可用、容災(zāi)、分布式等機制天然融入到數(shù)據(jù)存儲體系的方方面面。

譬如說,一些分布式數(shù)據(jù)庫產(chǎn)品能夠在做到與MySQL 100%兼容的前提下,實現(xiàn)對應(yīng)用完全透明的分布式存儲與執(zhí)行能力。從開發(fā)者的角度看,用戶完全不需要關(guān)注一個表存在幾億還是幾十億記錄,只要在建表時配置好容量與大物理資源消耗策略,數(shù)據(jù)會自動在集群的多個物理設(shè)備中進(jìn)行均衡,從應(yīng)用來看就像訪問標(biāo)準(zhǔn)的表一樣直接進(jìn)行讀寫請求。

4、原生分布式數(shù)據(jù)庫技術(shù)趨勢

為了支撐未來IT微服務(wù)框架,分布式交易型數(shù)據(jù)庫的引入需要從傳統(tǒng)技術(shù)兼容性、以及新技術(shù)前瞻性兩個維度進(jìn)行評估。

ACID的支持與SQL完整性的支持是評估一款新型分布式數(shù)據(jù)庫是否能夠提供與傳統(tǒng)數(shù)據(jù)庫技術(shù)兼容的兩大關(guān)鍵指標(biāo)。

1)ACID的支持

從安全性上來看,不論采用新技術(shù)或傳統(tǒng)技術(shù),數(shù)據(jù)不錯不丟是所有數(shù)據(jù)庫的必備基礎(chǔ)。

在分布式數(shù)據(jù)庫業(yè)界中,一些針對互聯(lián)網(wǎng)技術(shù)設(shè)計的產(chǎn)品以分布式(Partition Tolerance)加高可用(Availability)作為目標(biāo),在安全一致性(Consistence)上無法保證數(shù)據(jù)的正確,很難在金融業(yè)務(wù)中被廣泛使用。

因此,銀行所關(guān)注的新型分布式數(shù)據(jù)庫必須首先保證數(shù)據(jù)的安全和一致性,其中分布式事務(wù)、分布式鎖、四種隔離級別的支持等都是該指標(biāo)中的關(guān)鍵技術(shù)點。

2)SQL完整性支持

SQL完整性指的是新型分布式數(shù)據(jù)庫與傳統(tǒng)關(guān)系型數(shù)據(jù)庫的開發(fā)友好性。

越是成熟的分布式數(shù)據(jù)庫,其SQL語法越能做到與傳統(tǒng)關(guān)系型數(shù)據(jù)庫兼容,同時其數(shù)據(jù)切分對應(yīng)用程序則越發(fā)透明。如今大部分分布式數(shù)據(jù)庫技術(shù)都號稱支持MySQL語法,而主流新型應(yīng)用程序也都將MySQL作為其默認(rèn)支持的數(shù)據(jù)庫選項。因此,對MySQL語法協(xié)議支持的強弱則成為分布式數(shù)據(jù)庫SQL完整性支持的評判關(guān)鍵。

新技術(shù)前瞻性指的是分布式數(shù)據(jù)庫與未來開發(fā)方式和IT架構(gòu)是否吻合。

3)分布式與彈性擴展能力

作為數(shù)據(jù)服務(wù)資源池,分布式數(shù)據(jù)庫必須做到可彈性擴張,才能在服務(wù)于上層不斷增加微服務(wù)類型與數(shù)量。同時對于每個微服務(wù)來說,其數(shù)據(jù)存放在一臺物理設(shè)備還是多臺物理設(shè)備,必須對其中的應(yīng)用代碼完全透明。

4)多模式引擎

服務(wù)于上層來自不同開發(fā)商、不同業(yè)務(wù)場景、不同數(shù)據(jù)類型的微服務(wù),分布式數(shù)據(jù)庫必然需要支持多種SQL協(xié)議與計算引擎。從存儲引擎來看,結(jié)構(gòu)化與半結(jié)構(gòu)化數(shù)據(jù)都可能將會在應(yīng)用中同時使用。因此,新一代分布式數(shù)據(jù)庫需要從訪問接口到存儲結(jié)構(gòu)均支持多模(Multi-Model)引擎。

5)HTAP(Hybrid Transactional/Analytical Processing)

HTAP即混合交易分析處理能力。在傳統(tǒng)銀行IT架構(gòu)中,聯(lián)機交易與統(tǒng)計分析系統(tǒng)往往采用不同的技術(shù)與物理設(shè)備,通過定期執(zhí)行的ETL將聯(lián)機交易數(shù)據(jù)向分析系統(tǒng)中遷移。而作為數(shù)據(jù)服務(wù)資源池,同一份數(shù)據(jù)可能被不同類型的微服務(wù)共享訪問。

當(dāng)一些聯(lián)機交易與審計類業(yè)務(wù)針對同一份數(shù)據(jù)同時運行時,必須保證請求在完全隔離的物理環(huán)境中執(zhí)行,做到交易分析業(yè)務(wù)無干擾。

總體來說,分布式數(shù)據(jù)庫技術(shù)趨勢需要從傳統(tǒng)技術(shù)兼容性以及新技術(shù)前瞻性兩個維度進(jìn)行評判,其中ACID數(shù)據(jù)安全與SQL完整性是傳統(tǒng)技術(shù)兼容性的重要指標(biāo),而彈性擴展能力、多模式引擎、以及HTAP則是新技術(shù)前瞻性的幾個重要衡量標(biāo)準(zhǔn)。

5、金融分布式數(shù)據(jù)庫應(yīng)用場景

當(dāng)前金融行業(yè)中,分布式數(shù)據(jù)庫在五大領(lǐng)域中得到應(yīng)用:數(shù)據(jù)倉庫、大數(shù)據(jù)平臺、內(nèi)容管理平臺、數(shù)據(jù)中臺、與聯(lián)機交易。對于聯(lián)機分布式數(shù)據(jù)庫的使用,當(dāng)前業(yè)界主要圍繞著三類業(yè)務(wù)場景。

1)聯(lián)機交易系統(tǒng)

聯(lián)機交易系統(tǒng)是銀行重要的生產(chǎn)運行環(huán)境。

我國一些分布式技術(shù)探索走在前沿的銀行,已經(jīng)開始逐漸將核心業(yè)務(wù)流程系統(tǒng)從IBM和Oracle的大機與小機架構(gòu)下移到分布式環(huán)境,做到集群可彈性擴張,滿足隨時爆發(fā)的業(yè)務(wù)增長需求。一些典型使用到分布式數(shù)據(jù)庫的系統(tǒng)包括網(wǎng)貸核心、渠道整合、信用卡積分等。

2)數(shù)據(jù)中臺

如今,很多企業(yè)提出了重中臺、輕前臺的IT架構(gòu)。而數(shù)據(jù)中臺作為企業(yè)IT數(shù)據(jù)整合的關(guān)鍵平臺,為前臺靈活多變的業(yè)務(wù)需求,與后臺相對固定的數(shù)據(jù)模型相結(jié)合,起到了“數(shù)據(jù)匯聚、連接前后”的作用。譬如銀行能夠先以生產(chǎn)系統(tǒng)瘦身作為目標(biāo),從歷史流水賬單查詢打印開始,逐漸擴展到用戶畫像、資產(chǎn)視圖等準(zhǔn)實時數(shù)據(jù)服務(wù)。

3)內(nèi)容管理平臺

傳統(tǒng)的內(nèi)容管理平臺主要以后督與審計為目的進(jìn)行建設(shè),前端業(yè)務(wù)基本不會直接參與非結(jié)構(gòu)化數(shù)據(jù)的使用。而隨著自助設(shè)備與移動應(yīng)用的普及,越來越多的流程處理需要非結(jié)構(gòu)化數(shù)據(jù)的直接參與。

因此,內(nèi)容管理平臺也在很多銀行從過去的后端走向前端,大量對客應(yīng)用直接連接到內(nèi)容管理平臺,一些開戶、信貸、甚至自助設(shè)備大量流程都在高度依賴內(nèi)容管理平臺的實時交互能力,使得內(nèi)容管理系統(tǒng)從傳統(tǒng)的對內(nèi)后臺審計走向?qū)ν饴?lián)機服務(wù)。

可以看到,作為離線分析類業(yè)務(wù)場景來說,分布式數(shù)據(jù)庫在銀行早已經(jīng)得到了普遍應(yīng)用。而針對聯(lián)機業(yè)務(wù)來說,MPP數(shù)據(jù)倉庫與大數(shù)據(jù)平臺無論從可靠性、并發(fā)能力、與響應(yīng)速度均無法滿足需求。

四、小結(jié)

如今一些對分布式技術(shù)研究較深的銀行,已經(jīng)開始針對分布式數(shù)據(jù)庫進(jìn)行試點應(yīng)用。分布式數(shù)據(jù)庫的核心價值不僅在于將傳統(tǒng)數(shù)據(jù)庫存放不下的數(shù)據(jù)分散到多個物理設(shè)備中存儲,更重要的是針對未來微服務(wù)化的應(yīng)用開發(fā)模型,面對來自不同開發(fā)商、不同SLA級別、不同高可用容災(zāi)特性、不同業(yè)務(wù)類型的數(shù)據(jù),提供一個可彈性擴展、多模式接口的數(shù)據(jù)服務(wù)平臺(DBPaaS)。

當(dāng)前的科技人員經(jīng)常問的一個問題:分布式數(shù)據(jù)庫是否能夠在未來取代Oracle?

這個問題的答案可以說非常直觀。分布式應(yīng)用框架與PC服務(wù)器集群化一定是未來IT發(fā)展的方向,而微服務(wù)取代煙囪式軟件架構(gòu),一定需要將數(shù)據(jù)庫從傳統(tǒng)的“點”向平臺的“面”進(jìn)行轉(zhuǎn)移。

每個應(yīng)用程序都存在相應(yīng)的迭代周期,如今已經(jīng)可以看到很多應(yīng)用程序都開始將MySQL等開源數(shù)據(jù)庫作為自身默認(rèn)支持的數(shù)據(jù)庫選項,未來必須使用Oracle的場景也將會越來越少。

因此,分布式數(shù)據(jù)庫未來必將取代Oracle等傳統(tǒng)單點數(shù)據(jù)庫。銀行的科技部門也應(yīng)該盡早對分布式數(shù)據(jù)庫技術(shù)進(jìn)行前瞻性研究,以適應(yīng)未來銀行IT架構(gòu)從煙囪式模式向微服務(wù)轉(zhuǎn)型的趨勢。

當(dāng)前標(biāo)題:跨越數(shù)據(jù)庫發(fā)展鴻溝,談分布式數(shù)據(jù)庫技術(shù)趨勢
URL地址:http://www.muchs.cn/news5/104805.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、小程序開發(fā)、全網(wǎng)營銷推廣網(wǎng)站設(shè)計、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計