多数用户都很反感被服务提供商绑定,目前许多开发者就在反映Google App Engine (GAE)是一个专有平台,自己被GAE平台绑定了。7月9日Google工程总监Peter Magnusson在其Google+页面上就这一问题进行了回应,他认为一个云平台必然会在一定程度上绑定用户。
GAE的运行环境中,某些系统调用不能用,文件系统不能直接写入,不能选择操作系统,不能随意监听网络端口等等有诸多不便。在其它平台里可能没有这些不便,但是这些限制都是有原因的:
软件总是建立在硬件和其它软件的基础之上。不管抽象性有多好,在某种程度上这些硬件和软件都会影响到你的软件开发。GAE的设计原则是通用的——结构化你的代码,从而做到快速响应请求,将运行时间较长的任务放到队列模型中,将数据按寿命长短区分开来,寿命较短的数据放到缓存中,寿命较长的数据用键值对存储。
不要假设本地文件系统,因为它们扩展性不好而且经常失败,不要做针对特定版本操作系统和库的硬编码等等。想要实现一个可扩展、可靠、高效和易于维护的系统,这些都是重要原则。GAE的使用者也希望我们可以凭借其底层软件系统提供更多的服务特性。
Magnusson认为对于大多数移动App和Web App,GAE上的实例可以快速开始,也可以快速扩展。Google可以管理这些扩展,还可以解决数据需要迁移到其它数据中心时出现的问题。
Magnusson谈论的重点是Google App Engine (GAE)的用户绑定问题,同时他也说明了Google App Engine (GAE)与其他云平台之间在管理服务和IaaS上的不同。如果没有这些限制,Google的某些服务是无法租到的。但他们一直在试图提供可替代性的服务,并且每个GAE组件都是可替代的。
ThinkJar的创始人兼首席分析师Esteban Kolsky认为,最小化的绑定意味着一个开放的标准,但是在云计算市场的早期阶段,这还不能实现。
理论上来讲,如果使用共同的标准,就不存在绑定,有几个组织就在在尝试使用这种共同的标准。
对用户的绑定可以最大化供应商的利益,否则用户很容易迁移到其它平台,也很难预测收入。如果他们的收费模式是pay-as-you-go/rent/use,那么用户绑定根本不存在。因为租用应该意味着你可以从多个供应商那里去租用才对,而不是只能被锁定在一个平台。
Magnusson也承认这一点,但他认为在这个阶段谈这个开放的标准还为时尚早。只要云服务提供商不提供平台间互操作性的支持,即使对于经验丰富的开发者来说,在平台间迁移数据和App的工作也有很大的难度。
巴菲特告诉我们要在别人恐惧的时候学会贪婪,从这个角度讲,如果你的技术够牛,提供平台迁移的服务,或许是个不错的创业机会。