正常与云/ Azure托管以及SQL Azure与SQL Server的角色

时间:2011-11-28 12:52:22

标签: asp.net sql-server azure hosting scalability

首先让我清楚一点,我不是来自网络背景,所以如果我对它的工作方式有任何了解是不正确的,请随时纠正我

假设我有一个网站,我想在云上托管,因为

- I don't want to take care of hardware
- I want to scale my website as needed

现在我对SQL ServerSQL Azure的角色在这种情况下的角色有点混淆。

普通网页寄存

当我想到一个普通的网站时,我知道我需要一个托管我的网站的主机/服务器。主持人应该能够支持SQL Server。出于扩展目的,我将不得不在多个服务器上托管我的网站/ ASP页面。同样,如果我想扩展我的SQL Server,我将不得不在多个服务器上托管它,并且必须通过某种机制确保所有服务器中的数据都是最新的。

基于云的主机

现在我想我也可以在Cloud/Azure上设置类似的结构。如果是,在这种情况下我会使用云的真正功能吗?

或者我应该使用SQL Azure而不是SQL Server?在这种情况下我会得到什么好处?我是否还要负责扩展和数据的一致性?我知道我可以通过设置虚拟机/实例的数量来扩展网站,但是关于数据库的扩展呢?

修改 感谢Florin Dumitrescu我想要使用的术语是Scaling Out因为我更关心的是性能,而不是我的数据库在大小方面有多大。我更关心数据库如何在不同的服务器/系统之间扩展以适应负载,从而产生更好的性能

3 个答案:

答案 0 :(得分:3)

正如Yossi所提到的,SQL Azure是一种数据库即服务。因此,您只需要配置它,发生魔术,并且您有一个数据库,从1GB扩展到5GB,10GB,一直到50GB(在SQL PASS上很快将为150GB,announced)。关于SQL Azure的好处:您不必担心任何基础架构,服务器,许可等。您只需连接您的连接字符串即可。 SQL Azure旨在可扩展以处理大量并发租户,因此您不必担心扩展。

SQL Azure还会在数据中心复制其数据,以提供“持久”存储。如果数据中心不可用(您可以使用Data Sync服务),您仍然需要设计灾难恢复方案。

至于您的网站本身:当您扩展到多个实例时,每个实例运行相同的代码并使用相同的资源。更进一步,您可以将静态(不变)Web内容(如图像和CSS)移动到Blob存储。与将其存储在网站本身相比,这有几个优点:

  • 能够启用内容交付网络,这是一种全球边缘缓存服务,可为最终用户提供更好的性能
  • 减少对您的网络服务器实例的压力,因为对这些图片的请求现在将被定向到Blob存储,这是一个与您的网站完全不同的网址
  • 无需重新部署应用程序即可更新图像或样式表 - 只需将新文件上传到Blob存储。

我强烈推荐Windows Azure Platform Training Kit,因为有些实验室会带您了解所有这些的基础知识,并提供完整的代码示例。这几乎每月更新一次,与最新的Windows Azure SDK和工具保持同步。

答案 1 :(得分:1)

如果您在云中托管您的网站,并且您需要一个数据库,那么SQL Azure几乎肯定是最佳选择。

SQL Azure是一个数据库即服务,所以你将创建你的数据库并从你的代码中反对它,但不必担心provisioninig,没有这样的服务器,它都被照顾

从应用程序的角度来看,它的外观和行为与SQL Server非常相似,因此最初所有更改都是连接字符串

答案 2 :(得分:1)

正如其他人所说,SQL Azure消除了您对设置和处理基础架构的担忧。这是Azure的一般前提,即提供平台而不仅仅是基础架构。

您为此付出的代价是对功能的一些限制(与常规SQL相比)。对大小的限制(至少在联邦可用之前)和延迟增加(因为您的数据库没有在您的应用程序的同一台服务器上运行)

Microsoft Teched有“SQL Azure Performance and Elasticity Guide”,你应该看看