閱讀482 返回首頁    go 技術社區[雲棲]


阿裏雲雙11訪談之雲數據庫

以下內容根據訪談視頻整理而成。

阿裏雲數據庫產品特性介紹

雲數據庫產品在阿裏雲集團裏做了很多額外的工作和專研。在安全線上雲數據庫達到了很高的安全要求,引入了更多的硬件,在架構上、在代碼層都做了很多的優化。相對於傳統數據出來說,雲數據庫在穩定性和高可用上麵達到了較高的技術上的提升。阿裏雲產品都有一個通用特性就是應用可以快速實現自動化,實現對實例級別的管理、監控,對程序的遷移。阿裏雲雲數據庫團隊不僅在業界上是頂級的專家團隊,在專業上也是屬於國內頂級的水平,阿裏雲數據庫為用戶在雲上的業務做保駕護航的工作。

首先雲數據庫得保障安全用戶把數據放到雲上能安全放心。第二點就是穩定性,阿裏雲的服務得保證穩定性,無論是小到一個網卡的故障,大到一個機房的故障都能保證數據庫的穩定性要求。第三點是用戶的可用性。用戶隻需要在控製台上點擊鼠標,就可以完成以前需要幾個人甚至是一個團隊在幾十個小時或幾天才能完成的事情。最後一個是我們在link級代碼資源方麵做了很多的優化。我們也有非常頂尖的專家團隊為用戶保駕護航、提供代碼層麵的谘詢服務。

阿裏雲數據庫在穩定性方麵的應用

我們都知道在前段時間因為某一個雲廠商出現了穩定性問題,非常多的用戶受到了影響。很多程序員,技術人員第二天上班後發現沒法上班了。所以雲數據庫產品的穩定性和可靠性是非常重要的。阿裏雲上雲數據庫相關產品不管是MySQL、Redis、Mongo對可靠性和穩定性做了一些底層的後台優化和相關措施。

我想依據產品的一些形態上,在穩定性方麵做一些介紹。大家在官網買Redis這樣的產品的時候,有一個基礎版產品形態可供選擇。基礎版也叫單機實例版,也就是隻有一個實例,但是它的性價比很高。基礎版的穩定性如何呢?實際上基礎版的數據並不是單機的,而是保存在雲數據庫底層的穩定係統上麵。它的每份數據有三份備份安全保障,所以數據安全上能達到了九個九的可抗性量級。在主機出現掛機的情況下,雲數據庫上的數據是絕對可靠的。而在遷移到另外一個機器上去啟動的時候,隻需要做一個實例的啟動就可以了,類似於實例的計算、存儲和分離。基礎版的核心數據庫版本是構建在阿裏雲的分布式文件係統上的,我們的Redis5.7穩定版包括現在的SQL Server2012和2016都提供基礎版。

另外一個版本叫高可用版,也叫雙機高可用版。顧名思義,這個版本的每個數據庫實例的背後都有一個總庫,還有一個額外備庫。阿裏雲數據庫團隊自研了一個高可用保障的管控核心係統.,這個係統是阿裏雲針對各種容災場景的檢驗,總結多年經驗設計出來的。當出現主庫的磁盤壞了,網絡不通了等異常情況時,有一套智能的算法來決定主備庫是否需要做切換,這都是默認在備庫自動幫客戶識別出來的。現在MySQL5.6、SQL Server2008,Redis、PPAS這些都提供了雙機容災服務。而且在雲上麵是跨可用區的,意味著可以跨機房容災,就算某一個機房出現了問題,也可以利用管控係統將數據切到另外一個機房上去。這樣,可靠性得到了非常大的提高,滿足了大部分的安全性需求。

在一些尖端領域比如金融領域的穩定性要求很高,基於此阿裏雲在官網上已經推出了金融版MySQL。MongoDB版本質上也是是金融版,因為它本質上實現了三個節點,三個節點之間數據要求有一些強製的配置。數據在寫到主庫上的時候,在兩個備庫也是一定有的,這樣才會反饋給客戶。這個跟普通的主備份不太一樣,它的穩定性要求能滿足更高的需求。MySQL金融版可以實現三個備庫的可用性的,滿足於金融行業安全性的要求。最厲害的地方是另外兩個數據庫不僅僅可以做備份,還可以把它們利用起來做別的服務。MongoDB、MySQL以及POLARDB都提供類似金融版的強悍能力。

阿裏雲數據庫在可靠性方麵的應用

我們都知道解決可靠性問題都是通過容災,一個備件出了問題就用另一個備件的數據。更高級別的穩定性和安全性就是跨全域和跨終級的的這樣的容災能力,提供更高起的可靠性、安全服務。阿裏雲數據庫也提供了這樣的能力。通過專線把數據複製到另外一個城市或者大洲,目前的技術能達到在300km到1000km之內日誌本身的數據傳輸的延時不會超過1秒的級別,這就叫做異地級別容災。所以阿裏雲在穩定性和可靠性方麵涵蓋了所有的場景,在產品形態上對每一種需求都做了相應的分級工作。當然,可靠性做的越高,它的成本也越高。所以基礎版的性價比是最高的,異地容災的費用相對來說較高,但穩定性和安全性做到了極致。

從單副本單節電到跨大洲做容災級帶的,不僅可以解決交換機故障、機房故障甚至地域故障都能保證性能的可靠性。剛剛提到的所有數據庫產品,阿裏雲有豐富的產品形態,供客戶選擇。Redis也提供了很豐富的產品類型,小到單實例、大到非常龐大的變發能力,都可以滿足用戶。如果你有非常大的變發能力、非常大的讀寫量,可以一鍵擴容。讀寫能力可以隨著擴容線性增長。總而言之,阿裏雲數據庫不僅有非常豐富的產品形態、非常好的可靠性、保證用戶可以放心的解決業務層麵的問題,底層的數據不需要關心,交給阿裏雲就行了。

阿裏雲數據庫在數據安全性方麵的應用

很多用戶非常關心的另外一個問題就是安全問題。數據存放在阿裏雲上不能丟失不能泄露這兩個關於安全線的問題。在阿裏雲上的數據庫產品,也做了非常多的安全性相關措施。做了很多的保障。用戶可以放心的使用,沒有人可以訪問到。阿裏雲Redis團隊提供了用戶的密碼、加密等多重安全技術保障數據的安全性,保證數據不會被泄露。

阿裏雲數據庫產品有哪些安全性可以保障?整個阿裏雲產品體係都對安全上做了很多的工作。七成以上用戶自己建的數據庫都存在一些安全問題。比如說密碼、防火牆、等安全性問題。雲數據庫需要把這些安全問題全都解決。對安全問題,阿裏雲數據庫可以說是追求到了極致。從產品角度來看這個問題,我們會把安全劃分成三個階段。事前、事中、事後。什麼意思呢?就是在數據庫正式投入之前,我們就需要在安全上做哪些常規的設置。在使用過程中有哪些安全保障?比如真的突發事件到來,突發事故後要有辦法能夠把它追蹤出來是誰造成了這起事故。分別介紹一下,事前保護,很多核心數據庫產品如MySQL,SQL server都開始進入用戶的專用網絡保護區。專用網絡在底層網絡協議層上就已經保證數據不會被在網絡之外的用戶訪問。這是關於底層協議的問題,用戶是看不到的,完全透明的,這也是阿裏雲數據庫係統架構上的支持。在保護在雲數據庫上我們做了高訪問安全的訪問鏈路控製,做到七層安全保護。傳統的像防禦破解這樣的事就更不必多說了。以上就是在數據庫開始投入之前,就需要解決的一些問題。

在數據庫投入是當中第一個就是鏈接通道的問題。一個請求到數據庫上來,中間被劫持怎麼辦?阿裏雲數據庫主要核心產品都提供了SLS加密機製。這樣在就做到了在事中鏈接通道上的一個保護。還有我們在數據本身,阿裏雲數據庫係統也支持TDE的加密。這兩個方麵,用戶可以在自己的控製台設置。除此之外,對於類似攔截CC攻擊等,我們沒有讓用戶在控製台自己設置,這個屬於常規類安全保護。

阿裏雲在數據庫裏麵做的很全麵的一個方式就是事後神技功能。因為無論防護做的多麼全麵到位,也總有遺漏的地方。阿裏雲數據庫產品都開通了事後神技功能。這個事後神技功能不單單記錄寫,讀也是記錄的,這個用戶可以自主開通。每一條數據的讀都可以記錄,可以告訴客戶是誰訪問了什麼內容。我們不單單做了記錄的工作,在底層的link層麵也做了很多的優化工作。阿裏雲數據庫在追求極致安全的同時還保證效率的最大化,這點是非常具有挑戰性的,本質上來看,這個對實例的印象是低於兩個安全性和可靠性這兩點的。

還有一種安全,不是普通的攻擊和破壞性安全,可能是失誤性安全。比如公司員工原意是刪一個數據表,因為操作的失誤,刪了另外一個表,這是可能發生的而且是不可避免的,隻要有人為的參與,就有可能發生類似的事件。阿裏雲數據庫能保證在這種意外、不可避免的事發生後,也能通過某種機製解決問題,將客戶的損失降到最低。這種情況,阿裏雲數據庫提供了恢複到任意時間點的一個機製,不僅是傳統的備份恢複,而且把它作為一個客戶實例產品化。這樣客戶可以簡單的通過鼠標操作把數據恢複到某一個時間點上。對係統來,操作是人為觸發,被係統認為是正確安全的可執行操作。因為阿裏雲又這麼多的線上用戶,如果因為用戶的各種原因造成數據的丟失等問題,使用阿裏雲數據庫,用戶也是可以通過簡單操作將數據恢複到事故發生前的任意時間點的。

舉個真實的例子,一個遊戲公司發現自己的內部用戶數據。在過去,總會被競爭對手提前掌握。對遊戲公司來說用戶數據是一個非常核心的價值數據。後來才用Redis事後神技功能查出來是人為造成的信息泄露,發現是內部員工透露出來的數據。這個從技術層麵是防不到的,阿裏雲數據庫在事後神技功能加上後,安全層麵基本是涵蓋全了。各個層次的安全問題我們都有相應的應對措施。

阿裏雲數據庫技術團隊優勢

阿裏雲數據庫有很多是自研的,也有很多是基於開源的。隨著時間的推移有些社區新發現了一些漏洞或BUG,導致可能出現安全隱患。因為我們頂級的數據庫專家團隊有針對代碼層麵的各種優化。所有的代碼細節都是非常精通、非常深入研究的。如果社區發現了新的BUG或漏洞,我們基本上可以在第一時間來修複這個漏洞。這個就涉及到了另外一個問題就是我們技術專家團隊對很多內核層麵比如代碼,做了很多優化改進等工作。阿裏雲數據庫團隊對代碼足夠精通,了解足夠深入,可以直接受惠於用戶,比如在代碼層麵的技術谘詢、業務有哪些技術難點或瓶頸,阿裏雲都可以給他提供從下到上各個層次的谘詢服務,這也是阿裏雲的優勢之一。

阿裏雲數據庫團隊的技術人員對技術的極致追求是不一樣的。包括今年的一些非開源數據庫,比如出現的windows的一些問題。阿裏雲的技術專家很快就和window官方進行溝通,快速解決這個問題。可能有些問題和bug是阿裏雲推動他們解決的。阿裏雲專家在技術上對社區的貢獻。包括代碼層的貢獻,大家在雲棲大會上都已經看到了。有很多開源的作者在運氣大會期間親自過來與阿裏雲專家一起交流。Redis產品是基於開源搭建的一個產品,當然有非常多的東西是阿裏雲自己開發的。我們甚至可以和Redis的開源作者一起來交流,一起討論技術細節。這個是國內甚至整個全球的廠商都很難做到的,這是非常大的競爭優勢之一。

這個層麵的一些技術交流為我們提供了很多想法。阿裏雲數據庫有很多獨有的功能,與開源的作者和業界技術大牛的溝通是有很大關係的。這也的阿裏雲技術團隊技術開創和引的工作作風有很大的關係。

阿裏雲不僅把自己的技術分享給大家,還自己創建開源社區。大家可以關注我們的開源社區關注我們的技術發展。我們的產品形態也非常豐富,我們的安全機製有不同層次、不同方麵的機製致供大家選擇。當可選擇類型足夠複雜以後,用戶怎麼去使用、怎麼去選擇,也是一個非常大的挑戰。有很多安全機製,用戶怎麼來選擇。比如用戶在雙11的時候業務流量上漲,希望能擴容到一定的倍數,他需要怎麼操作?用戶的使用門檻,數據庫產品的易用性,阿裏雲也做的也很多的工作,這是雲棲上本身的優勢。雲數據庫擁有彈性升級的優勢。阿裏雲數據庫一大特點就是能在線的升級,用戶完全透明。這與資源的彈性勢資源是不一樣的。相對於傳統來說,彈性升級使用戶的工作量和效率工作量大大減少,效力得到了極大的提升。

 

數據的搬遷、挪移、升級對用戶的影響方麵,阿裏雲也做了很多的工作。在雙11,很多公司都有自己的大促活動。這時客戶業務流量可能是平時的幾十倍或有更高的流量,雲數據庫可以在活動之前升級在活動結束後降級。有時候單個機器的資源是有限的,能力也是有上限的。這時雲數據庫提供了一隻讀實例,做到讀寫分離操作。隻要購買了隻讀實例,客戶就可以簡單的在雲數據上做配置,這樣可以分擔數據壓力,做到置承擔原來的幾十倍或者上百倍數據力。如果在雲上資源仍然不夠,這就會涉及應用程序的更新、升級。實際上解決寫的問題本質上就是拆分,解決讀等問題本質上就是加各種緩存。這也是阿裏雲的產品形態之一,再次證明了阿裏雲產品形態的豐富,可以覆蓋各種各樣的場景。

阿裏雲數據庫在數據熱點技術的應用

熱點數據技術比較多的可能用Memcache,Redis做緩存。阿裏雲數據庫本身也提供了熱點數據的功能。訪問Redis,Redis裏麵還有更熱的數據,我們可以提供利用同樣的數據庫,提到更高的訪問能力。阿裏雲數據庫涉及了很多技術細節。隻要你有需求,阿裏雲官網有非常多的數據庫產品,每個雲數據庫產品都提供了非常多的形態,提供了非常多的技術細節,都可以滿足客戶的需求。

阿裏雲數據庫雙十一優惠活動

阿裏雲數據庫在雙11也有很多優惠活動。第一是數據庫產品,包括MySQL,SQL Server,PPAS,Redis,MongoDB,隻要新購買,可以享受限量一台一年內五折優惠。如果是續費,不限台數,一年八折。對於前段時間重磅發布的POLARDB由於還在公測階段,第一波公測活動已經結束了,很快會有第二波公測,公測是不需要費用的。POLARDB版本是接入MySQL裏的,不需要數據的遷移。但性能是MySQL的六倍,最重要的是他的業務數據量可以達到上百TB量級,而且最大可以擴容到15個指數級別,這是POLARDB的一大特性。POLARDB也是阿裏雲數據庫集合了多年的技術,對代碼、數據庫的管理、應用經驗的集合的一個產品。在內部的反響非常好,解決了很多核心業務的問題。POLARDB現在還在公測階段,大家可以多多關注這方麵信息,申請公測,用戶也不需要擔心各種兼容性。


雙11第一波,紅包領不停,點擊看詳情:https://promotion.aliyun.com/ntms/act/pre20171111.html

最後更新:2017-11-01 21:04:58

  上一篇:go  Android 優化二 Java內存分配機製及內存泄漏
  下一篇:go  阿裏雲雙11訪談之CDN