背景
我刚刚开始研究一种新的网络开发产品,我打算在云端托管我正在权衡我对云提供商的选择。
我非常喜欢使用像Azure这样的平台即服务解决方案,因为我的服务器管理技能并不像我的开发技能那么强大。因此能够专注于应用程序和外包问题,如备份/负载平衡/等。对我很有吸引力。
但是,我也担心供应商锁定。我希望我的应用程序的利润率相当渺茫,需要密切关注成本控制。如果我选择像Azure这样的PaaS解决方案,MS决定大幅提高价格,我希望能够把我的业务带到更便宜的供应商。
我多年来一直在进行ASP.NET开发,但我刚刚开始使用Azure。我知道Azure应用程序是使用与普通ASP.NET应用程序相同的工具/语言编写的,但不知道它们是否足够相同,以至于相同的应用程序无法在没有实质性修改的情况下在常规IIS / ASP.NET安装上运行。
问题
Azure应用程序是否可以移植到非云版本的IIS / ASP.NET,使您可以轻松地将其移动到众多IaaS / HaaS提供商之一而无需大手术?
我明白,显然我会失去PaaS优势,例如内置负载平衡和其他附加功能。我主要关注Azure是否强迫您以特定于Azure的方式为您编写Web应用程序,需要重新考虑在Microsoft云之外工作。
答案 0 :(得分:6)
不,对于“网站”,Microsoft目前不会强迫您以特定于Azure的方式编写代码 - Web角色本质上只是一个网站。
因此,如果您只关注Web角色而您只是使用SQL Azure进行存储,那么目前您的Azure代码将非常便携。
但是,如果你开始包括: - 工人角色 - 表,blob或队列存储 - 高级Azure配置 - Azure诊断 - Azure管理(例如,用于扩展或部署)
然后您将开始包含Azure特定功能。
另外,作为一个个人观点,我不认为微软“抬高”价格可能是问题 - 但竞争对手提供更便宜或更实用的解决方案可能是一个问题。
答案 1 :(得分:1)
不知怎的。
正如Stuar所指出的,如果你开始包含特定的Azure技术,你将会对它有所依赖。
但也是方法。例如,当您为Azure构建应用程序时,您也开始使用一些在“内部部署”中没有意义的方法,例如具有共享签名的blob。
如果您尝试设计非常便携的应用程序,您将会错过高级功能,因此我所做的就是将模块中的所有内容分开,以便模块可以轻松地重新排列,替换或删除,因为我认为BrentDaCodeMonkey也指向进行。
答案 2 :(得分:1)
锁定将在您决定使用的每个系统中找到,特别是如果您谈论将为您的在线服务采用的PaaS。与其他供应商相比,这是一个水平问题。在一项深入的研究中,我在云市场上进行了包括IaaS和PaaS(在两个不同的帖子中,我发现Azure拥有最高级别的PaaS供应商锁定,并没有真正与其优势保持一致。欢迎您阅读我的创始人 - 云锁定(第2部分):PaaS的重大锁定 - http://www.iamondemand.com/post/10120499126/the-cloud-lock-in-part-2-the-great-lock-in-of-paas
我很乐意了解这是否对您有所帮助。奥菲尔。