Azure的兩種關(guān)系型數(shù)據(jù)庫服務(wù):SQL Azure與SQL Server VM的不同
《 Windows Azure Platform 系列文章目錄 》
?
如果熟悉Windows Azure平臺的用戶不難發(fā)現(xiàn),對于SQL Server數(shù)據(jù)庫來說,微軟提供了兩種服務(wù),分別是:
-Windows Azure SQL Database(也就是以前的 SQL Azure ),提供 PaaS 的關(guān)系數(shù)據(jù)庫服務(wù)
-Windows Azure SQL Virtual Machine ( SQL VM ),提供了 IaaS 的關(guān)系型數(shù)據(jù)庫服務(wù)
有些讀者可能會疑惑,為什么微軟要提供以上2種的關(guān)系型數(shù)據(jù)庫服務(wù)?我們在實際使用過程中應(yīng)該如何進行選擇呢?
本文將從以下幾個方面,來比較和說明SQL Azure和SQL VM的不同:
-SQL Server兼容性
- 成本分析
- 高可用性
-維護性
-橫向擴展性
? 總的來說,微軟設(shè)計SQL Azure和SQL VM這兩種不同的關(guān)系型數(shù)據(jù)庫服務(wù),出發(fā)點在于:
-微軟對SQL Azure進行了優(yōu)化,以降低使用成本。SQL Azure提供了一個非常快速、簡單的方式,讓用戶可以在云中構(gòu)建可以橫向擴展(scale out)的數(shù)據(jù)庫。同時還降低了后續(xù)的管理成本。因為客戶不需要維護任何虛擬機或數(shù)據(jù)庫軟件。
-SQL VM是在Azure虛擬機中運行的,所以SQL VM的數(shù)據(jù)庫版本與傳統(tǒng)企業(yè)內(nèi)部使用的SQL ?Server版本沒有任何區(qū)別,這樣就可以讓現(xiàn)有的數(shù)據(jù)庫應(yīng)用直接遷移到Azure云上。SQL VM提供了完整的SQL Server產(chǎn)品功能,并給用戶提供云端的、已經(jīng)裝好SQL Server實例的虛擬機。
?
1.SQL Server產(chǎn)品兼容性
1)SQL Server VM提供了傳統(tǒng)企業(yè)內(nèi)部使用的SQL Server的完全相同的功能(包括Data Engine, SSAS, SSIS, SSRS)。SQL Server VM與傳統(tǒng)部署在企業(yè)內(nèi)部的數(shù)據(jù)庫主機區(qū)別在于:SQL Server VM是部署在云端的,你不需要考慮底層的網(wǎng)絡(luò)、存儲、虛擬化等等問題,這些微軟的Windows Azure都幫你準備好了;如果你想將本地的數(shù)據(jù)庫遷移到云端,只要將本地備份的bak文件在SQL Server VM上restore就可以了。而且微軟提供了很多的虛擬機模板(image gallery),你只要在management porta里,選擇你需要的SQL Server版本(2008/2012, standard/enterprise)等等,你就可以非常簡單的創(chuàng)建云端的關(guān)系型數(shù)據(jù)庫了。
另外微軟提供了 Windows Azure Virtual Network ,這個功能可以將企業(yè)內(nèi)部的網(wǎng)絡(luò)和云端的網(wǎng)絡(luò)打通,并且保證網(wǎng)絡(luò)的安全可靠,這樣我們就可以實現(xiàn) 混和云 。你可以想象一下,在 混合云 的情況下,當我們企業(yè)內(nèi)部使用SQL 2012 Always-On,并且通過SQL Mirroring將數(shù)據(jù)保存至SQL Server VM,這樣的DR(災(zāi)難恢復(fù))模式可以保證我們的數(shù)據(jù)萬無一失。
2)SQL Azure并不支持傳統(tǒng)企業(yè)內(nèi)使用的SQL Server的全部功能,但是它實現(xiàn)了其中相當大的一部分。它不同于SQL Server企業(yè)版,你可以認為它是SQL Server的特殊版本,面向PaaS。雖然SQL Azure很特殊,但是SQL Server Management Studio和SQL Server Data Tool還是可以用來管理SQL Azure。SQL Azure最大的特點是橫向擴展能力,這會在隨后的博文中做詳細介紹。
我個人建議,對于傳統(tǒng)企業(yè)級應(yīng)用來說,使用SQ Server VM能保證最大的產(chǎn)品兼容性。但是對于新的基于云的應(yīng)用來說,SQL Azure是更好的選擇。
?
2.成本分析
1)SQL Server VM的使用成本會比較高,因為用戶需要支付費用=計算資源+存儲資源,比如Windows Server 2012 + SQL Server 2012 Enterprise。具體的費用可以參考: http://www.windowsazure.com/en-us/pricing/details/virtual-machines/#service-sql-server
2)SQL Azure的使用成本比較便宜,用戶需要支付的費用=SQL Azure數(shù)據(jù)庫大小。具體的費用可以參考: http://www.windowsazure.com/en-us/pricing/details/sql-database/
?
3.高可用性
1) 單個 SQL Server VM是無法實現(xiàn)數(shù)據(jù)庫高可用性的。因為SQL Server VM的底層是虛擬化技術(shù),在數(shù)據(jù)中心的服務(wù)器可能出現(xiàn)由于硬件問題導(dǎo)致的服務(wù)器故障。在故障發(fā)生的時候,Windows Azure后臺的Fabric Controller就會自動將服務(wù)器內(nèi)部的SQL Server VM遷移到同一數(shù)據(jù)中心的正常的物理服務(wù)器上。在 只有一臺SQL Azure VM 的情況下,在發(fā)生故障導(dǎo)致的自動遷移的過程中,如果有客戶端發(fā)起向云端SQL Server VM的請求時,就會造成請求的失敗。不能提供高可用。
如果我們建立了多臺SQL Azure VM (SQL Server 2012版本) ,加入Virtual Network,并且設(shè)置了 AlwaysOn Availability Group (這里不詳細介紹Always-On),這樣就可以實現(xiàn)SQL VM的高可用了。但是這需要我們的IT管理人員手動來配置(Virtual Network, alwayson availability group etc.)。并且由于增加了額外的備用SQL VM節(jié)點,用戶需要支付的云服務(wù)費用會 增加 。
2)SQL Azure在設(shè)計之初就考慮了高可用性,每次我們在SQL Azure創(chuàng)建數(shù)據(jù)庫的時候,在后臺會創(chuàng)建一個主數(shù)據(jù)庫備份和2個備用的數(shù)據(jù)庫(三重備份)。當主備份發(fā)生異常的時候,SQL Azure 會將備份節(jié)點替代主備份,不會出現(xiàn)宕機時間。所以 SQL Azure會提供99.9%的高可用性 ,并且使用該高可用性是 無需支付額外費用 的。
?
4.維護性
1) SQL Server VM是IaaS。也就是說,用戶需要自己維護操作系統(tǒng)和數(shù)據(jù)庫軟件,包括升級補丁、安裝備份工具等。這會給IT人員增加額外的工作。
2)SQL Azure是PaaS的。Windows Azure平臺會自動進行配置,微軟的數(shù)據(jù)中心會自動幫你打補丁和升級軟件。所以會減輕IT人員的工作。
?
5.可擴展性
可擴展性分為縱向(scale up)和橫向(scale out):
scale up一般指提升單個節(jié)點的能力,scale out一般指多節(jié)點并行計算
scale up
1)目前Windows Azure VM的最強計算能力是8 Core+14GB(extra large) or 8Core+56GB(A8),16TB的存儲和800MB的網(wǎng)絡(luò)帶寬。我們?nèi)绻v向擴展的話,會受到目前Azure VM的大小限制。
2)SQL Azure不能配置硬件設(shè)備。
?
scale out
1)Azure VM的scale out需要手動配置,比如Always On只讀副本,數(shù)據(jù)庫分區(qū)等等。
2)SQL Azure包含SQL Federation功能(我會在后續(xù)的文章中進行介紹)。有了SQL Azure Federation,我們可以將1個數(shù)據(jù)庫分割在幾個甚至上百個節(jié)點上,SQL Azure是天然支持橫向擴展的。
?
?
?
Azure的兩種關(guān)系型數(shù)據(jù)庫服務(wù):SQL Azure與SQL Server VM的不同
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
