避免供应商锁定:为Windows Azure编写的代码是否完全可移植到自托管IIS/ASP.NET?

Joh*_*nFx 1 portability azure cloud-hosting paas iaas

背景
我刚刚开始研究一个新的网络开发产品,我打算在云端托管我正在权衡我对云提供商的选择.

我非常喜欢使用像Azure这样的平台即服务解决方案,因为我的服务器管理技能并不像我的开发技能那么强大.因此能够专注于应用程序和外包问题,如备份/负载平衡/等.对我很有吸引力.

但是,我也担心供应商锁定.我希望我的应用程序的利润率相当渺茫,需要密切关注成本控制.如果我选择像Azure这样的PaaS解决方案,MS决定大幅提高价格,我希望能够把我的业务带到更便宜的供应商.

我已经做了多年的ASP.NET开发,但我刚刚开始使用Azure.我知道Azure应用程序是使用与普通ASP.NET应用程序相同的工具/语言编写的,但不知道它们是否足够相同,以至于相同的应用程序无法在没有实质性修改的情况下在常规IIS/ASP.NET安装上运行.

问题
Azure应用程序通常可移植到非云版本的IIS/ASP.NET,使您可以轻松地将它们移动到众多IaaS/HaaS提供商之一而无需大手术吗?

我明白,显然我会失去像内置负载平衡和其他附加功能的PaaS优势.我主要关注的是Azure是否强迫您以特定于Azure的方式为您编写Web应用程序,需要重新考虑在Microsoft云之外工作.

Stu*_*art 6

不,对于"网站",Microsoft目前不会强迫您以特定于Azure的方式编写代码 - Web角色本质上只是一个网站.

因此,如果您只关注Web角色而您只是使用SQL Azure进行存储,那么目前您的Azure代码将非常便携.

但是,如果您开始包括: - 工作者角色 - 表,blob或队列存储 - 高级Azure配置 - Azure诊断 - Azure管理(例如,用于扩展或部署)

然后您将开始包含Azure特定功能.

此外,作为一个个人观点,我不认为微软"抬高"价格可能是问题 - 但竞争对手提供更便宜或功能更强的解决方案可能是一个问题.

  • 我只添加了正确的架构,您可以创建一个可以轻松支持多种部署方案的应用程序(比如Azure和onPrem).我通常建议,如果人们正在考虑这样做,他们会严重依赖提供者模式,以便可以轻松地从核心应用程序中抽象出任何依赖于环境的部分. (5认同)