天天看點

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

2018雲栖大會南京峰會企業級網際網路架構專場,阿裡巴巴進階資料架構師黃歡歡帶來題為企業級資料架構探索之路的演講。主要從企業資料庫的發展現狀、存在的問題以及企業級架構的需求開始談起,針對其存在的問題提出了對應的解決方案,最後對企業級産品的架構以及滿足企業及架構的需求問題做了詳細的分析。

數十款阿裡雲産品限時折扣中,

趕快點選這裡 ,領券開始雲上實踐吧! 直播視訊請點選 以下為精彩視訊及ppt内容整理:

企業資料庫現狀

說起企業級資料庫架構體系,在2010年阿裡巴巴還沒有一個完整的資料庫架構體系且存在着很多問題,問題大緻可以分為一下幾點:

  • 業務快速發展,如何才能做到彈性擴充、且性能滿足要求:單體的IOE架構已經不能滿足業務快速發展的需求,是以需要我們去做彈性的擴充,也就是既可以彈性擴容也可以彈性縮容的。
  • 資料是最重要的資産,但資料孤島卻是現狀:現如今應用都在做服務化,應用做服務話以後在每個地方都存在自己的資料,那麼資料之間是如何流通的呢?以及怎樣避免資料孤島等問題值得思考。
  • 穩定和高可用,已經成為企業資料庫系統的最大挑戰:對于企業級來說,這是一個普遍的問題,資料庫的穩定性、高可用性是企業級資料庫最基礎的一個功能。
  • 業務的多樣化,單一的資料存儲無法有效滿足需求:我們發現業務正逐漸的多元化,單一的資料庫已經不能很好的滿足業務發展的需求,那麼我們在統一化的支撐和個性化的支援下如何做權衡也是我們要考慮的問題。
  • 研究人員衆多,資料安全、效率、規範的挑戰很大。

企業級架構的基本訴求

結合以上問題,總結了企業及資料庫的一些基本訴求:

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

1)可擴充性:可擴充性與容量的擴充并不完全相同,更多指的是架構上的可擴充以及彈性的需求。

2)穩定可靠:系統的穩定性和高可用。

3)高效:可分為兩層含義了解,首先企業級架構資料庫之後,我們如何高效地、自動地去運維資料庫;其次,研發的人員越來越多,如何利用自己的平台去提升研發效率是我們需要考慮的問題。

4)安全:資料安全是企業的生命線,安全問題絕不能夠在出現問題之後再去考慮安全問題。

如何提升系統的擴充性

提升系統擴充性或者提升系統的容量有很多方法,比如可以去做Scale Up,也可以更新資料庫版本以及資料庫硬體的配置,但是這是有限的。是以要進一步結合業務做一些垂直拆分,例如應用做服務化,那麼商品的應用、交易的應用或者庫存的應用需要拆開來,其對應的資料庫也需要拆開來,這樣做垂直拆分以後,對于單個應用來說我們需要做更進一步的擴充性,慢慢我們發現會遇到瓶頸,尤其是在寫上面的擴充性。這時就需要做Scale Out,也就是說水準拆分線性的擴充。需要注意的是水準拆分的線性擴充不是一次性的,對系統進行擴充以後需要對彈性的縮容。

Scale Out解決方案

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結
  • 利用DRDS進行水準拆分,線性擴充:
  • 彈性的擴容能力
  • 超高性能,滿足業務極緻需求

    Scale Out解決方案現在最成熟的技術就是分庫分表的解決方案,當一張實體庫或一張實體表已支撐不了業務寫入的時候,我們就對它按照不同的次元去做水準的分庫分表拆分。DRDS所做的事情就是在分庫分表表的基礎上,把它揉合成邏輯庫和邏輯表的概念,其優勢在于進行分庫分表後,對于使用者來說看到是還是一張邏輯庫或邏輯表。

彈性擴充解決方案

  • 利用雲上計算資源,輕松應對業務高峰
  • 按需使用雲資源,高峰結束後快速釋放
  • 一站式服務,簡單易用

    SDM混合資料管控所做的事情就是實作一鍵的資料庫彈到雲上去,之後做一個雲上與雲下混合的資料庫,通過統一的管控平台,對雲上的和雲下的資料庫進行統一的管理。

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

如何保證系統的穩定可靠

  • 提供多種資料庫容災方案:考量:RPO,RTO,成本,擴充性。
  • 覆寫資料庫容災的各種需求:容災建設,監控,容災演練,容災切換,資料校驗及修複。
  • 建構資料庫異地容災的完整體系

    多層級高可用方案:

1)備份上傳:采用單點寫入方式,RPO為最後一次成功上傳的備份的時間點到崩潰時間,RTO為小時級甚至天級,通過正常的資料庫備份,将備份集上傳至雲端OSS存儲。

2)DBS備份上雲:采用單點寫入方式,RPO為秒級,RTO為小時級,通過捕獲資料庫變化日志持續将資料庫增量備份到雲端,保有資料庫最新的資料。

3)單向實時同步:采用單店寫入方式,RPO為小于1秒,RTO為秒級到分鐘級,其特點在于持續增量同步資料變化到容災端資料庫,容災端資料庫為讀寫打開狀态,但邏輯上不接受應用寫入。

4)異地多活:采用多點寫入方式,RPO為小于1秒,RTO僅應用流量切換時間,多活架構,資料多點寫入,資料變化雙向複制。需要做多點間資料寫入的隔離,防止記錄在多點被更新。

對于現在阿裡的資料庫架構來說四種方案均能夠支援,并且主要采用異地多活的方案。對于前面所提到的應用做了服務化這個問題,一些資料是需要依賴其他資料的,這時候如何實作資料之間的互相實時流轉,且滿足業務需求的,這時候就需要資料同步來實作。

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

讓資料成為架構的動脈

針對資料自由流轉這個問題,列舉了幾個典型的實踐案例:

1)上雲遷移:(同異構)資料在雲上和雲下自由流轉。

2)在離線:線上的資料庫同步到離線,進行實時分析。

3)多活同步:單元之間的實時雙向同步,滿足異地容災需求。

4)下遊消費:通過訂閱實時增量消息,滿足搜尋等下遊業務。

5)實時大屏:線上資料,流經實時計算,大屏展示。

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

兼顧資料安全和效率

保證資料安全的前提下,怎樣保證效率是每個研發者所要考慮的問題,DBA已經成為瓶頸。我們所做出的解決方案是通過DMS企業版平台,此平台主要解決兩個問題,第一個就是研發效率的問題,讓研發者對資料庫的操作不在成為瓶頸;第二個問題就是資料安全問題,我們會對權限進行非常精細以及明确的管控,我們對權限定義的力度可以細化到某一個庫、某一個表或某一個列的程度。

接下來簡單介紹下DMS資料庫平台,現如今資料庫類型衆多,但DMS平台支援多種資料庫類型,在資料庫控制層之上有一個安全控制層,也就是前面所提到的資料安全。若沒有資料安全,我們會遭受很多風險與挑戰。此外還有核心功能層,面向研發時對資料庫的操作全部通過自助的方式來實作,使用者則更多的是面向研發同學、營運以及背景同學來看的。

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

在解決資料安全和效率的問題之後,我們還面臨着另一個問題,即業務個性化的權衡問題,對于資料庫的管理人員來說,更希望一個資料庫能夠支撐所有的業務,在統一化、規模化運維的時候是最友善的。但實際上業務需求是很多元化的,這時一種資料庫就很可能無法包含整個業務。例如淘寶上有上千個應用,有些文檔型的應用結構定義常常會發生變化,又比如有一些IOT的使用者,在IOT場景下很多時候是偏向時序的分析,時序資料分析的時候或日記類的資料分析的時候我們把這些資料放到哪裡呢?為了解決這些問題我們提供了多種資料庫引擎,如下圖顯示。

共同探索企業級資料庫架構之道路企業資料庫現狀企業級架構的基本訴求如何提升系統的擴充性Scale Out解決方案彈性擴充解決方案如何保證系統的穩定可靠讓資料成為架構的動脈兼顧資料安全和效率産品總結

雖然提供了很多資料庫類引擎,但是在統一運維上面也并沒有做太多的妥協,資料庫引擎衆多,但資料庫中台是能夠很好的包容這些産品的。

産品總結

為了滿足企業架構的需求,我們采用分布式資料庫Scale Out實作彈性擴充,此外還有多樣化存儲引擎滿足業務需求,讓每個資料庫都能發揮它最大的作用;同時通過資料流轉,打通任督二脈;以及多層級的容災保證系統高可用性,提出了高效的資料庫DevOps和資料安全方案。

本文由雲栖志願小組毛鶴整理編輯