天天看點

POLARDB産品特性和通用業務場景

2017雲栖大會POLARDB專場,阿裡雲進階技術專家賀軍帶來POLARDB産品特性和通用業務場景的演講。本文主要從POLARDB産品架構開始談起,接着介紹了産品特性,最後着重分享了POLARDB通用業務場景。

以下是精彩内容整理:

産品架構

當我接觸到POLARDB時很震驚,因為它是集計算、存儲、網絡,衆多的創新于一體的,我個人了解是跨代界的裡程碑産品。它采用了全新的設計理念,Cloud

Native,和之前談到雲資料庫設計理念有很大的不同。資料庫最早的血緣關系來自于IT時代關系型資料庫,是那個時代計算力的創造。可是當我們把計算力放到公有雲上面來連接配接使用者業務的時候,做了很多很多創新的能力提供,可是這樣遠遠不夠,為什麼呢?今天我們需要針對公有雲的環境,針對公有雲環境下使用者業務的一些場景來設計一款公有雲上使用的關系型資料庫,這是很難的事情。

POLARDB采用了計算、存儲、分離的架構,我們知道這一句話說起來容易,做起來是非常難的。因為存儲之是以要和計算放在一起,是為了性能。做一個關系型資料庫,所有關系型資料庫首要就是性能,當把計算和存儲做分離是很容易構想,怎麼創造出來是非常難的。

今天POLARDB采用計算與存儲的分離是一次大膽的創新,不僅是一個想法,而且我們做到了。關系型資料庫的難點在于什麼,它要支援ACID的語義,一個關系型資料庫不支援AC的語義,是不能支援線上事務處理的業務場景的。如果又要支援ACID,又要性能很好,又要在雲上提供公有雲的各種彈性能力,還要成本效益。放眼市面上商用資料庫,似乎覺得多多少少是一種幻想。能不能把所有特點,我們的功能、能力、成本效益融合在一起,有一種滿足絕大多數業務場景的架構來支撐呢?我們通過對業務的了解,公有雲這麼多年的積累,我們采用一寫多讀的資料庫架構,極大簡化了資料庫多寫的複雜性。同時又能夠滿足絕大多數使用場景。我們采用了自主研發分布式存儲引擎,這個引擎可以是阿裡雲自主研發的核心武器,由于采用了共享分布式存儲引擎的技術,使得我們POLARDB才有可能提供多元的彈性能力。

POLARDB産品特性和通用業務場景

如圖,它分為三個層次。最上面是DBserver,采用一主多從的架構,其它節點通過線上的擴充或者伸縮來支援讀的請求,底層是分布式快存儲的裝置。

POLARDB 産品特性

POLARDB有哪些特點?首先關系型資料庫的訴求就是性能要好。如果說一個關系型資料庫性能不好,很難滿足在移動網際網路時代資料爆發性增長下處理能力的要求。POLARDB的性能好,好在哪些方面呢?具體如下:

極速。單點QBS很輕松上到50萬,由于采用共享式分布存儲,POLARDB增加一個隻讀節點時性能很好,共享一個資料不用再增加一個新的隻讀執行個體進行資料複制,減少了資料複制的開銷,增加隻讀執行個體的時間快則1分鐘,慢則5分鐘,而且不會因為資料規模的增加導緻時間的增加。另外,采用一主多讀的結構,延遲也是控制在毫秒級。還有做備份秒備。這些能力都是具有極速的性能。

超大容量。當資料用到一定的時候,随着資料量的增加到2個TB的時候好像不夠用了。今天POLARDB能夠提供超過100個TB級别的資料量,本身在關系型結構化資料的層面來講,是非常大的資料級别。

應需而變,彈性伸縮。雲的彈性在POLARDB資料庫架構上得到充分的發揮,根據使用者業務變化靈活的做更新。

相容MySQL。開源資料庫加進來已經超過Oracle資料庫,而且這個趨勢每年在遞增,我們現在向下百分之百相容,也會盡快展開對SQL标準的支援。

高可靠,高可用。POLARDB采用一主多從的架構,天生支援高可用。當主節點有故障時,會自動到指揮節點。同時資料也是多副本的,資料可靠性可以得到天然的保障。  

POLARDB 通用業務場景

POLARDB産品特性和通用業務場景

講到POLARDB産品能力時,一個産品的誕生,它的價值、産品的榮耀最後還是來自于服務。如果沒有使用者的使用,沒有解決使用者場景各種問題,我們很難展現一個産品的價值。對于公有雲上使用者來講,它首先需要考慮的是訴求能不能通過雲資料庫來解決。新業務,或者已有的業務,如果我想遷移到雲上面,我想用成本效益更高的資料庫,我想使用新一代資料庫,把資料庫放在公有雲上,這涉及到使用者整體遷移成本。

如果整體遷移使用者非常便捷遷移上來,那麼這個遷移成本是非常低的。如果使用者還需要改業務程式,這個過程就非常痛苦,也會帶來一些潛在的風險,這是使用者去做的事情。我們需要提供強大的性能滿足高端使用者的需求,業務上到雲上,我相信公有雲,相信阿裡雲。業務上提供7×24小時的服務,所有的業務是不能中斷。當使用者數增加了之後,資料庫是否有足夠的彈性,是否有足夠的擴充能力來滿足業務場景能力的增加。

最後,資料要安全可靠,滿足這幾個使用者的訴求,才能展現資料庫産品服務使用者的價值。剛才講到了POLARDB的能力和服務使用者的場景,我把整個大圖做一個分解,分成四個場景。

<b>高吞吐量、大資料量處理</b>

POLARDB産品特性和通用業務場景

高吞吐量,大資料量的處理能力。公有雲最早的時候都是服務一些網際網路網站的使用者。随着公有雲能力的增強,公有雲各種軟硬體持續的進化,公有雲服務的能力不可同日而語。有一些大客戶,或者一些中型客戶,或者有潛力業務增長的客戶,他的業務量越來越大,資料量也越來越大。我們知道在移動網際網路時代,資料不僅僅是為了解決需求的問題,資料很可能接下來會做一件更偉大的事情,資料可能會改善供需關系的平衡。因為我們知道今天的計算,怎麼提高生産效率,生産的效率性能越來越好,使用者服務的場景效率就越高,它的成本效益也就越好。我們因為服務了使用者之後,有了資料之後就會收集使用者的訴求,我們就知道該給使用者提供什麼,有了資料會因需而變,有了資料之後能夠提前感覺資料的變化。資料可能會改變供需的不平衡,這是大資料時代的貢獻能力,随着資料的無限增長,資料庫作為商業文明支撐背景計算能力,它在計算力上也需要處理更多資料量的處理能力。

我們采用讀寫分離的架構,能夠應對更多的用戶端處理系統,同時采用共享存儲,支援100TB以上的規模,應對網際網路環境下資料量的增加。

<b>高可用、業務彈性能力</b><b></b>

POLARDB産品特性和通用業務場景

幾年前在做developer時候,那時候開發一個高可用軟體。當時我們想通過兩個單節點上裝開源的MySQL,再花錢買一個高可用的軟體,然後再學習高可用軟體的配置,才能做到讓兩個機器上運作LAMP架構高可用能力。今天在公有雲上,公有雲高科技能力把普惠科技用更低的成本,把科技含量用更低的價格服務所有公有雲上使用者,它所帶來的價值巨大。

我們看這張圖,每一個POLARDB的計算節點、CPU和記憶體不夠用的時候可以很容易往上升。今天通過共享存儲的架構,再去做Scale Up和Scale

In。當讀業務需求量不大時,還可以把隻讀節點删掉。今天由于競争、營銷、網際網路一些生态的變化,我們的業務可能時間視窗到小時,甚至分鐘級,電商經常搞一些秒殺,可能一個小時業務流量就上來了。有這個能力,可能分分鐘加一台隻讀節點,這個事情就變得容易了。

<b>上雲、遷移</b>

POLARDB産品特性和通用業務場景

當一個新的東西,更進階的東西出現的時候,我們特别想來用,可問題是如果還需要改變業務程式很難。如果MySQL相容的話,它上雲非常輕松,再借助其它上雲的工具,做一些邏輯的遷移,整個上雲甚至在雲上面遷移的過程都非常平滑。

今天進入了雲計算,物聯網,人工智能的時代。之前說網際網路要從線上走到線下,可能一些傳統行業也要走到線上,甚至用人工智能開辟一些新的業務形态。行業+網際網路,可能更多會擁抱雲這種成本效益高、具有彈性、部署容易的特點,它就會遷到公有雲上面。有這樣一些遷移工具,相容也解決了,上雲的代價就非常低,整體上雲遷移的成本比以前低很多。

<b>高可靠、備份容災</b>

POLARDB産品特性和通用業務場景

最後一點,高可靠備份容災能力。POLARDB有一個産品架構圖,POLARDB是一個叢集架構,在DBserver層都是叢集架構。對于叢集架構來說,它的網絡連接配接可以為Mission Critical應用服務。

回頭來看,我個人了解POLARDB,它應該是一種想象力+創造力+應變力,來專門設計的一款資料庫産品。我相信POLARDB就是以信仰的精神,加上所謂的努力和付出,今天才能呈現給大家。