我正在评估MS云Windows Azure以托管3个完全分离的网站。
每个网站都有自己的数据库,它们没有连接,所以有3个网站和3个数据库。
我的目标是优化启动项目的成本,并有可能按需扩大规模。
我想知道:
感谢您抽出宝贵时间。
答案 0 :(得分:20)
您可以在同一个实例上运行多个网站,从SDK 1.3开始,因为完整的IIS现在正在Web角色中运行。正如Jonathan在MSDN文章链接中指出的那样,您可以设置Sites元素来定义每个网站。您还应该查看Windows Azure Platform Training Kit,其中有一个专门围绕构建多站点Web角色的实验室。
您还可以利用Cloud Ninja或Windows Azure Accelerator for Web Roles之类的内容,它提供了一个可以加载到您的Web角色中的多租户解决方案(查看Cloud Cover Show视频{{3} }了解更多信息)。
托管多个网站时,请记住他们在实例上共享相同的资源。因此,您可能会发现Extra Small实例无法满足您的性能需求(它仅限于768MB RAM和大约5Mbps带宽)。我认为你可以使用Small实例并扩展,因为你需要处理更多的流量。
答案 1 :(得分:8)
在过去的几个月里,我在一对超小型实例上运行了三个网站,包括albahari.com,linqpad.net和LINQPad许可服务器(使用LINQ to SQL)。诀窍是直接从blob存储中提供大型静态内容,这样就不会受到5MBit /秒I / O带宽的限制。而且我从来没有接近失去记忆的任何东西。
当您需要更高的可靠性,安全性和性能时,一对超小型Azure实例是共享主机的绝佳替代方案。
编辑:接近一年,Azure上的多个网站仍然没有问题。我永远不会回到共享主机。
答案 2 :(得分:6)
您绝对可以在同一个实例中运行3个网站。查看this MSDN article,其中显示了如何构建配置文件,以便您可以在一个角色中托管多个网站。有一点需要注意,因为您提到了“按需扩展” - 当您扩展具有多个网站的实例时,您正在扩展实例,这意味着所有网站将一起扩展。您无法仅扩展共享实例上的其中一个站点。
对于数据库,理论上可以这样做,但它是“手动”的,因为你必须在同一个数据库中的三个数据库中拥有所有表,你可能希望用某种类型为它们添加前缀指示符,以便您知道哪个表属于哪个应用程序。这当然不是推荐的做法,但如果它适用于您的解决方案,那么没有任何技术可以阻止您这样做。如果可能的话,我会推荐多个数据库。