背景
我刚刚开始开发一个新的 Web 开发产品,我打算将它托管在云中,并且正在权衡我对云提供商的选择。
我真的很喜欢使用像 Azure 这样的平台即服务解决方案的想法,因为我的服务器管理技能不如我的开发技能那么强大。因此,能够只关注应用程序和外包问题,如备份/负载平衡/等。对我很有吸引力。
但是,我也担心供应商锁定。我希望我的应用程序的利润相当微薄,并且需要密切关注成本控制。如果我选择像 Azure 这样的 PaaS 解决方案,并且 MS 决定大幅提高价格,我希望能够将我的业务带到更便宜的提供商那里。
我从事 ASP.NET 开发已经很多年了,但我只是跟上 Azure 的步伐。我知道 Azure 应用程序是使用与普通 ASP.NET 应用程序相同的工具/语言编写的,但不知道它们是否有足够的差异,以至于相同的应用程序在没有大量修改的情况下无法在常规 IIS/ASP.NET 安装上运行。
问题
Azure 应用程序是否通常可移植到 IIS/ASP.NET 的非云版本,使您能够轻松地将它们移动到众多 IaaS/HaaS 提供商之一,而无需进行大手术?
我知道很明显我会失去 PaaS 的优势,比如内置负载平衡和其他附加功能。我主要担心 Azure 是否会强制您以非常特定于 Azure 的方式编写 Web 应用程序,需要对其进行重构才能在 Microsoft 的云之外工作。