2019年7月19-20日,以「指揮若定,數攬將來」爲主題的DAMS中國數據智能管理峯會在上海青浦區成功舉辦。在DAMS峯會上,巨杉數據庫爲你們帶來了題爲「雲架構下的分佈式數據庫設計與實踐」的主題分享。數據庫
微服務下數據庫架構的演進安全
應用開發從傳統架構向分佈式轉型,最早面臨改造的天然就是應用程序框架。現在的微服務框架已經很是成熟,其表明性架構每每包括協議處理、服務拼裝、原子服務、以及底層持久化四層。業務邏輯從傳統的單一中間件被拆解成衆多微服務模塊,每一個微服務模塊由徹底對等的一系列容器構成,能夠簡單經過增長容器的方式實現對該服務吞吐處理能力的擴容。服務器
可是微服務的拆分即意味着每一個服務都擁有本身獨立的執行邏輯與存儲。從數據庫的角度來看,微服務體系的拆分對數據庫存儲提出了極大的挑戰。若是每一個微服務依然將數據存放在傳統的單點數據庫中,其存儲與處理能力均沒法隨着微服務容器數量的上升提供一樣的擴展能力。在這種狀況下,數據庫將會成爲微服務體系框架中性能與擴展性的最大制約瓶頸。架構
而若是每一個微服務使用獨立的數據庫進行存放,整個企業IT的數據架構將會變得支離破碎。數據庫的數量從過去的幾百被拆分爲上萬個數據庫,整個運維團隊的管理成本與數據庫採購成本面臨幾何級數的提高。框架
所以,分佈式數據庫的目標不只僅做爲傳統Oracle或DB2的單一替代,將一個數據庫存放不下的數據放到多個物理機存放。在實際環境中,大部分銀行都有着較爲完善的數據生命週期管理策略,通常不會在生產環境中堆積大量的歷史數據,所以數據量通常來講不會是使用分佈式數據庫的最重要緣由。運維
新一代分佈式數據庫技術特性數據庫設計
爲了支撐將來IT微服務框架,分佈式交易型數據庫的引入須要從傳統技術兼容性、以及新技術前瞻性兩個維度進行評估。分佈式
「當應對微服務應用框架,原生分佈式數據庫架構優點在於兩點。第一,是解決數據的彈性擴張,使每一個微服務不受底層數據存儲限制。第二,解決微服務應用架構中數據嚴重碎片化的問題。」微服務
ACID的支持與SQL完整性的支持是評估一款新型分佈式數據庫是否可以提供與傳統數據庫技術兼容的兩大關鍵指標。性能
ACID的支持
從安全性上來看,不論採用新技術或傳統技術,數據不錯不丟是全部數據庫的必備基礎。在分佈式數據庫業界中,一些針對互聯網技術設計的產品以分佈式(Partition Tolerance)加高可用(Availability)做爲目標,在安全一致性(Consistence)上沒法保證數據的正確,很難在金融業務中被普遍使用。所以,銀行所關注的新型分佈式數據庫必須首先保證數據的安全和一致性,其中分佈式事務、分佈式鎖、四種隔離級別的支持等都是該指標中的關鍵技術點。
SQL完整性支持
SQL完整性指的是新型分佈式數據庫與傳統關係型數據庫的開發友好性。越是成熟的分佈式數據庫,其SQL語法越能作到與傳統關係型數據庫兼容,同時其數據切分對應用程序則愈加透明。現在大部分分佈式數據庫技術都號稱支持MySQL語法,而主流新型應用程序也都將MySQL做爲其默認支持的數據庫選項。所以,對MySQL語法協議支持的強弱則成爲分佈式數據庫SQL完整性支持的評判關鍵。
新技術前瞻性指的是分佈式數據庫與將來開發方式和IT架構是否吻合。
分佈式與彈性擴展能力
做爲數據服務資源池,分佈式數據庫必須作到可彈性擴張,才能在服務於上層不斷增長微服務類型與數量。同時對於每一個微服務來講,其數據存放在一臺物理設備仍是多臺物理設備,必須對其中的應用代碼徹底透明。
多模式引擎
服務於上層來自不一樣開發商、不一樣業務場景、不一樣數據類型的微服務,分佈式數據庫必然須要支持多種SQL協議與計算引擎。從存儲引擎來看,結構化與半結構化數據均可能將會在應用中同時使用。所以,新一代分佈式數據庫須要從訪問接口到存儲結構均支持多模(Multi-Model)引擎。
HTAP(Hybrid Transactional/Analytical Processing)
HTAP即混合交易分析處理能力。在傳統銀行IT架構中,聯機交易與統計分析系統每每採用不一樣的技術與物理設備,經過按期執行的ETL將聯機交易數據向分析系統中遷移。而做爲數據服務資源池,同一份數據可能被不一樣類型的微服務共享訪問。當一些聯機交易與審計類業務針對同一份數據同時運行時,必須保證請求在徹底隔離的物理環境中執行,作到交易分析業務無干擾。
整體來講,分佈式數據庫技術趨勢須要從傳統技術兼容性以及新技術前瞻性兩個維度進行評判,其中ACID數據安全與SQL完整性是傳統技術兼容性的重要指標,而彈性擴展能力、多模式引擎、以及HTAP則是新技術前瞻性的幾個重要衡量標準。
SequoiaDB巨杉數據庫技術優點
微服務架構下雲化的管理
在將來微服務化應用開發以及雲化平臺的趨勢下,應用再也不以「煙囪式」的中間件加數據庫模式進行構建,而是採用數千甚至上萬的微服務程序構建成的複雜網狀模型。
新一代分佈式數據庫針對微服務架構,將會提供數據庫的實例化部署,幫助數據庫與上層微服務實現更好的對接,數據庫也將提供雲化管理方式,保證龐大複雜的微服務可以實現更細粒度管理。
針對微服務應用架構,用戶能夠在同一個集羣中建立成百上千個不一樣的關係型數據庫實例。數據庫實例的訪問與使用方式和傳統關係型數據庫100%兼容,同時其底層所使用的數據從邏輯上徹底獨立,每一個實例擁有本身獨立的權限管理、數據管控、甚至能夠選擇部署在獨立的硬件環境或共享設備中。
SequoiaDB巨杉數據庫支持數據庫服務實例化。從應用程序開發者與DBA的角度看,SequoiaDB巨杉數據庫所提供的關係型數據庫實例,與傳統MySQL、PostgreSQL和SparkSQL保持全兼容。
存儲資源池化,彈性擴展
隨着海量數據管理需求不斷增長,數據庫存儲的擴展性也成爲支撐整個數據平臺的重要核心能力。SequoiaDB採用分片技術爲系統提供了彈性的橫向擴展機制,能夠根據應用需求調整存儲;實現了存儲引擎的多模數據管理,支持非結構化、結構化和半結構化數據全覆蓋並統一管理,讓數據庫平臺場景更多樣,也能符合雲數據架構下對於多樣化業務數據的統一管理與運維要求。
SequoiaDB的分片過程對於應用程序來講徹底透明。該機制解決了單臺服務器硬件資源(如內存、CPU、磁盤 I/O)受限的問題,並不會增長應用程序開發的複雜性。巨杉數據庫經過原生分佈式架構,能夠輕鬆實現PB級別數據管理,目前生產環境最大支持超過1500個節點集羣,實現全量數據全生命週期管理。
同時,在一個大型集羣中,SequoiaDB提供了多維度、多層級的邏輯與物理隔離能力。在一個典型的數據資源池類型基礎數據服務平臺(DBaas,DataBase As A Service)中,SequoiaDB巨杉數據庫可以同時服務於成百上千個不一樣SLA服務級別、優先級、業務特性、與數據量的應用程序,並保證應用程序之間的數據邏輯與物理隔離。
分佈式交易與事務
從安全性上來看,不論採用新技術或傳統技術,數據不錯不丟是全部數據庫的必備基礎。在分佈式數據庫業界中,一些針對互聯網技術設計的產品以分佈式(Partition Tolerance)加高可用(Availability)做爲目標,在安全一致性(Consistence)上沒法保證數據的正確,很難在銀行業務中被普遍使用。所以,大型企業用戶會所關注的新型分佈式數據庫必須首先保證數據的安全和一致性,其中分佈式事務、分佈式鎖、四種隔離級別的支持等都是該指標中的關鍵技術點。
雲化和微服務架構下,SequoiaDB分佈式架構下,提供完整的ACID支持,完整的事務支持和一致性保障,充分保證數據安全,知足核心交易業務的嚴苛要求。
傳統應用兼容
做爲新一代分佈式數據庫,其架構與功能特性須要保證在與傳統數據庫全兼容的基礎上,擁抱微服務與雲計算框架。所以,分佈式數據庫對於分佈式交易與ACID必須保證與傳統技術徹底兼容。同時,在面向微服務應用開發與雲計算基礎架構時,新一代分佈式數據庫必須支持彈性擴張、資源隔離、多租戶、可配置一致性、多模式(支持各種SQL協議)、集羣內可配置容災策略等一系列功能。
其中,SQL的支撐是數據庫產品最爲重要的技術特性。SequoiaDB提供了原生的完整SQL支持。