假设我有一个网站,我想在云上托管,因为
- I don't want to take care of hardware - I want to scale my website as needed
现在,在这种情况下,我对SQL Server的角色与SQL Azure的角色有点混淆.
普通网页寄存
当我想到一个普通的网站时,我知道我需要一个托管我的网站的主机/服务器.主机应该能够支持SQL Server.出于扩展目的,我将不得不在多个服务器上托管我的网站/ ASP页面.同样,如果我想扩展我的SQL Server,我将不得不在多个服务器上托管它,并且必须通过某种机制确保所有服务器中的数据是最新的.
基于云的托管
现在我想我也可以在Cloud / Azure上设置类似的结构.如果是,在这种情况下我会使用云的真正功能吗?
或者我应该使用SQL Azure而不是SQL Server?在这种情况下我会得到什么好处?我是否还要负责扩展和数据的一致性?我知道我可以通过设置VM /实例的数量来扩展网站,但是关于数据库的扩展呢?
编辑
感谢Florin Dumitrescu我想要使用的术语是Scaling Out,因为我更关心的是性能,而不是我的数据库在大小方面有多大.我更关心数据库如何在不同服务器/系统之间扩展以适应负载,从而产生更好的性能
解决方法
SQL Azure还在数据中心复制其数据,以提供“持久”存储.如果数据中心不可用(您可以使用Data Sync服务),您仍需要设计灾难恢复方案.
对于您的网站本身:当您扩展到多个实例时,每个实例运行相同的代码并使用相同的资源.更进一步,您可以将静态(不变)Web内容(如图像和CSS)移动到Blob存储.与将其存储在网站本身相比,这有几个优点:
>能够启用内容交付网络,这是一种全球边缘缓存服务,可为最终用户提供更好的性能
>减少Web服务器实例的压力,因为对这些图像的请求现在将被定向到Blob存储,这是一个与您的网站完全不同的URL
>无需重新部署应用程序即可更新图像或样式表 – 只需将新文件上载到Blob存储即可.
我强烈推荐Windows Azure Platform Training Kit,因为有些实验室会带您了解所有这些的基础知识,并提供完整的代码示例.这几乎每月更新一次,与最新的Windows Azure SDK和工具保持同步.