作者資訊:本篇文章是由SQL Server Cloud Infrastructure Team的 Madhan Arumugam 和 Guy Bowerman共同著作。
把SQL 資料託管在哪裡,Windows Azure 為您提供了兩個選擇,VM上的SQL Server(以下簡稱 SQL/VM)和 Windows Azure SQL 資料庫(以下簡稱 SQL DB)。 SQL/VM 和 SQL DB 都生成自單一代碼庫,並且在雲部署時都有其自己的長度。 本文我們將借鑒之前的博客SQL Server in Windows Azure Virtual Machine vs. SQL Database,並提供簡單的決策樹來説明您為您的應用程式或服務在Windows Azure上選擇最佳的 SQL 數 據庫解決方案。 Windows Azure SQL DB 作為 Microsoft 平臺即服務 (PaaS) 投入生產已經好幾年了。 Windows Azure Virtual Machine上的SQL Server 作為Microsoft基礎設施即服務(IaaS) 提供集成的資料庫伺服器實例,可作為一組預配好的平臺圖像。 目前Public Preview提供Windows Azure Virtual Machine。
本文的重點是 SQL Engine,而不是 BI 和reporting。 之後將詳細探討如何在BI和Reporting中做出選擇。
為什麼選擇 Azure 來託管SQL ?
Windows Azure 高度集成了跨 Microsoft 堆疊,例如像SharePoint 和Active Directory這樣的應用程式,同時,通過統一開發經驗來整合不同部署模組的授權。 這些集成經過了和Microsoft 產品一起協作的大量測試。 它還提供了很強的互通性。 除了支援多種作業系統包括 Linux外, Windows Azure VMs 還基於標準 VHD 格式,使之容易的在Azure環境中導入和匯出它們。
如此的一體化、 標準化和互通性使得Azure成為理想的雲環境來運行SQL Server,同時還為Microsoft 資產從傳統上的戶內平臺到私有雲以及公共雲,提供了銜接一致的體驗。
SQL/VM 和 SQL DB的不斷創新不僅使管理已有應用程式或服務的綜合TCO降低,也為新一代的雲應用程式或服務提供了高效的平臺。 此外,它還能夠搭配已有及新的應用程式在同一託管服務上,也能集合戶內應用程式和網路成為混合模型從而提供了極大的靈活性。
選擇正確的資料庫解決方案
Microsoft 資料庫產品適用的範圍包括物理戶內機、私有雲環境、 協力廠商託管私有雲環境和公共雲。 它提供了一系列的 SQL Server 產品使之成為一個既連貫又靈活的開放資料平臺。
每一種產品都可以按您對基礎設施的控制水準,實現資料庫的整合和自動化程度的成本效益做出區分。 當然也有其他的方面加以區分,例如相容性,我們將在下面的決策樹中詳細介紹。
本篇文章側重于 SQL/VM 和 SQL DB之間的對比,並提供了選擇資料庫服務方法,根據該方法您可以選擇與您期望的成本效率和控制相符的資料庫服務。
決策樹
在此決策樹中,請考量以下幾項應用程式或服務具體決定點:
新的或現有的應用程式或服務:通常遷移現有應用程式("升級和轉化")比新的應用程式更需要類比戶內應用程式操作,新應用程式一般沒有那個必要。 應用程式或服務要求:此決定點檢查任何相容性、 網路或可能需要在 VM 中的 SQL Server 的安全要求。 詳細資訊請參閱SQL Server in Windows Azure Virtual Machine vs. SQL Database和 MSDN 文章關於SQL DB和 SQL/VM 功能相容性差異的完整清單Guidelines and Li mitations (Windows Azure SQL Database)。 大規模經濟(重新)架構/分區的意願:此決定點檢查是否使用SQL DB 擴展技術例如Federations in Windows Azure SQL Database來實現彈性和擴展需求。 想要充分利用SQL DB大規模的經濟和彈性帶來的益處,通常需要一定程度的重新架構 . 資料庫大小: SQL 資料庫版本是有大小限制的,目前單個 Azure SQL DB最大為 150 GB。 然而 SQL/VM,目前最大 VM 大小是 ExtraLarge (8 CPU 內核、 14 GB RAM 和高達 16 TB 的磁碟空間)。 VM 大小的詳細資訊請參閱 MSDN 文章How to Configure Virtual Machine Sizes。
其他注意事項
除了這些高級別決定點之外,還有一些較低級別的設計標準和大小期望,也會影響資料庫的解決方案,例如一個新的應用程式可能需要一特殊功能而是SQL DB所不具備的。 此決策樹使用的框架只是提供一個簡單的方法來幫您快速評估您的應用程式需求。
一個重要的考量是 IaaS 與 PaaS 資料庫解決方案所提供的 SLA。 例如在 IaaS,Windows Azure所有的 VM 存儲都有 SLA。 當 Windows Azure VM 可用時 一般兩個或多個實例的 99.95%的Windows Azure VM-level SLA會在一個可用集中。 在 SQL DB中有資料庫級可用性 SLA。 更多詳細資訊,請參閱HTTP://www.windowsazure.com/en-us/support/legal/sla/。 SLA 所不覆蓋的操作都需要使用者自己來完成。
應用程式或服務不需非要在 IaaS 和 PaaS 兩者之間做出選擇。 混合型的應用程式模式包括 PaaS 和 IaaS 服務兩者 (例如,在 Azure上的 SQL DB和 SQL/VM),它代表了一種現實可能,就是讓應用程式開發和部署允許應用程式在VMs上運行元件,這需要從戶內遷移資料時,實現相容和控制如 BI 或應用程式,並且使用 SQL DB中的資料庫把DBA 和資料庫的成本降到最低。
結論
Windows Azure SQL 資料庫和 Windows Azure 虛擬機器上運行的 SQL Server都是不錯的方法來實現不同的資料庫應用程式需求。
總之,如果符合下面條件,選擇 SQL/VM:
您需要與戶內 SQL Server 完全相容。 您希望用最小改動來實現現有的應用程式。 您需要基礎設施層隔離。 您的應用程式或服務專為"計畫資料庫表"設計(AKA 擴展)。
如果符合下面條件,選擇 SQL DB:
您正在基於應用程式創建淨���增雲。 您想要減少資料庫管理的成本並把重點放在應用程式層。 您需要資料庫層的隔離。 您的應用程式或服務專為"無計畫也無限制資料庫表"設計 (通過擴展的彈性)。