Windows Azure能否在同一个Extra small实例或Small实例上运行多个网站?

14

我正在评估微软云Windows Azure用于托管3个完全独立的网站。

每个网站都有自己的数据库,并且它们没有连接,所以是3个网站和3个数据库。

我的目标是为初创项目优化成本,并具备按需扩展的可能性。

我想知道:

  • 是否可以在同一实例(Extra small instance或Small instance)上托管3个网站。
  • 是否可以在同一Sql Azure数据库上托管3个数据库(这样我就可以使用我的3个数据库的总SQL存储量),或者对于每个网站数据库,我必须支付一个SQL Azure实例。

谢谢你抽出时间来回答。


感谢Richard的修订。 - GibboK
看看这篇文章,它很棒:在Windows Azure Web角色中运行多个网站 - tugberk
3个回答

20
你可以在同一个实例上运行多个网站,从SDK 1.3开始,完整的IIS已在Web Roles中运行。如Jonathan所指出的MSDN文章链接,您可以设置Sites元素来定义每个网站。您还应该查看Windows Azure Platform Training Kit,其中专门介绍了构建多站点Web角色的实验。
您还可以利用像Cloud NinjaWindows Azure Accelerator for Web Roles这样的东西,它提供了一个多租户解决方案,您可以将其加载到您的Web Role中(了解更多信息,请查看Cloud Cover Show视频here)。
当托管多个网站时,请记住它们都在一个实例上共享资源。因此,您可能会发现Extra Small实例无法满足您的性能需求(它限制为768MB RAM和约5Mbps带宽)。我认为使用Small实例并根据需要进行扩展以处理更多的流量是可行的。

8
在过去的几个月中,我一直在一对额外小的实例上运行三个网站,包括albahari.com、linqpad.net和使用LINQ to SQL的LINQPad许可证服务器。技巧是直接从blob存储器中提供大量静态内容,以使其不受5MBit/秒I/O带宽限制的影响。而且,我从来没有接近耗尽内存。
一对额外小的Azure实例是共享托管的极佳替代方案,当您需要更好的可靠性、安全性和性能时。
编辑:现在已经快一年了,在Azure上运行多个网站仍然没有问题。我再也不会回到共享托管了。

很有帮助的信息,因为我现在也在将所有东西迁移到Azure。顺便说一句,LINQPad是最好的,我每天都用它...谢谢。 - Timothy Lee Russell

6
你肯定可以在同一个实例中运行3个网站。请查看此MSDN文章,了解如何编写配置文件以使您可以在单个角色中托管多个网站。需要注意的一点是,因为您提到了“按需缩放”,所以当您扩展具有多个网站的实例时,您正在扩展该实例,这意味着所有站点都将同时扩展。您无法仅扩展共享实例上的一个站点。
对于数据库,理论上是可以做到的,但这将是“手动”的,因为您必须将所有表跨越三个数据库放置在同一个数据库中,并且您可能希望使用某种指示符为其添加前缀,以便您知道哪个应用程序属于哪个表。这绝对不是推荐做法,但如果它适用于您的解决方案,则没有任何技术障碍阻止您这样做。如果可能的话,我建议使用多个数据库。

感谢您的回答。在我的情况下,使用一个实例与3个网站和3个独立的数据库是一个合理的解决方案。另一个问题,不过与此无关。Azure支持怎么样?技术支持包括在内吗?价格如何?平均需要多长时间才能解决问题?感谢您对此的帮助。 - GibboK
这应该作为一个单独的问题发布,但是取决于您认为什么是技术支持。如果出现问题,技术支持人员会检查您的代码吗?可能不会,但是他们确实非常擅长确保将您指向解决任何问题的正确方向。如果您发现某些更普遍的问题,他们还会将问题升级到产品团队等。换句话说,他们很棒。您可以从http://www.microsoft.com/windowsazure/support/访问支持,并且没有费用。 - Jonathan Rozenblit
感谢Jonathan Rozenblit的反馈,不幸的是我找不到任何技术支持的价格清单..但这是另一个话题 :-) - GibboK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接