本文由騰訊雲數據庫發表數據庫
注:本文摘自2018年11月22日騰訊雲數據庫CynosDB新品發佈會的演講實錄。隨着互聯網信息的發展,你們也對雲這個詞彙也不是特別陌生了,做爲全球首選的雲服務廠商之一的騰訊雲,依託騰訊多年的業務積累和技術沉澱,咱們推出了高性能、低成本、安全可靠的總體數據服務解決方案。而且隨着客戶數據日益增加,也作了相關的調研和分析,推出了騰訊雲新一代自研數據庫。我這裏先賣一個關子,由咱們這邊的技術嘉賓給你們揭曉咱們相關的數據庫內容。編程
——————————我是分割線————————小程序
你們下午好!我是騰訊雲數據庫產品中心NewSQL的產品負責人,我叫劉峯。我想在座的各位有誰瞭解什麼叫NewSQL?我給出一個比較狹義的定義,NewSQL其實就是SQL加上NoSQL。咱們說數據庫有三個比較重要的歷史階段,第一是SQL標準的引入,第二個是NoSQL的流行,第三個是NewSQL的誕生。若是前兩個重要的歷史時期大家錯過了,那麼此時此刻是第三個重要的時刻,騰訊雲自研的NewSQL數據庫的誕生。安全
咱們首先來看一下雲數據庫有哪些類型,有兩種,搬遷和雲原生。雲計算時代的到來,廠商須要提供給客戶雲數據庫服務,一個比較直接的想法是,做爲雲廠商咱們能夠把傳統的數據庫搬到雲上來,給客戶以租用的方式提供服務。這是大多數咱們的雲廠商提供服務的方式。當咱們作了這件事情之後,咱們發現傳統數據庫在雲上有不少的問題,而這些問題是傳統數據庫既有的問題,在雲上並無獲得解決。同時,咱們發現傳統數據庫也不能適應雲在擴展性、可靠性和規模化的優點。這個時候,就迫使咱們雲廠商來考慮,如何將傳統的數據庫和雲數據庫、雲計算作一個融合,這個融合的點,咱們稱之爲雲原生。服務器
舉一個比較恰當的例子,你們能夠理解爲傳統的數據庫搬到雲來提供雲數據庫服務是一種搬家模式,而云原生數據庫提供的是一種「拎包入住」的方式。網絡
剛纔咱們提到了傳統數據庫有不少問題。如今你們看一下傳統數據庫有哪些問題。架構
第一個問題,備份回檔慢。這是一個經典的利用傳統數據庫在雲上的備份回檔的結構,若是要作備份回檔咱們須要把原有的數據拷貝一份到雲存儲上,同時將雲存儲的數據拷貝到用戶數據庫的實體上。1T的數據須要使用3個小時,2T的數據須要6個小時,若是備份回檔3T的數據,就是今天晚上我就能夠先下班了。運維
第二個問題,故障恢復慢,單獨的數據庫支撐的可能性是很低的,若是數據庫宕機了,業務就中斷了。一般的說法是,咱們在主數據庫邊上會掛一個從數據庫,從數據庫會從主數據庫來同步數據,但很不幸的是,大多數狀況下,若是你的主數據庫壓力比較大的時候,從數據庫是不能獲得及時的數據更新的。舉一個不恰當的例子是,在雙十一購物高峯的時候你從購物網站選不少禮物放在購物車,而恰巧主數據庫宕掉了,即便有從數據庫,但卻沒有及時獲得主數據庫更新的數據,因此你會發現你購物車裏的那些東西都已經不見了。咱們認爲在傳統數據庫上這種故障恢復慢的問題仍是比較嚴重的。分佈式
第三和第四個問題,是縱向擴展弱、橫向擴展弱。傳統數據庫是盒子,裏面裝的是數據,若是想擴展傳統數據庫須要一個更大的盒子。舉一個更形象的例子,好比說咱們本身開發了一款遊戲,剛開始的時候咱們認爲這個遊戲沒有多少用戶玩兒,咱們用了一款數據庫是1個CPU、2G內存100G存儲空間,很幸運的是我這款遊戲大賣了,這時候發現CPU的內存不夠用了,須要擴展,傳統數據庫的作法是什麼?是建立一個4核、8G、1T的數據庫,以後把數據庫搬遷到這裏。這涉及到數據庫遷移的問題,那麼1T數據3個小時,2T數據6個小時,3T數據我今天也幹不完,明天再接着幹。相信這種服務提供給客戶,客戶也不會滿意的,一樣橫向擴展是相同的問題。性能
第五個問題,維護成本高。爲何說維護成本高呢?若是使用傳統數據庫,既要人爲地進行手動數據備份回檔,又要參與橫向和縱向的擴容,又要作故障恢復,人工參與的成本是很高的,同時加上原有架構的效率很是低,也致使時間成本和人工成本很是高,因此說咱們的維護成本很是高。
第六個問題,資源利用率低。傳統數據庫是大盒子,盒子裏面裝CPU、內存和硬盤。但我須要很大的CPU、內存和硬盤嗎?並不永遠是這樣的,有時候咱們只須要更高的CPU、更大的內存,有時候須要更大的硬盤,難以知足用戶在三個維度方面不一樣的需求正是傳統數據庫很大的問題,不少資源用不了那麼多的時候就形成了資源的浪費。
第七個問題,可用性低。舉一個上個月發生的例子,一家被微軟高價收購的全球性的社交編程和代碼託管網站,因爲它用傳統數據庫主從架構在兩個數據中心作了高可用性,美國政府更換了兩個中心中間的光纜,中斷了43秒,就是這43秒形成了整個網站24小時的宕機和癱瘓。你們能夠想像,利用傳統數據庫架構,即使是這樣的高科技公司都遇到了服務不可用的問題,況且是咱們身邊的企業。
爲了解決傳統數據庫的問題,咱們做爲雲服務廠商提供了一個完整的一站式的解決方案——騰訊雲自研的數據庫產品CynosDB。CynosDB源於單詞Cynosure,是古希臘神話中北極星的名字,就是北天小熊座最亮的一顆星,現譯爲引人注目的人或物、天生的焦點。CynosDB是騰訊雲自研的高性能、高可用、企業級雲數據庫,兼容開源數據庫MySQL和PostgreSQL。
咱們來看一下咱們當初是怎麼考慮要設計這樣一款數據庫的。借用當下比較流行的詞叫「C位」,咱們在CynosDB設計之初考慮了與C相關的設計特性。
CynosDB核心設計理念:
第一,Comprehensive 」兼」容幷包,即全面兼容新版開源數據庫MySQL和PostgreSQL,而目前業內廠商大多隻能兼容一種。咱們兼容了兩款主流的開源數據庫,這樣作能夠幫助企業實現平滑遷移。
第二,Creative分而治之。傳統的數據庫架構其實就是一個大盒子,怎麼分才能把這個內存、CPU和磁盤進行合理的分配,減小資源浪費呢?咱們的實現方式是分而治之,將計算與存儲分離。不放在一個盒子裏,放在多個盒子裏面。實現了這種結構,就至關於咱們須要在計算層和存儲層之間進行通信。通信是經過網絡來進行的,這使得咱們須要減小網絡通信的流量,因此騰訊的CynosDB實現了一個「日誌即數據庫」的架構。
第三,Cloud Native應「雲」而生。咱們的數據庫是搭建在騰訊雲現有的高效穩定的雲服務之上,因此咱們能快速地搭建出高性能、高可用、高可靠的一套雲數據庫。
第四,Cost Effective事半功」倍」。咱們須要一個在性能上能超過傳統數據庫的雲數據庫,而且能夠給客戶減小成本壓力,由於雲計算的自己實際上是要給客戶一個很實惠的服務,因此咱們是說,能夠實現真正的按量計費和彈性的擴增容。
第五,Cohesive相「輔」相成。極簡的軟件優化釋放硬件紅利。咱們每一年都會關心蘋果手機的發佈會,發佈會上其實蘋果每一年都會講咱們今年有更高的CPU,咱們有更大的存儲量,你們有沒有想過有一天,咱們的蘋果手機會運行得愈來愈慢,但蘋果告訴你經過軟件的優化,讓原來的iPhone四、iPhone五、iPhoneSE,不須要升級到更快的CPU,更大的內存就能夠用全部的AppStore的App呢?也許有一天蘋果會作到這個,但CynosDB今天已經作到了。
如今看一下基於核心設計理念建構的CynosDB的產品架構。咱們把盒子拆分了,咱們將計算層獨立出來,而存儲層是用雲自帶的分佈式存儲來實現的。中間的通信是經過網絡進行計算層和存儲層的通信。咱們的架構實現了真正的兼容多種數據庫引擎,由於咱們將計算層獨立出來以後,咱們的計算層就能夠兼容多個數據庫引擎。計算與存儲分離以後,存儲是一塊獨立的服務,你們能夠理解計算是一層服務,存儲是一層服務,外圍咱們接了雲網絡安全服務,不一樣的維度來保證安全可靠。咱們給客戶提供軟件優化與新硬件相結合的解決方案,能夠基於普通硬件來知足本身高性能、高可用的需求。若是有更高的要求,由於咱們是一個企業級的數據庫,咱們能夠結合新硬件,好比說咱們基於SSD的SPDK的驅動和RDMA的網卡提供性能更高的數據庫服務,這個選擇權咱們交給了客戶。
因此咱們說,CynosDB產品架構是基於雲服務和普通硬件的數據庫架構,咱們釋放硬件紅利、不轉嫁硬件成本。
後面重磅介紹一下咱們CynosDB的一個核心部件叫作CynosFS可計算智能存儲,這是騰訊首創的一個存儲系統。咱們在國內率先實現了「日誌即數據庫「的體系架構。什麼意思呢?你們看到左邊實際上是傳統數據庫的一個體系架構。當傳統數據庫發生了一個寫操做的時候,計算和存儲之間須要進行諸多的IO寫入。我在存儲和存儲備份之間也要一樣地進行IO操做,實際上是極大地增長了系統的負載。而CynosDB是右邊的作法,咱們將諸多的IO合併減小爲只寫日誌,因此咱們稱它是日誌即數據庫,也就是說在咱們的系統裏只存在於數據的日誌,咱們稱之爲極簡IO。這至關於咱們把繁忙的北京二環改形成了一個全方位的、立體的軌道交通,極大地提升了系統的運行效率。除此以外,CynosDB還實現了存儲的運維自動化,你們能夠看到日誌寫完了以後是能夠返回的,但是在存儲底層,咱們自動把數據存成三個副本,是經過分佈式一致性協議來維護的。特殊的狀況下,若是一個副本產生了錯誤咱們會從另外兩個副本自動地拷貝數據到損壞的副本上來修復數據。同時,藍色的部分是咱們的數據頁,若是系統須要訪問數據頁,咱們會義務地將日誌轉化成數據,而且這套系統實現了自動擴縮容,因此咱們稱之爲運維自動化的分佈式存儲系統。
咱們來看一下CynosDB利用這種首創的架構和獨有的產品創造的能力。
首先,咱們是業內首家兼容多個數據庫引擎的雲數據庫。
第二,性能突破100萬大關,實現了商用數據庫同等級別的極速性能。
第三,存儲容量達到了128TB,實現了國外雲數據庫領先廠商一倍的性能和存儲量。
第四,告別分鐘進入秒級時代,以前提到了數據庫的種種痛點,咱們有恢復慢、主備切換不可控的問題,而CynosDB將整個計算節點、故障節點恢復的時間從分鐘級帶到秒級。咱們在計算層和存儲層分離以後能夠實現快速的恢復,讓故障節點高可用。
第五,秒級備份,剛纔講到備份回檔1T數據須要的時間,CynosDB在這個痛點上進行了極大的提高,基於快照的備份和回檔,實現了秒級的飛躍,比傳統的備份回檔的速度提升了180倍。
講到上面的這些產品能力,咱們要看一看CynosDB的用戶價值,這是用戶最關心的。
第一,下降成本,提供了一款具備超高性價比的數據庫產品。咱們是基於普通硬件和軟件的極簡優化才作到這一點。達到性能與可用性與商用數據庫至關的水平,成本只有約1/15。
1)從顯性成原本講,雲存儲下降了硬件採購的成本,且咱們的成本是低於國外商用數據庫一個數量級。2)CynosDB將存儲計算分離以後,存儲實現了真正的池化。你們知道,規模化能夠下降邊界成本,而且產生邊際效應,咱們經過分佈式計算存儲將存儲實現了真正的無服務器架構,實現了一個存儲層的智能角度,極大地下降了存儲的成本。也就是說,你能夠根據本身的使用量來分配你的成本,不像咱們原來須要一個盒子或者是須要一個更大的盒子。3),剛纔咱們講到實現了諸多的自動運維的功能來減小人工干預,這至關因而下降了咱們用戶使用的隱性成本。
綜合三個維度的成本的節約,咱們的成本只有傳統商業數據庫的1/15。
第二,靈活的彈性能力。你們若是有在如今的雲上面購買數據庫的經歷會知道,咱們若是買一個數據庫第一是須要多少CPU,第二是須要多大的內存,第三是須要多大的硬盤。要有CynosDB就不須要這三步操做了,不須要知道你要多大的硬盤,購買完以後須要10T,付10T的錢,須要百T付百T的錢,若是不須要存儲能夠不用花錢。找到了真正的自動擴縮容而按使用量付費。
第三,平滑上雲。全面兼容MySQL5.7和PostgreSQ10,這是兩個目前更新的開源數據庫的版本,原有應用零改動,實現了企業的平滑遷移和快速上雲。
第四,安全可靠。我從三個維度來給你們講一下咱們怎麼樣作到安全可靠的。這是咱們雲數據庫乃至雲服務的一個生命線。1)縱向維度,CynosDB存儲實現了一個自動的多版本維護,就像剛纔我講到,咱們寫一份數據在個人存儲實際上是能夠自動維護三個副本,在縱向上是增長了數據得多副本;2)咱們提供了跨區域的高可用,你能夠多添加幾個副本到另外的數據中心區,即使是這個數據中心的數據宕了,那個數據還能夠提供,咱們提供了高可用性,進一步保障安全可靠;3)同時支持騰訊雲現有的安全組和VPC進行網絡隔離,騰訊雲如今的網關服務能夠抵擋黑客攻擊和DDOS攻擊。
咱們將剛纔所列舉的諸多用戶價值放在具體的應用場景來看,咱們如何能解決企業的問題。
第一,高性能、高可用的企業應用。咱們能夠平滑上雲,保證業務連續高效運轉,能夠下降企業的運營成本,能夠經過自動運維減小人工干預。這裏給你們爆一個料,咱們的可計算智能存儲未來會朝着人工智能領域發展,咱們未來會將人工干預減小到最低。因此我說,CynosDB天生適用於傳統企業,支撐傳統企業的關鍵核心業務。
第二,互聯網和遊戲業務。1)應對峯值業務。個人同事也介紹到了,不管是電商仍是遊戲,互聯網業務常常有很大的業務量的峯值變化。CynosDB靈活的計算擴展天生適合應對峯值業務。遊戲領域咱們常常會作衝在線用戶數的活動。傳統狀況下,運維人員會提早一個月購置設備,等活動結束這個設備就不須要了,還須要把這些設備註銷掉,但是CynosDB不須要這項工做。2)快速備份回檔。剛纔講到咱們將備份回檔的速度提升了180倍,能夠想像當你的遊戲版本出現問題的時候,你比競爭對手更快地修復問題,會給客戶提供更快的遊戲服務。3)海量可擴展存儲,CynosDB是一個分佈式的共享存儲,遊戲的公司能夠利用它來實現混服和合服的操做,同時不須要用多個實例來支撐遊戲業務了。因此CynosDB天生適合應用於互聯網公司、遊戲和小程序。
【騰訊雲100元無門檻代金券開搶】各位新老鄉親,騰訊雲數據庫年終福利來啦!爲了更好地爲廣大開發者提供服務,數據君誠摯的邀請您參與本次有獎調研,說你最想說的話,用最好用的數據庫!問卷會佔用您兩分鐘左右的時間,回答完畢後將有機會得到騰訊雲100元無門檻代金券,限雲數據庫和雲服務器使用哦~如您抽中獎品,請在頁面填寫手機號,該手機號將用於接收兌換券碼。數量有限先到先得,12月15日抽獎入口將關閉,快點擊參與吧!
此文已由做者受權騰訊雲+社區發佈,更多原文請點擊
搜索關注公衆號「雲加社區」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!