螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

支付寶技術團隊發表於2019-11-29
2019年11月19日,螞蟻金服在北京舉辦“巔峰洞見·聚焦金融新技術”釋出會,介紹2019雙11支付寶背後的技術,並重磅釋出全新OceanBase 2.2版本和SOFAStack雙模微服務平臺。我們將系列演講整理併發布在  “螞蟻金服科技” 公眾號上,歡迎關注。

螞蟻金服研究員韓鴻源在釋出會分享了《企業級資料庫平臺的持續與創新》,以下為演講實錄:

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

在今天企業級的市場裡,資料庫是根本的基礎支援能力之一,傳統資料庫技術正在面臨各種各樣全新的挑戰,面對這些挑戰的時候大家都在尋找一些新的解決方案。這些新的解決方案從什麼地方來呢?當我想要替換非常成熟的被大家廣泛使用的平臺的時候,怎樣讓客戶放心的去替換?在企業級資料庫基礎平臺上,後續可能會是什麼樣的發展方向?這也是我今天想和大家探討的內容。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

關聯式資料庫已經發展很多年,今天所有企業裡面的業務系統,支撐核心的業務系統大部分都跑在關聯式資料庫上面。原來傳統企業裡的業務系統接入終端數量很有限,不管是自己內部業務系統,還是對客戶前端櫃檯做業務系統,終端數量都非常有限。基本上,系統的擴充套件能力可以透過資料庫伺服器的垂直擴充套件都可以滿足要求。

隨著移動網際網路發展,今天的業務系統不管是銀行、政府等,已經廣泛暴露在大部分移動接入的客戶面前。當這種情況出現時發現很大的變化,傳統的系統垂直擴充套件是不可能解決這個問題。那麼如何解決呢?這就衍生出很多不同的解決辦法。除了傳統的關聯式資料庫持久化處理資料方式之外,演化出非常多的新的資料方式,所謂多型資料持久化等方式不斷冒出來。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

當所有這些東西來了之後,大家發現回到真正的業務邏輯上去看,關聯式資料庫有它很突出的長處,它可以以一個數學上完善的方式幫助客戶有效的構建業務系統,這些能力當你去放鬆對關係的嚴格要求之後,很多東西很難滿足。包括客戶已經有的業務系統,怎麼樣持續運營下去?怎麼樣保證客戶已經有的這些嚴謹業務邏輯持續運營下去?所以帶來很多新的挑戰。

傳統的企業客戶不只是商業企業,泛指企事業單位和黨政軍範圍,一般指具有一定規模且有重要性的實體。那麼,對企業級系統和平臺的要求也包括很多:1)高安全;2)高效能;3)高可靠性;4)高可用性;5)高開發效率,低維護成本;6)高可擴充套件性。這些對企業來講都是很核心的東西。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

上圖底下是一個橫軸線,從2013年-2019年排在最前面幾個資料庫的活躍程度非常穩定。今天去看前三個最活躍的資料庫依然還是關聯式資料庫,關聯式資料庫還是今天整個企業資料管理平臺的主流,不但是主流,而且支援所有主要的業務系統。

主流關聯式資料庫相對穩定,這些資料庫受到很多的開源的衝擊。對於絕大部分企業來講不是做開發和軟體的,需要是平臺具備的這些能力,你要高可靠、高可用,能夠幫助使用者持續發展。只要這個產品足夠可靠好用的情況下,客戶可以自己把運維接起來的情況下,是沒有必要看原始碼的。今天我們談企業級的時候,可能看的更多的是怎麼樣支援客戶有效運營自己的業務。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

上圖是資料庫的發展歷史。最早有層次資料庫、網狀資料庫等,當關聯式資料庫出現之後,由於它們突出的特點,基本上主要的業務系統都遷移到關聯式資料庫開發模式中去。從我個人來看,我經歷大概20多年的歷史,關聯式資料庫是所有資料庫裡被判死刑次數最多的一個技術,到今天為止不但沒有死,而且還在不停的煥發新活力。

RDBMS 真正的價值如何體現?我覺得, 首先資料庫裡面強調的ACID幫助應用開發,簡化了應用開發複雜性; 第二點,SQL這個寫法很關鍵,接近於自然語義的寫法,最大優點做業務開發的人寫出來的程式碼可以讓做業務人看得懂,帶來的好處是大家溝通很方便,寫出來的程式碼可讀性可維護性非常強,所以擺脫這些技術是很困難的。但是關聯式資料庫不是一成不變的東西,從集中式到分散式是一個大的發展方向,很多時候這些東西為了突破原來的限制和技術瓶頸。

網際網路與網際網路公司帶來的變化是,使用者訪問量變化,以及很多新技術的探索和創新。最早網際網路公司裡有相當多網際網路公司做的業務跟傳統企業業務有非常大的差異。當你做這些業務的時候,有些業務是有標準答案,有些業務沒有標準答案。當你在網上做搜尋的時候,你搜之前肯定不知道搜尋結果是什麼?當你轉一筆帳的時候,你轉之前一定知道轉帳結果是什麼。這兩件事對於資料庫平臺的支撐能力有完全不一樣的要求。網際網路公司面臨壓力大了之後,需要系統有非常強的可維護性的要求,很多東西是自動的維護和自動高可用的管理,這一塊是一個很大技術變化的出發點。比如說高可用,傳統企業的高可用基本靠半人工、半機器方式去做,基本不會完全相信機器,自己把高可用做的很完善。

舉例來講,非常多的金融機構都做了容災系統,容災系統切換這種決策沒有人敢讓機器做自主決策。當你的規模非常大的時候,這種管理很難去做到,觸發怎麼樣實現自動高可用,真正讓系統具備完整的判斷能力。

當網際網路發展到金融這個領域時,剛才我說的問題就很麻煩,很多使用者有很多的併發請求,做查詢不知道準確結果,做金融一定要知道準確結果,做錯任何一點使用者直接都會找你算帳。這個裡面需要很完備的基礎設施的支援,才能幫你支撐這麼好的金融業務。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

下面,我們希望跟大家探討一下, 後續企業裡的資料庫技術會有什麼樣的發展趨勢?

首先,分散式已經是不可避免的潮流,這個裡面有幾方面的原因。單一的大伺服器加儲存的方式擴充套件能力有限,無法支援企業的持續向前發展。在今天的雲環境裡面,大家可以看一下市場上不管是哪一家主流的雲供應商,現在已經沒有任何一家雲供應商會讓你把伺服器連到高階、高效能的儲存上去支援資料庫來執行。如果你想在雲環境裡執行資料庫,必然要選擇其他的實現方式。所以你看在測試的時候,包括系統架構設計方面,實際上是跟雲的大趨勢是一致的。今天,硬體發生了很多大的變化。像大家質疑我們的TPC-C測試結果一樣,9年以前跟現在的硬體有很大差異。

如果我今天給你200臺伺服器,裝一個資料庫上去,你根本裝不上去,更不要說執行結果出來,這不是那麼簡單的一件事,能有效地把這些新的硬體用起來對軟體是一個非常大的考驗。如果大家看還在使用中的絕大部分主流關聯式資料庫,它們有一個很大的特點,它們都設計在30年以前。30年以前設計資料庫的時候有兩個假設,所有硬體記憶體都是很小的,所有的儲存訪問速度都是非常慢的,所有的資料庫基本今天用的主要資料庫都是從那個年代發展起來的,這兩個限制條件給它加了很多枷鎖。

如果大家嘗試過可能會發現,我有一個oracle資料庫今天裝256個記憶體,明天擴512G,效能能提升多少?能提升一倍嗎?事實上能提升1%就不錯。什麼原因?它的軟體架構設計決定它不能有效使用新的硬體能力,當今天不停的有新硬體技術出現的時候,需要新的方式把硬體能力用起來,帶給使用者更好的系統,帶給使用者更好的回報和更簡單的管理。

從雲發展趨勢來講,其實資料庫是最適合於雲化的服務。怎麼樣能夠以雲化的方式有效的支撐客戶去使用資料庫也是一個很大的挑戰。

最後,管理的規模也很大,系統也很複雜,怎麼樣把更多的人工智慧帶來的優點體現在系統裡面去,幫助系統自動去執行,更好的自動去調優。這件事情今天說起來容易,最大挑戰是要有足夠大、足夠廣泛的使用環境和使用場景,才能幫你積累到資料,才能算出你想要的模型來。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

那麼, 新的企業級資料庫需要具備什麼能力呢?

首先,資料庫最好對硬體不要有特定的依賴,這樣會阻止往雲方向去發展和做最佳化。其次,今天所有的企業面臨一個發展方向,都是怎麼樣從傳統企業架構轉到雲原生架構,資料庫怎麼樣支援使用者轉換前和轉換後的平滑過渡。然後,在今天的企業環境裡面,很多負載的變化是突發的。你需要能夠 在保障資料的情況下,在不同的執行環境實現靈活遷移。最後一點,資料庫是非常適合雲端計算提供的服務,怎麼樣能夠去 真正把底層硬體能力發揮出來,比如在設計之初就要考慮多租戶的環境,怎麼樣在多租戶環境有效使用資源,支撐所有混合負載的能力。這些加在一起實際上是構建下一代資料庫平臺一些必須考慮的因素。

OceanBase對新技術的探索

回到OceanBase,我們在這些方面做了很多探索。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

首先是高可用性。在今天來講六級的高可用性已經是非常高的可用性,絕大部分機構實現不了這個級別,但是我們今天能實現遠遠超過這個級別,能夠在30秒內實現自動恢復。這些靠的是在技術上怎麼樣把新技術有效用起來,比如說Paxos。在傳統資料庫裡不會有人去用它,在新的分散式場景下來講,利用這些新的技術其實它還能幫你實現全自動的高可用。Paxos這種自動投票的機制帶來的優點是系統在不需要在外部干預情況下,把失效的東西替換掉之後持續去執行,在今天大規模執行環境裡面是不可或缺的一個東西。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

剛才講到,今天的網際網路帶來的壓力對於業務系統壓力變大非常多,靠一個資料庫一個系統支撐所有業務,一定不可能。在我們系統執行環境裡,經過這麼多的實際環境輸入之後,今天可以給使用者一個很靈活的選擇,可以讓使用者去選擇資料庫的部署粒度,你可以選擇分庫分表,也可以選擇單庫。 把選擇權給到使用者,使用者可以根據自己的需要從不同的方式之間做過渡的融合,都可以幫助使用者持續往前發展。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

為什麼要走向分散式資料庫?傳統都是最左邊集中部署方式,它的優點是ACID不用擔心,缺點是想擴的時候擴不上去。為了解決擴充套件的問題,大家才來做分庫分表。分庫分表絕大多數情況用中介軟體的方式來實現。這打破了資料庫的邊界,又同時引入了很多新問題。最大的問題是對應用不透明,如果你原來是一個複雜的業務應用,想適應分庫分表的時候,對應用的改造工作量非常大。

為了解決這個問題,我們做了原生的分散式資料庫。最簡單的描述,你可以把一個分散式部署和執行的資料庫完全當成一個集中的資料庫來用,對你來講不會有任何的差異。就像陽老師講的,TPC-C測的是一個系統的業務處理能力,對外表現來講TPC-C所有的檢查標準時,它跟單一的資料庫對外表現是一樣的。這在今天的分散式資料庫裡是最難實現的一點,怎麼樣能夠把一個分散式的東西,表現給使用者用的時候是當作集中式來用,能力有提升,但是使用上不增加複雜性。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

我們去看傳統資料庫的時候,往往強調是ACID屬性。如果只為了滿足ACID,可以很簡單的做到。因為資料庫可以停。為了保證ACID,我們可以在有異常情況出現的時候,把整個系統停掉之後保證ACID不會出問題,但是使用者用不了系統。在今天,保證系統高可用的同時,高可用反過來可以幫助ACID。

原來傳統系統裡使用兩階段提交時,最大問題不是兩階段帶來的系統消耗,是兩階段跨系統做交易的時候,一旦有一個參與者出現不可用,整個系統沒有辦法持續執行,狀態不可知的時候,沒有辦法保證系統一致性。剛才講的自動30s之內的RTO的恢復會發生很大的作用。當整個系統所有的交易參與者可以在很短的時間內恢復出來的時候,它是不會把業務掛起,可以確保業務持續執行下去,消滅了傳統分散式系統裡非常大的一個弱項。

今天整個市場上講,關聯式資料庫是一個全球範圍內早已經劃分完勢力範圍的市場。為什麼今天還有新產品出現,是因為很多因素加進來之後,促成了很多新的變化。螞蟻內部有非常多的使用OceanBase的業務,這些業務經歷過去七、八年的發展,在這個過程中OceanBase增強自身的能力,消除很多問題,在一個大規模的複雜環境裡面經歷這麼多年磨鍊之後,從2017年我們走出來服務於外部使用者。

希望以後有更多的使用者給我們機會去嘗試OceanBase,我們也希望這個產品幫助大家解決很多現實中面臨的問題,也歡迎更多的企業和組織加入進來。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

關於TPC-C,我想說, 首先,TPC-C是目前國際上唯一具有公信力的資料庫功能與效能結合的公開檢測標準。因為所有市場上主流的玩家,原來都在這個標準上釋出過測試結果,即便這個測試模型源於20年前,但是所有結果都有意義。而且TPC-C的模型定義如果大家深入研究的話,裡面有很多科學的東西。

第二點,TPC-C測試大家往往看到很多誤導性的資訊,我在家裡跑一個結果,單機TPC-C可以跑150萬,200萬,300萬,這件事情沒有意義,TPC-C測試裡面除了跑的效能指標之外,它有前提條件。TPC-C測試過程中的ACID的檢查,對於分散式資料庫是一個非常大的挑戰,今天絕大部分的分散式資料庫面臨這個問題採取的是迴避的做法,不是直接解決問題的做法。測出來的結果很多不是有效的結果。我們之所以參與TPC-C審計,是為了證明我們的分散式系統是可以像單機資料庫一樣一分鐘處理6000萬筆新的訂單。

第三點也就是在TPC 認證過的 TPC-C 結果裡面 OceanBase 取得的6千萬 tpmC 排名第一。

第四點,測試是基於公有云通用機型實現的,使用的是和生產系統一致的基礎環境。今天最大的變化是傳統企業資料庫往雲環境搬的時候,最大的變化是沒有能夠匹配原來環境的那麼強大的伺服器可用。沒有那麼大的伺服器和儲存,怎麼樣解決這個問題?我們給大家去做了這個證明,你可以用軟體的能力實現同樣的效能指標。

最後,我不認為TPC-C是證明資料庫完備性的充分條件,但是它是一個必要條件。當你要接的是這些大型機構核心業務系統時,如果你的資料庫沒有這種能力,肯定不可能幫助客戶簡單的把應用遷移過來。

螞蟻金服資深總監韓鴻源:企業級資料庫平臺的持續與創新

今天,有些時候大家往往關注資料庫的一個點,但是整個對於企業來講走分散式轉型這條路的時候,不可能只在資料庫一個點上面走。我想說的是,企業整個的分散式轉型是需要從上到下,結合中介軟體和開發過程管理和系統保障管理所有體系加在一起,才能夠確保有效的走向分散式轉型,真正能夠支撐你的業務持續往前發展。

OceanBase 是完全自主研發的分散式關聯式資料庫,我們掌握所有的原始碼和系統的設計。在設計系統的時候沒有預設限制性條件,沒有對特定軟體的依賴,沒有對特定硬體的依賴,沒有對特定系統架構的依賴,這個時候我可以非常廣泛的去適配所有新出來的硬體系統和新的執行環境,可以幫助我們去探索更多的系統組合使用的空間。我覺得我們最大的優點是不存在對外部特定軟硬體系統及系統架構的鎖定性依賴。謝謝大家!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69904796/viewspace-2666119/,如需轉載,請註明出處,否則將追究法律責任。

相關文章