1. 程式人生 > >從自主可控金融級數據庫看騰訊“智能+”技術中臺之路

從自主可控金融級數據庫看騰訊“智能+”技術中臺之路

shadow watermark 開源數據庫 過多 定制化 對數 大會 內核 可能

技術分享圖片
作為“互聯網+”和“智能+”的主要技術供應商,騰訊在2017年11月的全球合作夥伴大會上提出了“雲化”已經成為重要的創新模式,各行各業都將進入“互聯網+”的下一站——“智能+”階段。在此過程中,騰訊雲將充分發揮“連接器”的作用,用“智能”連接各行各業。

3月12日,騰訊雲全新發布自主可控金融業務支撐平臺,該平臺融合了可支撐數百萬虛機的專有雲平臺TCE、服務過380億賬戶的分布式數據庫TDSQL,以及在騰訊海量業務場景淬煉出來的微服務平臺TSF、大數據及人工智能平臺TBDS&Ti等在內的優勢能力,幫助金融機構打造自主可控,安全穩定的金融雲平臺。

騰訊雲這套自主可控金融業務支撐平臺最顯著的特點是以主流開放開源技術標準為核心,降低金融機構在基礎設施及應用場景中對單一技術方的過度依賴,為行業提供一站式技術服務能力。其中的TCE和TDSQL支持國產芯片及操作系統部署,是自主可控的“智能+”技術中臺。國內首家雲上銀行微眾銀行在騰訊金融雲的自主可控核心技術上構建了全行級分布式技術架構,實現了可支撐億量級客戶的高並發交易核心系統,截止2017末累計向1200萬人在線發放貸款8700億,貸款不良率為0.64%、低於銀行業平均水平,是普惠金融的代表。

TDSQL金融級分布式數據庫是騰訊雲基於開源和自研的分布式技術代表,其領先的產品性能、自主可控的核心特性以及完備的產品化體系,充分打消了國內金融行業擁抱開源技術時對可持續性、開發和運維能力以及安全等問題上的顧慮。作為騰訊雲自主可控金融業務支撐平臺的核心技術代表,TDSQL在騰訊內部支撐計費及金融業務日均交易量超10億次,充分體現了騰訊的“智能+”技術中臺特色。2018年11月,TDSQL以總成績第一,成為了首批通過數據中心聯盟金融分布式事務數據庫評測的數據庫產品。

騰訊雲數據庫技術發展歷程

操作系統、數據庫和中間件是三大企業級基礎軟件,任何一款基礎軟件產品必須經過多年的沈澱,數據庫也不例外。在3月12日騰訊雲舉辦的自主可控金融業務支撐平臺發布會現場,騰訊雲數據庫產品總監王義成和騰訊雲分布式數據庫TDSQL負責人潘安群給我們分享了騰訊雲數據庫的自主可控發展之路。

技術分享圖片
(騰訊雲數據庫產品總監 王義成)

騰訊雲金融級分布式數據庫是一套完整的體系,包括核心功能以及運營配套服務,可滿足當前金融行業對於數據的分布式和高一致性需求,目前的公有雲及私有雲客戶已經超過500家。
技術分享圖片
(TDSQL架構圖)

TDSQL的萌芽階段在2002年左右,也是騰訊首次接觸計費的時候。此前,由於QQ業務的關系,騰訊以Key Value非關系型NoSQL開源數據庫為主,NoSQL數據庫主要針對互聯網和遊戲的海量網頁文件存儲等業務場景。因此,騰訊歷史上也沒有采用過Oracle等商用數據庫,而是從一開始就采用開源數據庫。

到了2007年左右,騰訊計費業務的規模日益變大,Q幣等數據資產要像銀行那樣不能丟失數據,對高一致性和可靠性的要求越來越高。騰訊在2007年的時候開發了一款完全自研的簡化版分布式數據庫,當時很好地滿足了騰訊業務的發展。當時的騰訊數據庫技術在保證了數據高可靠性、一致性的情況下,還可以快速地進行水平分布式擴展。

2009年騰訊正式開放平臺,大量的新客戶和新業務場景湧入,實現了騰訊第二次騰飛的同時,也對數據庫技術產生了新的要求。2009年那一年,騰訊僅計費業務一年對數據庫進行了近900次擴容,很好的支持了業務的快速增長。

2012年,隨著騰訊開放平臺和技術的發展,從最開始的遊戲業務到各行各業的應用,騰訊發現有很多場景是之前沒有考慮到,而且之前的數據庫是基於騰訊業務場景的定制化解決方案,無法滿足更多的合作夥伴訴求,當時的金融業務對關系型數據庫的要求比較高,騰訊當時考慮到業務的規模越來越大而導致要求系統的水平擴展能力,最終決定在開源技術上自研的道路。2012年,騰訊啟動TDSQL,希望在高可靠性、高一致性的前提下,做到更加通用化、適用更多的業務場景,也就是瞄準Oracle或DB2這樣的通用關系型數據庫產品。

兩年後,2014年微眾銀行開始籌建,在調研了國內外分布式關系型數據庫之後,認為騰訊TDSQL最能滿足自主可控以及銀行業務需求。2015年,TDSQL在騰訊公有雲上線,2016年推出了面向專有雲的版本,到2018年TDSQL已經服務超過500家的公有雲客戶和28家的專有雲客戶。

本次騰訊雲自主可控金融業務支撐平臺發布,TDSQL也新發布了1.13版本,性能較上一版提升了80%,同時完全支持國產化操作系統、芯片和服務器,使得核心數據庫平臺的可控性達到新的高度。基於MySQL以及MariaDB開源關系型數據庫技術的TDSQL,讓騰訊雲以及國內金融行業用戶可以跟進未來的業務發展趨勢,做到超前的自主可控。

除了面向私有雲版本的TDSQL外,騰訊雲還在公有雲上提供了分布式數據庫服務CynosDB,基於共同的分布式金融級數據庫技術,滿足金融機構的多種需求。

高度產品化的TDSQL

TDSQL是騰訊雲在開源關系型數據庫MySQL、MariaDB以及Percona基礎之上的綜合自研數據庫解決方案。在全球數據庫排行榜DB-Engines上,MySQL是全球排名第一的開源關系型數據庫,MariaDB和Percona都是MySQL的可替代分支改進版本,其中MariaDB全球排名12左右、Percona Server for MySQL排名90左右,這二者對MySQL有著各自的改進。

TDSQL全稱為Tencent Distributed SQL,是騰訊雲數據庫團隊維護的金融級分布式架構和MySQL內核分支的統稱,騰訊90%的金融、計費、交易類業務核心系統都承載在TDSQL 中,也應用到眾多政府、銀行、保險、制造業、物流、電商等客戶的核心系統。TDSQL可以交付關系型數據庫、分布式數據庫、分析性數據庫等形態的數據庫技術,也提供強同步數據復制、線程池、熱點更新、內核優化等能力,以及事前、事中、事後的全維度安全方案等。

TDSQL兼容絕大多數常用的MySQL語法,通過分布式事務、全局唯一序列、支持數據交換格式JSON等有效彌補了分布式架構的不足,解決了因分布式架構而導致的數據庫高級功能與數據庫性能之間的矛盾。TDSQL深度定制開發了MySQL內核,例如:支持三種數據讀寫分離方案,以有效實現讀數據的水平規模擴展;自研了基於MySQL協議的異步多線程強同步復制方案,在保證數據強一致的同時,做到自動化管理集群節點、每個節點可隨時切換、無需共享存儲設備;對業務層的無感知、無侵入,通過邏輯表屏蔽了物理層的數據處理,業務層無需做任何改變,在數據庫層就能實現強一致、讀寫分離等功能,從而達到高度產品化。

作為支持金融級核心交易業務場景的數據庫,TDSQL也是MPP大規模並行處理架構,其分布式架構中的每個分片都各自承擔部分分布式任務,從而實現大規模的並發性能、處理能力和支持存儲容量的線性增長。TDSQL進行了多種系統內核計算負載優化,通過sysbench的壓力測試可達到單個分布純寫入操作超過12萬+TPS(每秒交易處理量)、純查詢操作性能超過48萬QPS(每秒查詢率),性能是當前主要使用的MySQL 5.6版的4倍、5.7版本的2倍以上。

TDSQL的核心模塊主要包括:調度集群(Tschedule)、物理節點組(SET)和接入網關集群(OLTP-Proxy)、決策集群(TzooKeeper)以及赤兔自動化運維平臺。TDSQL支持在線實時擴容,采用騰訊自研的自動再均衡技術以保證自動化的穩定擴容,無需業務停機,並經過騰訊內外部海量業務遷移實踐。在支持金融級高可用性方面,傳統金融機構都要求兩地三中心架構,而在騰訊內部的金融業務方面很早就實現兩地四中心,即同城三中心多活的架構,達到更高可用性和更低成本。

騰訊雲TDSQL數據庫有很多管理模塊,可以更好的方式管理數據庫,達到國際數據庫產品水準。打包在TDSQL產品中的赤兔自動化運維平臺,讓80%-90%的數據庫運維操作都能夠通過外部網頁界面完成,就像使用公有雲的體驗一樣,降低了客戶的使用門檻,不需要掌握大量知識就能運維TDSQL數據庫。在數據庫故障檢測方面,TDSQL專門積累了騰訊十多年來超過20億數據庫實例運維的專家知識庫,以智能DBA的方式提供給客戶,能在故障檢測和維護時做到快速定位問題、以高效和高可用方式解決問題。

運營管理是大部分國產數據庫產品化時容易忽略的方面。數據庫的核心功能再強,但也要讓客戶使用起來。以前國產數據庫往往交付給客戶十幾頁到幾十頁的使用手冊,而赤兔自動化運維平臺則一鍵就可以搞掂數據庫運維,不需要太復雜的命令和操作,誤操作的可能性非常小。另外,赤兔自動化運維平臺也是開放架構,可以與企業內部的OA系統、權限管理系統等打通,實現審批流操作等,對銀行來說達到更高的系統可控性。

除了自動化運維外,騰訊雲還將在2019年發布TDSQL認證體系,未來將對合作夥伴進行資質認證。通過廣大認證的合作夥伴,讓客戶在實施交付數據庫的時候更加放心,推進產品化的服務體系。

走過了那些坑兒

騰訊雲數據庫產品總監王義成介紹,在做TDSQL研發的初期,當業務壓力來臨撐不住的時候就要做讀寫分離,讀寫分離之後發現賬單業務的讀延遲比較大,導致大量的業務部門投訴,因為有延遲就相當於錢上的損失,當時想倒逼業務層面做容錯,但業務部門認為應該由數據庫負責,因此就反逼數據庫花了很長時間開發MySQL開源社區裏沒有的功能,“逼著我們往前看”。

經過長時間的積累,騰訊數據庫運維人員逐漸理解了就算數據庫技術再好,也要讓業務層無感知,即壓力在數據庫技術內核層面解決後,讓業務可簡單接入。而在性能方面,因為騰訊的海量業務場景,即使性能優化10%、硬件成本降低10%,一年可能就是幾千萬、上億的成本節省。TDSQL在性能方面“摳”了很多點,在存儲、引擎、性能等方面的優化,降低成本的同時,確保滿足金融行業需求。

當時的騰訊數據庫運維人員有一個目標叫做安心喝咖啡,即底層技術運維人員不再擔心半夜被叫起來處理故障。“以前騰訊有同學就說,遊泳都不敢去,因為遊泳時手機不能放在身邊,手機也不能防水,當時也沒有手環。”後來,故障處理多了,就知道突發流量對數據庫的要求是什麽,怎樣才能滿足幾十倍峰值流量的沖擊。潘安群表示,現在整個騰訊的數據庫產品和運營體系都很完善,實現了故障的秒級自動切換,運維人員收到告警也不需要像以前那麽急,多睡一會兒也沒有關系,只需要起來的時候看一下故障原因再分析就可以了。
技術分享圖片
(騰訊雲分布式數據庫TDSQL負責人 潘安群)

值得一提的是,最開始基於MySQL開發適應金融場景的TDSQL時,那個時候的MySQL在數據復制上其實不具備金融級要求,TDSQL在數據強一致復制等方面進行了大量的自研創新。TDSQL的水平伸縮功能也經歷了幾個版本,最開始在實際運營過程中並不太穩定,TDSQL團隊進行了徹底的性能優化,最終滿足騰訊海量業務場景的要求。在Oracle比較擅長的ACID金融交易事務處理方面,TDSQL開發了分布式事務處理,為了保障在故障時的交易事務成功,TDSQL團隊7X24不停運行自我破壞性模擬,包括機房斷電、宕機等異常,確保銀行轉帳等交易事務的健壯性。

總體而言,騰訊分布式數據庫TDSQL在設計理念上,對MySQL等開源數據庫的高度兼容,實現在分布式架構下數據強一致性、高可用以及水平擴展,是高度產品化的開源自研分布式金融級數據庫產品。騰訊金融雲總經理胡利明強調,包括TDSQL在內的騰訊雲金融業務支撐平臺,降低了金融機構在基礎設施及應用場景中對單一技術方的過度依賴,為行業提供一站式技術服務能力。

“到去年底為止,騰訊申請的專利數達到25000,在全世界的互聯網公司當中排名第二,僅次於谷歌,其中AI的專利達到了3000個。在雲計算領域申請通過的專利數,也在國內互聯網公司中排名第一,同時在雲計算最核心的虛擬化領域,騰訊在開源社區的代碼貢獻在國內雲廠商中連續兩年排名第一。”胡利明強調,騰訊2014年幫助微眾銀行構建了第一家全行分布式架構系統,“當時引起了很大的轟動,為國內銀行業自主可控轉型提供了強心劑”。

從TDSQL的開發歷程中,可以看出騰訊“智能+”技術中臺之路:開源+自研的高度產品化,發揮騰訊的產品化基因,以開源生態和開源技術為連接器,廣泛連接企業級技術和客戶,實現企業級“數字生態共同體”,從而成為自主可控“智能+”的基石。(文/寧川)

從自主可控金融級數據庫看騰訊“智能+”技術中臺之路