數(shù)據(jù)庫實踐如何解決互聯(lián)網(wǎng)架構(gòu)轉(zhuǎn)型中的痛點?
在 2018 云棲大會上海峰會中,來自阿里巴巴數(shù)據(jù)庫的高級技術(shù)專家王林平為現(xiàn)場的聽眾帶來了題為《互聯(lián)網(wǎng)架構(gòu)轉(zhuǎn)型中的數(shù)據(jù)庫實踐》的精彩分享。
在本次分享中,他重點介紹了互聯(lián)網(wǎng)發(fā)展經(jīng)歷的痛點,數(shù)據(jù)傳輸 DTS,阿里巴巴數(shù)據(jù)管理,混合云數(shù)據(jù)庫管理,數(shù)據(jù)庫備份,基于 HDM、DBS、DTS 的容災(zāi)解決方案等。
▍互聯(lián)網(wǎng)數(shù)據(jù)庫發(fā)展經(jīng)歷的痛點
互聯(lián)網(wǎng)數(shù)據(jù)庫發(fā)展過程中,我們在做 IT 建設(shè)的時候都會碰到一些痛點。在這個過程中,如何解決這些痛點非常重要。***,許多企業(yè)都會面臨的數(shù)據(jù)和業(yè)務(wù)都會從簡單到復(fù)雜,數(shù)據(jù)量由小到大的過程,在這個過程中,數(shù)據(jù)可能會出現(xiàn)在單一的數(shù)據(jù)庫無法存儲的情況,那么這個時候我們?nèi)绾翁嵘龜U展性呢? 第二,我們的業(yè)務(wù)發(fā)展了,數(shù)據(jù)也發(fā)展了,但是人有沒有跟上業(yè)務(wù)發(fā)展的節(jié)奏呢? 第三,我們的企業(yè)在從小到大的過程中多多少少都會有一些核心的數(shù)據(jù),比如客戶的用戶信息,包括一些基礎(chǔ)性配置信息。這些信息很多時候是企業(yè)里很多部門都能用到的,那么核心數(shù)據(jù)如何共享呢? 同時,企業(yè)在用不同的數(shù)據(jù)庫的過程中,這些數(shù)據(jù)庫之間的數(shù)據(jù)怎么進行數(shù)據(jù)交互也是我們面臨的一個痛點。第四,我們的研發(fā)人員和控制人員也會隨著業(yè)務(wù)規(guī)模的增長不斷增加,我們怎樣在人員多的時候保證數(shù)據(jù)的安全和規(guī)范性,同時又不影響開發(fā)和測試的效率呢? ***,數(shù)據(jù)是企業(yè)的核心資產(chǎn),如何提高數(shù)據(jù)庫的容災(zāi)能力,保證我們的數(shù)據(jù)不會因為天災(zāi)人禍等丟失? 下面以阿里巴巴整個改造過程中碰到的痛點來介紹一下我們的產(chǎn)品。
上圖為阿里巴巴分布式數(shù)據(jù)庫的發(fā)展歷程。目前阿里巴巴通過分布式數(shù)據(jù)庫解決問題。DRDS 產(chǎn)品支持多維度的拆分,比如說我們可以按照交易的 ID、客戶的 ID、按照時間來做拆分。
上圖為分布式數(shù)據(jù)庫 DRDS 的一個典型客戶案例,一個電信運營商的案例。它在業(yè)務(wù)發(fā)展的過程中有增速快、擴展性存在瓶頸的痛點。同時,如果客戶用傳統(tǒng)的方法拆分數(shù)據(jù)庫就面臨著應(yīng)用改造成本高的問題。DRDS 提升了存儲擴展能力和計算能力,訪問應(yīng)用透明、平滑擴容、透明生配、透明讀寫分離解決了客戶應(yīng)用改造成本高的問題。
▍阿里巴巴數(shù)據(jù)傳輸
產(chǎn)品有三個核心能力:支持傳輸同步,支持數(shù)據(jù)庫遷移,支持數(shù)據(jù)的訂閱??梢詫?shù)據(jù)變化轉(zhuǎn)換成消息發(fā)送給下游,下游可以根據(jù)這個消息進行應(yīng)用的電話的消費。
上圖為數(shù)據(jù)傳輸 DTS 的架構(gòu)。在下層我們支持云數(shù)據(jù)庫,包括 ECS 自建數(shù)據(jù)庫,用戶 IDC 數(shù)據(jù)庫以及集團、螞蟻。通過產(chǎn)品可以把數(shù)據(jù)遷移到不同的目標端,同時也支持數(shù)據(jù)同步訂閱。我們可以把數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)換成文件。
上圖為數(shù)據(jù)傳輸 DTS 客戶案例??蛻裘媾R的主要問題有:本地的 Oracle 數(shù)據(jù)庫是客戶業(yè)務(wù)的性能瓶頸,活動時,Oracle 上的存儲過程占用了實例將近 80% 的 CPU。并且要求在系統(tǒng)持續(xù)運行、不停機的情況下將 Oracle 上業(yè)務(wù)遷移到阿里云 DRDS。解決方案為:通過 DTS 搭建 Oracle 到 DRDS 實例間的實時同步鏈路,保證 DRDS 與 Oracle 數(shù)據(jù)實時同步。在 DRDS 和 Oracle 實例間的數(shù)據(jù)保持實時同步后,業(yè)務(wù)選擇任一時刻,將部分流量切換到阿里云上的 DRDS。通過 DTS,將 DTS 上產(chǎn)生的業(yè)務(wù)流量流回 Oracle,Oracle 和 DRDS 在業(yè)務(wù)完成割接期間互為災(zāi)備,保證業(yè)務(wù)連續(xù)性。阿里巴巴數(shù)據(jù)管理的前世今生。通過信息化統(tǒng)一管理數(shù)據(jù)庫,同時通過非運維操作的規(guī)則化,自動化,規(guī)則加流暢的自助變更,目前 DMS 已經(jīng)在公有云端正式商業(yè)化了,同時也支持私有化輸出。
▍混合云數(shù)據(jù)庫管理 HDM
上圖為混合云數(shù)據(jù)庫管理 HDM 架構(gòu)與能力,我們?nèi)粘_\維的工作基本上可以由 HDM 來解決。HDM 的核心能力包括:打通混合云數(shù)據(jù)庫架構(gòu),多環(huán)境統(tǒng)一管理,自動化運維低成本,容災(zāi)切換,快速彈性擴容,一鍵切換,穩(wěn)定、容災(zāi)、彈性。
上圖所示為基于 HDM、DBS、DTS 的容災(zāi)解決方案。***級的方式就是我們把本地的備份直接的通過拉文件的方式扔到 OSS 上,當然這樣比較低級。第二個就是我們可以通過 DBS 實時備份上云,備份后也可以通過 DBS 還原到本地或者 RDS 上。第三我們通過 DTS 將云下的數(shù)據(jù)庫同步到云上的 RDS。我們云上的 RDS 跟云下形成一個災(zāi)備,也就是說一旦我們本地的 IDC 無法訪問的時候,我們就可以訪問云上的 RDS 來保證業(yè)務(wù)的持續(xù)性。這場景是說我們云下和云上可以實現(xiàn)雙向同步。這個雙向同步其實可以實現(xiàn)異地多活,就是說我們在 A 機房有一套數(shù)據(jù)庫,B 機房有一套數(shù)據(jù)庫,進行雙向同步,這兩個雙向同步可以支撐 IDC 訪問,云上也可以訪問。只要應(yīng)用端建設(shè)的足夠好,那么這個雙活是可以實現(xiàn)的。同時基于我們的 HDM 可以打通我們的用戶 IDC 和云上云下,實現(xiàn)數(shù)據(jù)庫的容災(zāi)一鍵切換。
▍企業(yè)級數(shù)據(jù)庫產(chǎn)品架構(gòu)
剛才跟大家一起分享了幾個產(chǎn)品,下面我們來回顧一下這幾個產(chǎn)品的一些能力。首先是分布性數(shù)據(jù)庫 DRDS。我們可以理解它是一個存儲層,來滿足數(shù)據(jù)庫的擴展能力。第二個就是我們的數(shù)據(jù)傳輸。數(shù)據(jù)傳輸實現(xiàn)了數(shù)據(jù)遷移、同步和訂閱的能力,它可以把云外的數(shù)據(jù)庫和云上的數(shù)據(jù)庫打通。同時它不僅限于這些功能,包括我們自己內(nèi)部。第三是我們的數(shù)據(jù)管理,可以理解它是一個數(shù)據(jù)庫層面的 DevOps,讓我們企業(yè)的開發(fā)人員和測試人員不用進行太多的互動就可以完成數(shù)據(jù)管理這件事。還有就是我們的數(shù)據(jù)庫備份 DBS,來以較低的成本滿足企業(yè)備份數(shù)據(jù)的需求。***就是我們的混合云數(shù)據(jù)管理 HDM,可以打通云上云下的數(shù)據(jù)庫,實現(xiàn)一鍵容災(zāi)切換。
▍企業(yè)級數(shù)據(jù)庫解決方案
除了產(chǎn)品之外,我們還會輸出一些解決方案,解決方案是依賴于產(chǎn)品的,給我們廣大企業(yè)提供一些方案。像研發(fā)效率保障和數(shù)據(jù)安全方案,這個是基于 DMS。也就是說我們在輸出的時候,我們會幫企業(yè)把我們的產(chǎn)品用起來,同時給我們的企業(yè)一些建議,比如說我們怎么去做到更高效、更安全、更合規(guī)的數(shù)據(jù)管理體系。第二是 DTS。DTS 本身具有數(shù)據(jù)遷移、同步的功能,同時也有訂閱功能,那我們會協(xié)助企業(yè)一起把 DTS 用起來,能夠把數(shù)據(jù)搬到云上。再就是我們基于 HDM、DBS 和 DTS,會給我們企業(yè)輸出多層級的容災(zāi)解決方案。