13

我有一个项目,我计划将 Web 应用程序作为 Azure 网站启动,然后如果需要将其作为扩展策略将其迁移到 Azure 云服务(也称为托管服务)。

这个决定是因为我读到 Azure 网站开发起来更加简单和快速,几乎没有 Azure 特定的配置或代码。因此,快速而简单地开始是该项目的一个很好的起点。

但是,这对您来说是一个好的起点吗?将 Azure 网站迁移到 Azure 云服务与将普通 ASP.NET 网站迁移到 Azure 云服务一样吗?您会从一开始就使用 Azure 云服务吗?如果是,为什么?

谢谢你的时间。

4

5 回答 5

34

这两种部署模型都有好处,最终会归结为您要实现的目标以及应用程序的最终成功。

下面我概述了每个模型的优点和缺点,以确保您为您的应用程序目标做出正确的选择。

Windows Azure 网站

您已经正确地确定 Windows Azure 网站是应用程序的一个很好的起点,但是您也可以认为网站确实为许多解决方案提供了足够的可伸缩性。

优点

  • 预览期间的10 个免费网站[免费 12 个月]
  • 轻松部署(使用 Git、TFS、Web 部署或 FTP)
  • 快速可扩展性(您可以移动到自己的专用集群 [aka保留标准])
  • 简单开发(支持经典 ASP、ASP.NETNode.js、Python 和PHP
  • 持久化环境(大多数人都习惯了)

缺点

  • 自定义域不支持 SSL
  • 在预览中(目前没有 SLA)

Windows Azure 云服务

云服务(以前称为托管服务)绝对是 Web 应用程序未来的愿景。它在构建时考虑了弹性,通过扩展以满足需求来保持应用程序的成本负担得起,并在流量变慢时回拨容量。

优点

  • 增加对应用程序成本的控制(如果架构正确)
  • 灵活性(您可以完全控制环境)
    • SSL 支持
    • 语言不可知论者
    • Web 服务器不可知(尽管 IIS 默认可用)
  • 服务器自动管理

缺点

  • 应该仔细考虑架构
  • 部署时间较慢(减慢开发周期)

便携性需要考虑的事项

上述项目可能已经为您提供了足够的计划应用程序的近期未来,并且您很可能希望在未来考虑云服务(从长远来看,它更适合许多应用程序场景)。

以下是有助于在网站之间移植到云服务的事项列表:

  1. 开始思考无状态

    Windows Azure 网站很好,因为它是一个持久环境,这意味着您可以将会话状态和资产等内容存储到磁盘。

    虽然这是一个很好的功能,但如果您的最终目标是云服务,那么最好开始规划无状态应用程序。以下是您可以做的一些事情来开始思考无状态:

    • 不要依赖会话状态
      • 如果你需要它,想出一个策略来扩展它(缓存服务、SQL 或存储)
    • 使用存储服务
      • 静态 HTML、css、javascript 和图像等资产最好放在 Storage 中
        • 避免在您的网站上增加额外的带宽(可能以更低的成本保持共享更长时间)
        • 可以启用 CDN,为国际市场提供更好的体验
        • 将应用程序迁移到云服务时更容易更新 Web 资产
      • 存储用户内容
        • 如果您的应用程序已经存储到存储服务中,那么在将来迁移到云服务时,您的代码修改会少一点。
  2. 轻松发现数据中的模式

    云服务的好处是它使您能够通过仅扩展需要扩展的内容来降低成本。开始识别规模单位的过程,即如何对数据库或存储中的表进行分区。

于 2012-07-27T17:19:07.650 回答
3

我阅读了所有帖子,所有帖子都非常有帮助。除了所有帖子之外,我还在 msdn 上找到了一条信息:Windows Azure 网站、云服务和 VM:何时使用哪个?

使用 Windows Azure 网站,您可以:

  • 在 Windows Azure 上构建高度可扩展的网站。
  • 快速轻松地将站点部署到高度可扩展的云环境,使您可以从小规模开始并根据需要进行扩展。
  • 使用您选择的语言和开源应用程序,然后使用 FTP、Git 或 TFS 进行部署,并轻松集成 SQL 数据库、缓存、CDN 和存储等 Windows Azure 服务。

借助云服务,您可以:

  • 在 Windows Azure 上构建或扩展您的企业应用程序。
  • 使用丰富的 PaaS 环境创建高度可用、可扩展的应用程序和服务。支持高级多层场景、自动化部署和弹性扩展。为世界各地的客户提供出色的 SaaS 解决方案。

并且还总结了 msdn 上的选项:

总结有关网站、云服务和虚拟机的选项

并比较 msdn 上的一些功能网站和云服务:

比较网站和云服务的功能

于 2013-02-21T17:36:38.180 回答
2

Azure 是拥有您的应用程序的好地方,但在开始迁移之前您需要了解一些注意事项。

  • Azure 网站和托管服务的部署非常简单。使用 Visual Studio,您可以生成包并简单地上传它。然后你有一个开发环境来检查它。如果你没问题,换个ip。如果不适合您,请再次升级。

  • 您的实例有一些可能令人讨厌的属性。例如,您无法确定自己的 IP。然后,如果您的应用程序使用 IP 限制与某些提供商合作,您将需要弄清楚如何继续。

  • 更多考虑。您的“服务器”可以随时重新映像。如果您将某些内容存储在本地磁盘上,则该文件可能随时消失。

  • 如果每个网站至少有 2 个或更多实例,Azure 会非常好用。也许您的应用程序还没有为此做好准备。第一步是使用 appFabri c 管理会话。真的很简单,只需更改您的网络配置。请小心,因为此会话状态与“旧状态”不完全相同。您不能存储不可序列化的对象(应该很容易适应)或非常大的对象(超过 8MB)。

如果你打算从零开始开发一些东西,我建议你从一开始就进入 azure。原因很简单:开始真的很便宜,而且在应用程序获得大量访问之前,你不会花大笔钱。设置 SQLAzure 和存储帐户也非常便宜。一切就绪,添加更多实例或扩大规模很容易。

例子:

想象一下,您有一个想法,并且希望向一些可能的投资者展示。

您开始设置一个小型 SQLAzure 数据库 (1GB),每月 9,99 美元。

然后您建立一个站点并放置 2 个额外的小型实例,每月 18,72 美元。

假设您需要 100 GB 的空间(图像、备份等),每月 12,50 美元。

在他看来,您已经准备好开始您的业务,每月支付的费用不到 50 美元。

如果您的站点有出口并且开始访问,则将您的实例更改为小实例(生产环境中有额外的小实例真的很危险,因为没有 cpu 预留)。然后,您将额外的小成本(18,71 美元)更改为 57,60 美元。也许您需要更多空间来存储 SQL Azure?ETC...

从这里计算的价格:http: //www.windowsazure.com/en-us/pricing/calculator/ ?scenario=web 。

这些只是一些提示,还有更多。我的建议是开始一个试用帐户并使用它。

最后的建议:只需购买更多资源即可轻松解决所有问题。有时你需要重构和优化你的代码。如果每次遇到问题时都简单地添加更多资源,那么最终可能会产生巨额账单和非常混乱的代码。

希望能帮助到你!

于 2012-07-27T04:50:08.103 回答
1

Windows Azure 云服务相对于网站的另一个优势是可以将云服务添加到 Azure 虚拟网络。这可以使其访问数据库等本地资源。因此,如果您的要求是需要 Azure 提供的可扩展性,但由于安全限制需要将数据保存在本地,那么云服务是更好的选择。

Azure 网站不能成为 Azure 虚拟网络的一部分。若要访问本地资源,必须配置 Azure 服务总线中继等机制。

于 2012-10-01T10:48:46.790 回答
0

我们已经让我们的网站在一些主机上运行在 PHP 上,并且在某个时候决定将其移动到 Azure(这是我们服务的主要部分)。我们从 Azure 网站开始,这从开发的角度来看非常棒(主要是与 git 集成)。但是经过大约一周的测试(当我们决定实际移动生产网站时)我们发现目前

  1. 自定义域没有 SSL
  2. 自定义域仅适用于保留实例(无共享基础架构)
  3. 服务水平协议

所以我们搬到了托管服务。我们的主要问题是缺乏简单部署的能力(需要构建包并上传网站的整个包),并找到解决方案是使用dropbox - 作为角色的启动任务,我们正在安装dropbox服务机器,它从保管箱中获取所有网站,而保管箱又具有 SVN 签出文件夹,因此站点更新变得非常容易。

于 2012-08-02T18:04:40.603 回答