以下是一个企业所能遇到最糟糕云计算噩梦的情况:开发团队已经基于一个公共云服务开发了专用应用,但是这个企业现在又希望把应用改为在内部自有服务器上运行。或者该企业已经使用了云应用一段时间,但是当团队希望变更提供商时却发现他们的数据却受制于某个云提供商。
为了帮助开发人员和CIO们能够在晚上睡个好觉,专家建议应当严格坚持标准并彻底调查云计算服务提供商和应用程序提供商。
寻找云标准:知易行难
便携式云应用的根本难题在于事实上业内还没有具体的云标准, Forrester Research的副总裁兼首席分析师James Staten如是说道。但是,一组云计算特定的应用程序接口(API)的确存在,也正在逐渐成为事实标准。
Staten说,虽然OpenStack API也正在试图成为事实标准,但是最常见的API仍然是亚马逊专为弹性计算云(EC2)和简单存储服务(S3)所提供的API。但是,支持OpenStack的厂商数量是极其有限的,其中包括了惠普、RackSpace以及其他若干规模较小的私有云厂商。“你可以选择亚马逊的便携性,或者也可以选择OpenStack,”他说。
Staten还提到了另一个选择:选择一个重新映射相关功能以便于开发人员实现更强大便携性的管理工具。例如,RightScale允许应用可以部署在多达60种不同的云计算上,并公开更多的服务。
调查云和应用提供商
特定提供商所提供的API会让开发人员陷入陷阱。避免使用这些API可能是确保应用具备一定可移植性的最简单方法,托管平台公司的CEO Charlie Key说:“如果你正在开发一个应用程序并知道它将在亚马逊的基础设施中运行,那么你应当避免使用他们的API以试图进行任何方面和形式的尝试。”他承认,这个方法将使开发工作变得更为复杂和费时。但这也赋予了开发人员创建真正的便携式云应用的能力,这样的应用能够在企业所选择的任何公共云或私有云计算中运行。
开发人员还能够确保应用程序组件尽可能地小。“从字面上看,如果你正在开发一个将完成二十项不同任务的大型应用,那么你确实可以审视一下这种方法,并试图从架构设计上就把这个应用分解成为多个较小的应用,”Key说。不同的云服务是在不同的硬件上运行的,其中有些云服务的性能要比其他的更好。因此,如果公司决定把这个应用迁往另一个云服务,那么以多个小组件形式进行应用开发将使其更易于在多台机器上运行,他说。
在众多的方法中,开发人员应当选择便携式技术作为基础,从而实现在更多的环境中运行他们的应用。Key说:“那并不总是开发人员所能控制的。”例如,企业可能需要基于Java或.NET这样的开发语言来对应用进行开发,但是使用便携性技术作为基础就能够让应用在更多的操作系统上运行。
当选择重新开发云应用时,有一个简单的方法可确保它们是真正的便携式云应用:在签署协议之前,进行尽可能详细的调查和广泛的研究,咨询公司THINKstrategies的常务董事Jeff Kaplan说。“不幸的是,这取决于应用程序的本质特性,你所收集信息的数量将随软件和提供商的特点不同而不同,”Kaplan说。
便携式云应用提供商标准路在何方
他建议应根据提供商的空白点询问,他们将采取何种措施以实现不同提供商之间的数据和应用迁移或者内部迁移。对提供商进行在线研究也是非常明智的做法,尤其是在用户群中,他说:“只要是在一个由志同道合的业内人士组成的社区,你就有可能问计于它们,询问他们心目中对特定提供商的或好或坏或不堪的印象。”
久负盛名的软件即服务(SaaS)和基础设施即服务(IaaS)提供商认为便携性是一个客户关心的重要问题,Kaplan说:“无论出于何种原因,提供商都应在完成业务的同时确保可以把数据交还给客户。”企业也需要提供商提供用于进行数据迁移的工具,位于新罕布什尔州曼彻斯特的软件提供商Scribe的产品管理副总裁Betsy Bilhorn说。她介绍:“你获取你的数据的能力真的只取决于提供商将提供的API或导出工具。”
大多数的提供商确实为企业用户提供导出工具以便于他们访问和迁移他们的数据,以及在其他应用程序中使用,Bilhorn补充说。“在云计算中,你已经得到API并能够以其为对照进行开发,但用户还是只能被动地提供商提供什么就使用什么,”她补充道,“他们表示,从表面来看你似乎拥有着你的数据,但是从某种程度上说,你又不具备你的数据的拥有权。”