POLARDB產品特性和通用業務場景
2017雲棲大會POLARDB專場,阿裏雲高級技術專家賀軍帶來POLARDB產品特性和通用業務場景的演講。本文主要從POLARDB產品架構開始談起,接著介紹了產品特性,最後著重分享了POLARDB通用業務場景。
以下是精彩內容整理:
產品架構
當我接觸到POLARDB時很震驚,因為它是集計算、存儲、網絡,眾多的創新於一體的,我個人理解是跨代界的裏程碑產品。它采用了全新的設計理念,Cloud Native,和之前談到雲數據庫設計理念有很大的不同。數據庫最早的血緣關係來自於IT時代關係型數據庫,是那個時代計算力的創造。可是當我們把計算力放到公有雲上麵來連接用戶業務的時候,做了很多很多創新的能力提供,可是這樣遠遠不夠,為什麼呢?今天我們需要針對公有雲的環境,針對公有雲環境下用戶業務的一些場景來設計一款公有雲上使用的關係型數據庫,這是很難的事情。
POLARDB采用了計算、存儲、分離的架構,我們知道這一句話說起來容易,做起來是非常難的。因為存儲之所以要和計算放在一起,是為了性能。做一個關係型數據庫,所有關係型數據庫首要就是性能,當把計算和存儲做分離是很容易構想,怎麼創造出來是非常難的。
今天POLARDB采用計算與存儲的分離是一次大膽的創新,不僅是一個想法,而且我們做到了。關係型數據庫的難點在於什麼,它要支持ACID的語義,一個關係型數據庫不支持AC的語義,是不能支持在線事務處理的業務場景的。如果又要支持ACID,又要性能很好,又要在雲上提供公有雲的各種彈性能力,還要性價比。放眼市麵上商用數據庫,似乎覺得多多少少是一種幻想。能不能把所有特點,我們的功能、能力、性價比融合在一起,有一種滿足絕大多數業務場景的架構來支撐呢?我們通過對業務的理解,公有雲這麼多年的積累,我們采用一寫多讀的數據庫架構,極大簡化了數據庫多寫的複雜性。同時又能夠滿足絕大多數使用場景。我們采用了自主研發分布式存儲引擎,這個引擎可以是阿裏雲自主研發的核心武器,由於采用了共享分布式存儲引擎的技術,使得我們POLARDB才有可能提供多維的彈性能力。
如圖,它分為三個層次。最上麵是DBserver,采用一主多從的架構,其它節點通過在線的擴展或者伸縮來支持讀的請求,底層是分布式快存儲的設備。
POLARDB 產品特性
POLARDB有哪些特點?首先關係型數據庫的訴求就是性能要好。如果說一個關係型數據庫性能不好,很難滿足在移動互聯網時代數據爆發性增長下處理能力的要求。POLARDB的性能好,好在哪些方麵呢?具體如下:
- 極速。單點QBS很輕鬆上到50萬,由於采用共享式分布存儲,POLARDB增加一個隻讀節點時性能很好,共享一個數據不用再增加一個新的隻讀實例進行數據複製,減少了數據複製的開銷,增加隻讀實例的時間快則1分鍾,慢則5分鍾,而且不會因為數據規模的增加導致時間的增加。另外,采用一主多讀的結構,延遲也是控製在毫秒級。還有做備份秒備。這些能力都是具有極速的性能。
- 超大容量。當數據用到一定的時候,隨著數據量的增加到2個TB的時候好像不夠用了。今天POLARDB能夠提供超過100個TB級別的數據量,本身在關係型結構化數據的層麵來講,是非常大的數據級別。
- 應需而變,彈性伸縮。雲的彈性在POLARDB數據庫架構上得到充分的發揮,根據用戶業務變化靈活的做升級。
- 兼容MySQL。開源數據庫加進來已經超過Oracle數據庫,而且這個趨勢每年在遞增,我們現在向下百分之百兼容,也會盡快展開對SQL標準的支持。
- 高可靠,高可用。POLARDB采用一主多從的架構,天生支持高可用。當主節點有故障時,會自動到指揮節點。同時數據也是多副本的,數據可靠性可以得到天然的保障。
POLARDB 通用業務場景
講到POLARDB產品能力時,一個產品的誕生,它的價值、產品的榮耀最後還是來自於服務。如果沒有用戶的使用,沒有解決用戶場景各種問題,我們很難體現一個產品的價值。對於公有雲上用戶來講,它首先需要考慮的是訴求能不能通過雲數據庫來解決。新業務,或者已有的業務,如果我想遷移到雲上麵,我想用性價比更高的數據庫,我想使用新一代數據庫,把數據庫放在公有雲上,這涉及到用戶整體遷移成本。
如果整體遷移用戶非常便捷遷移上來,那麼這個遷移成本是非常低的。如果用戶還需要改業務程序,這個過程就非常痛苦,也會帶來一些潛在的風險,這是用戶去做的事情。我們需要提供強大的性能滿足高端用戶的需求,業務上到雲上,我相信公有雲,相信阿裏雲。業務上提供7×24小時的服務,所有的業務是不能中斷。當用戶數增加了之後,數據庫是否有足夠的彈性,是否有足夠的擴展能力來滿足業務場景能力的增加。
最後,數據要安全可靠,滿足這幾個用戶的訴求,才能體現數據庫產品服務用戶的價值。剛才講到了POLARDB的能力和服務用戶的場景,我把整個大圖做一個分解,分成四個場景。
高吞吐量、大數據量處理
高吞吐量,大數據量的處理能力。公有雲最早的時候都是服務一些互聯網網站的用戶。隨著公有雲能力的增強,公有雲各種軟硬件持續的進化,公有雲服務的能力不可同日而語。有一些大客戶,或者一些中型客戶,或者有潛力業務增長的客戶,他的業務量越來越大,數據量也越來越大。我們知道在移動互聯網時代,數據不僅僅是為了解決需求的問題,數據很可能接下來會做一件更偉大的事情,數據可能會改善供需關係的平衡。因為我們知道今天的計算,怎麼提高生產效率,生產的效率性能越來越好,用戶服務的場景效率就越高,它的性價比也就越好。我們因為服務了用戶之後,有了數據之後就會收集用戶的訴求,我們就知道該給用戶提供什麼,有了數據會因需而變,有了數據之後能夠提前感知數據的變化。數據可能會改變供需的不平衡,這是大數據時代的貢獻能力,隨著數據的無限增長,數據庫作為商業文明支撐後台計算能力,它在計算力上也需要處理更多數據量的處理能力。
我們采用讀寫分離的架構,能夠應對更多的客戶端處理係統,同時采用共享存儲,支持100TB以上的規模,應對互聯網環境下數據量的增加。
高可用、業務彈性能力
幾年前在做developer時候,那時候開發一個高可用軟件。當時我們想通過兩個單節點上裝開源的MySQL,再花錢買一個高可用的軟件,然後再學習高可用軟件的配置,才能做到讓兩個機器上運行LAMP架構高可用能力。今天在公有雲上,公有雲高科技能力把普惠科技用更低的成本,把科技含量用更低的價格服務所有公有雲上用戶,它所帶來的價值巨大。
我們看這張圖,每一個POLARDB的計算節點、CPU和內存不夠用的時候可以很容易往上升。今天通過共享存儲的架構,再去做Scale Up和Scale In。當讀業務需求量不大時,還可以把隻讀節點刪掉。今天由於競爭、營銷、互聯網一些生態的變化,我們的業務可能時間窗口到小時,甚至分鍾級,電商經常搞一些秒殺,可能一個小時業務流量就上來了。有這個能力,可能分分鍾加一台隻讀節點,這個事情就變得容易了。
上雲、遷移
當一個新的東西,更高級的東西出現的時候,我們特別想來用,可問題是如果還需要改變業務程序很難。如果MySQL兼容的話,它上雲非常輕鬆,再借助其它上雲的工具,做一些邏輯的遷移,整個上雲甚至在雲上麵遷移的過程都非常平滑。
今天進入了雲計算,物聯網,人工智能的時代。之前說互聯網要從線上走到線下,可能一些傳統行業也要走到線上,甚至用人工智能開辟一些新的業務形態。行業+互聯網,可能更多會擁抱雲這種性價比高、具有彈性、部署容易的特點,它就會遷到公有雲上麵。有這樣一些遷移工具,兼容也解決了,上雲的代價就非常低,整體上雲遷移的成本比以前低很多。
高可靠、備份容災
最後一點,高可靠備份容災能力。POLARDB有一個產品架構圖,POLARDB是一個集群架構,在DBserver層都是集群架構。對於集群架構來說,它的網絡連接可以為Mission Critical應用服務。
回頭來看,我個人理解POLARDB,它應該是一種想象力+創造力+應變力,來專門設計的一款數據庫產品。我相信POLARDB就是以信仰的精神,加上所謂的努力和付出,今天才能呈現給大家。
最後更新:2017-10-27 20:03:55