我目前使用旧版 ASP.NET Web 应用程序,未来的要求之一是它可以部署到 Windows Azure。
我想知道管理 Azure 和传统 IIS Web 服务器的部署有多困难。
Azure 似乎需要 Web 应用程序项目的特定自定义版本,以便在转换后可以将自定义 Web 应用程序部署到标准 IIS 实例。
EDIT:
它是一个 ASP.NET Web 应用程序而不是网站(将所有内容编译到一个 dll 中)
UPDATE:
最后,由于将应用程序转换为在 Azure 中工作所需的工作量以及 Azure 与其他云解决方案相比的成本,我们决定使用传统的云托管虚拟服务器。
感谢您提供的非常好的答案。
是否可以将应用程序几乎按原样部署到 Azure,很大程度上取决于应用程序的工作方式。 Azure 几乎要求您的应用程序是无状态的。如果它是一个普通的 Web 应用程序,仅将数据存储在会话或应用程序缓存中,并将数据仅保存到数据库中,那么您可以将其部署到 Azure。
如果您有像后台线程一样运行的有状态服务(无论如何这都是不好的),或者如果您将数据保存到文件系统(除了临时缓存之外),那么您可能会遇到问题。事实上,迁移到 Azure 时遇到的问题与迁移到任何多服务器负载平衡解决方案时遇到的问题实际上是一样的。需要注意的是永久存储。
如果您需要将数据存储在数据库以外的地方,那么您最好使用 Azure 的存储解决方案,该解决方案具有 API 和客户端库,用于存储二进制数据、键/值数据(他们称之为表,但实际上,它不是表)和队列。它们还具有透明的 blob-as-file-system 选项以实现兼容性。如果你想在你的应用程序中使用这些,并且在 Azure 外部使用,那么你需要在你的代码和支持 Azure 服务和标准本地服务的 Azure 客户端库之间编写一个额外的层。 Azure SDK 确实包含 Azure 服务的模拟器,但它们绝对不适合生产使用。
就Azure特定项目的机制而言,这实际上并没有那么困难。是的,您需要在解决方案中创建一个特定于 Azure 的项目来定义 Web 角色和部署的内容,但它将引用您现有的 Web 应用程序,而不是相反。您可以将 Azure Web 角色部署到 Azure,也可以继续正常并发地将现有应用程序部署到 IIS。
网站、Web 应用程序、MVC 实际上没有太大区别。实际上也不一定是.NET。可以是 PHP 或 Java 或任何您想放在 VM 上的内容。就 Azure 而言,一切都是一样的。
MS 喜欢将 Azure 作为平台即服务 (Paas) 解决方案推出,他们提供大量服务,您可以在其标准平台上运行应用程序,并将其与 Amazon AWS 进行对比,他们称之为基础设施即服务-服务(Iaas)“只是”一个虚拟机。然而,MS 实际上与 AWS 一样都是 IaaS 解决方案,甚至可能更重要。 AWS 和 Azure 之间的唯一区别是 AWS 允许您选择要在 VM 上安装的内容,而使用 Azure 时,您必须使用 Windows Server 2008 R2 作为 VM 的基础(但您可以自定义 VM 映像以在其上安装自定义软件)窗户)。通过 Azure 和 AWS,主机提供了额外的 PaaS 服务,您可以利用它们进行数据存储和消息路由。 AWS 还提供大量额外服务,例如视频流。
另请注意,使用 Azure(我认为还有 AWS),您甚至可以在非托管应用程序中使用它们提供的服务。如果您想从非 Azure 应用程序使用 Azure 的数据存储,您可以这样做,只需通过 HTTP REST 调用来获取/放置数据即可。您为数据中心和非数据中心托管的应用程序之间的数据输入/输出付费的唯一区别是,如果应用程序也在数据中心内,则该应用程序是免费的(只是数据输入/输出在数据中心内是免费的,您仍然拥有存储空间和交易费用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)