寫完雲服務器ECS,原本想先寫負載均衡的。git
由於發現不少客戶,都是直接將單臺雲服務器應用對外提供訪問,若是雲服務器宕機,應用就會中止服務。雲服務器標稱有99.95%的可用率,一年下來宕機四個多小時也是正常的。要想提高應用的可用率,就須要多臺雲服務器(至少兩臺,最好分佈式兩個不一樣的可用區),而後利用負載均衡將流量按必定規則導向後端的雲服務器應用集羣。github
但這一篇仍是決定先寫寫雲數據庫RDS,雲數據庫RDS有好幾個曾用名。最先的名字就是RDS(阿里雲的產品,大部分在命名的時候故意和亞馬遜有一點微小的差別,好比ECS和EC2。只有RDS這個名字是徹底同樣,Rational Database Service,關係型數據庫服務)。數據庫
RDS不僅是一種數據庫,目前阿里雲的RDS已經支持包括MySQL、PostgreSQL、PPAS、SQL Server等四種不一樣的關係型數據庫。後端
而後呢,RDS越作越好,團隊也也來越大,後面包括Redis、MongoDB、Greenplum等愈來愈多的數據存儲類產品都被歸入到旗下,因此起了一個更大的品牌叫作AliCloudDB,中文名就叫雲數據庫,RDS則變成了旗下的一個產品線,中文名就變成了雲數據庫RDS。後來麼,AliCloudDB又換成了ApsaraDB,Apsara就是傳說中的飛天啦。安全
先不說其餘的NoSQL數據庫產品,這一篇集中精力來看看雲數據庫RDS。服務器
企業使用阿里雲,通常來講,購買雲服務器ECS基本上是必須的。但須要數據庫的時候,就會面臨兩種選擇:一種固然是直接使用雲數據庫RDS,另一種則是在雲服務器ECS上本身安裝部署數據庫。這兩種選擇有什麼不同呢?架構
首先,使用RDS固然是最省事的。RDS背後彙集了阿里最好的DBA團隊負責運維,最好的數據庫內核開發團隊負責改進數據庫(主要指MySQL和PostgreSQL開源數據庫,SQL Server自己只能期望微軟了),將不少須要DBA平常運維的工做逐漸歸入實現產品化。負載均衡
使用的客戶就能夠從不少底層的任務中解放出來,好比建立新的MySQL備庫,只須要在RDS控制檯點一下「建立只讀實例」、「建立災備實例」或者「建立臨時實例」便可。爲何有三種不一樣實例?分別對應了三種不一樣的場景:同城讀寫分離、異地機房容災、按時間點恢復取數。運維
RDS的總體架構,提及來也不復雜。主要有兩種模式:分佈式
標準模式
標準模式很是簡單,只是經過負載均衡SLB將RDS背後的主備庫對應用作了屏蔽,發生切換時,只須要修改負載均衡的配置,將後面服務的物理IP更換成新主庫的地址便可。標準模式有一個限制,同一時間,RDS只能支持外網訪問地址或者內網訪問地址中的一種。由於只是加了負載均衡,也不具有SQL攔截的能力。對於用戶來講,這種模式的RDS只是提供了一個Web控制檯+主備切換。
高安全模式
高安全模式在負載均衡和主備庫之間加了一層透明的代理層(Proxy),對數據庫的全部訪問都會在Proxy進行解析處理,所以在標準模式的基礎上,還能夠作到防止SQL注入。同時,由於多了一層代理,響應時間也會相應的受到影響,官方的說法是20%左右。該模式支持內外網訪問地址同時存在。
和雲服務器同樣,雲數據庫RDS的購買也支持包年包月和按量付費兩種模式,而後選擇對應的地域和可用區,如何選擇地域和可用區能夠參考以前介紹雲服務器ECS的文章。
前面也說到,RDS支持四種不一樣的關係型數據庫,賣的最火的毫無疑問是MySQL,也有很多企業客戶由於使用的是Windows平臺和.net技術會選擇帶正版License的SQL Server,其次是最近逐漸升溫的老牌開源數據庫PostgreSQL,企業客戶能夠根據自身的業務場景需求來選擇。
至於號稱和Oracle高度兼容的PPAS,我的觀點,儘可能仍是避免使用吧,若是應用真的對Oracle有重度依賴,目前阿里雲已經推出獨享型ECS,在獨享型ECS中自建Oracle多是更好的選擇。
RDS的規格從1核1G(鏈接數300,IOPS600)開始,最高的30核220G(鏈接數64000,IOPS20000)規格也支持獨佔物理機,對於大部分數據庫場景來講,應該都可以很好的支持。
若是須要更高的IOPS支持,要麼採用DRDS來作分庫分表作水平拆分,要麼採用高規格的獨享型ECS+4塊SSD數據盤(每塊盤最高支持IOPS20000)作到單實例80000 IOPS的支持。
RDS是個好東西,在絕大部分場景下,直接使用雲數據庫,對於企業客戶來講都是更優的選擇。袋鼠雲也選擇RDS for MySQL作爲自身產品SaaS版本的數據庫。
但像上面說的,也有一些場景須要考慮在雲服務器上自建數據庫,好比說雲上Oracle,好比說須要單實例更高IOPS支持,好比說有些客戶具有較強的DBA能力,但願可以更多的控制數據庫而不是面對一個封裝的黑盒子產品,等等。
針對自建數據庫的場景,袋鼠雲的 EasyDB數據庫管理平臺(https://easydb.dtstack.com) 能夠幫助企業客戶更好的管理數據庫,不論是雲上仍是雲下的Oracle/MySQL,對於性能監控、高可用、備份恢復等DBA平常運維管理場景都提供了很好的支持。
尤爲是雲上Oracle場景,袋鼠雲作爲業界領先的數據庫專家團隊,和阿里雲緊密合做,爲阿里雲的客戶提供獨家的雲上Oracle解決方案,歡迎有興趣的客戶點擊「閱讀原文」.
另外,作爲RDS的重頭產品MySQL,背後使用的並不是官方版本,而是積累了阿里多年電商使用場景的經驗修改過內核的版本,在8.9的北京雲棲大會上已經宣佈即將開源,並在9.15中秋節正式開啓5.6.32版本內測(https://github.com/alibaba/AliSQL),相信很快就會徹底開放。
基於AliSQL在自有服務器或者雲服務器ECS上自建數據庫也會成爲一種選擇,EasyDB也將全面支持AliSQL。