1

背景
我刚刚开始开发一个新的 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 的云之外工作。

4

3 回答 3

6

不,对于“网站”,Microsoft 目前不强制您以非常特定于 Azure 的方式编写代码 - Web 角色本质上只是一个网站。

因此,如果您只使用 Web 角色并且仅使用 SQL Azure 进行存储,那么目前您的 Azure 代码将非常可移植。

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

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

此外,作为个人观点,我认为微软“抬高”价格可能不是问题——但竞争对手推出更便宜或更实用的解决方案可能是一个问题。

于 2011-02-22T21:11:21.623 回答
1

不知何故。

正如 Stuar 所指出的,如果您开始包含特定的 Azure 技术,您将有点依赖它。

但也是方法。例如,当您为 Azure 构建应用程序时,您还开始使用一些在“本地”中没有意义的方法,例如具有共享签名的 blob。

如果您尝试设计非常便携的应用程序,您将错过高级功能,所以我所做的是将所有内容分离到模块中,以便模块可以轻松地重新排列、替换或删除,正如我认为 BrentDaCodeMonkey 也指出的那样。

于 2011-02-23T23:54:27.450 回答
1

在您决定使用的每个系统中都会发现锁定,特别是当您谈论您将用于在线服务的 PaaS 时。与其他供应商相比,这是一个水平问题。在我对包括 IaaS 和 PaaS 在内的云市场进行的深入研究中(在两个不同的帖子中,我发现 Azure 拥有最高级别的 PaaS 供应商锁定,这与它的好处并不一致。欢迎您阅读我在- 云锁定(第 2 部分):PaaS 的大锁定 - http://www.iamondemand.com/post/10120499126/the-cloud-lock-in-part-2-the-great-lock进阶

我很乐意知道这是否对您有所帮助。奥菲尔。

于 2011-10-02T13:23:59.497 回答