【问题标题】:how much of a challenge is it to port a asp.net application to azure?将 asp.net 应用程序移植到 azure 有多大的挑战?
【发布时间】:2010-06-19 05:29:05
【问题描述】:

我有一个部分开发的 asp.net 应用程序,但现在客户希望它在 azure 中开发。在 azure 中开发应用程序时可以使用多少现有代码。

当我们尝试将现有的 asp.net 应用程序移植到 azure 时,可能会遇到哪些挑战?在云计算中还有其他的 Azure 替代方案吗?

【问题讨论】:

    标签: asp.net azure


    【解决方案1】:

    对于 asp.net 应用程序,您当然可以将其移植到 Azure。您的核心逻辑将以相对简单的方式移植,您将获得 Azure 提供的许多好处。在 2010 年 6 月的版本中,您还将获得 .NET 4 支持以及用于调试的 IntelliTrace。

    但是,当您开始规划 Azure 迁移时,您需要考虑几个注意事项(没有一个是不可克服的,而且有几个相对容易处理):

    • 您必须处理跨 Web 角色实例的 ASP.NET 会话状态管理(不支持开箱即用,除了 inproc)。您还必须设置和使用角色和成员资格提供程序(有关详细信息,请参阅here)。编辑:您现在可以访问会话状态的 AppFabric 缓存以及 SQL Azure,这是 Windows Azure SDK+工具中包含的通用提供程序的一部分。
    • 您必须检查您的 SQL 后端是否与 SQL Azure 不兼容(例如计划作业,因为没有 SQL 代理支持)。 SQL Azure 差异记录在here。您还需要考虑 50GB 的 SQL Azure 大小限制,这可能需要您将内容卸载到 Azure blob 存储。编辑:您可以通过SQL Azure Migration Wizard 运行您的 SQL Server 数据库以进行兼容性测试。
    • 您需要配置日志记录和诊断,最好使用 Trace 输出,以便您可以远程检索此数据。
    • 您需要考虑如何监控和扩展您的应用程序。您可以使用扩展所需的所有信息(性能计数器、队列长度等)。查看WASABI - 自动扩展应用程序块,企业库的一部分。您还可以订阅 AzureWatch 等服务。
    • 您需要考虑缓存,因为目前没有开箱即用的缓存实现跨您的 Web 角色实例运行,现在作为服务提供。阅读详细信息here,以及常见问题解答here
    • 您需要 SMTP 支持吗?如果是这样,您应该阅读有关here 的详细信息。 SendGrid 最近宣布了适用于 Windows Azure 的free-tier promotion
    • 您是否也托管 WCF 服务?如果是这样,请查看this site 了解更多详情(特别是已知问题)。

    所以:是的,您需要自己关注一些事情,但 Azure 是托管 asp.net 应用程序的绝佳平台,您应该认真考虑。

    【讨论】:

    • 很好的答案。由于它是从其他较新的帖子中引用的,因此更新它可能会很好。我想你在别处提到现在有 AppFabric 缓存服务?
    【解决方案2】:

    将您的应用程序移植到 Azure 应该非常容易,尤其是在您使用 SQL 后端的情况下。代码几乎无需修改即可运行。您需要为项目和配置文件创建一个 Azure 安装包。

    如果您的应用程序使用持久存储(SQL Server 除外),您可能需要对代码进行一些修改。但是,该平台现在具有模拟文件系统的驱动器存储,所以这应该相当容易。

    另一个需要注意的问题是 web.config。如果您大量使用它来进行运行时自定义,那么您也必须对其进行返工。您无法将单个文件部署到 Azure 中的应用程序,因此推荐的方法是将此类设置迁移到 Azure 配置文件。

    您可能遇到的最困难的事情是外部应用程序。如果您的应用依赖于启动其他进程,那么这将需要进行一些认真的重新设计。

    【讨论】:

    • 我认为“非常容易”具有误导性。有关详细信息,请参阅下面的答案。
    【解决方案3】:

    Azure 现在支持将网站作为部署类型。基本上,这允许您将任何标准 Asp.net(以及其他受支持的 PHP 等)应用程序发布到 Azure,并将其作为可扩展的服务器。看这篇文章http://blog.ntotten.com/2012/06/07/10-things-about-windows-azure-web-sites/

    无需将 Azure 特定代码/项目引入现有应用程序即可获得 Azure 的许多好处。

    这里也有这个问题What is the difference between an Azure Web Site and an Azure Web Role

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 2015-05-20
      • 2023-03-09
      • 2012-07-14
      • 2011-12-29
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多