当应用程序的可移植性问题出现时,企业和云计算供应商的利益就会发生冲突。企业组织想要在企业内部IT,私有云和平台即服务(PaaS)和软件即服务(SaaS)的公共云的前提下无缝地运行他们的应用程序。可移植性应用程序使用户能灵活地做到这一点—并移动到不同的供应商—但供应商并不急于发送业务给他们的竞争对手,位于圣安东尼奥市的Denim集团主席Dan Cornell说。
这些实现应用程序的可移植性的冲突需求和技术挑战,使今天的云使用情况充满挑战。
在理想的情况下,一个组织将能够从任何设备发送并接收应用程序和数据到任何云计算平台。然而,时至今日,唯一可以保证的使用应用程序运行在两个不同的云上——如果两个不同的云都运行相同的软件,巴黎凯捷全球基础设施服务全球总监Mark Skilton说。
如果没有简单的应用程序可移植性,厂商锁定是难以避免的,专家说。“如果IT不喜欢云供应商通过他的服务等级协议所提供的服务,那么他将要转移到另一个云提供商上去,Bill Claybrook说。Bill Claybrook是美国马萨诸塞州康科德的New River Marketing Research公司的总裁兼分析师。今天,从临时应用程序中迁移,通常只需要通过一秒钟的时间,“举个例子,从Amazon EC2转移应用程序或者数据到Terremark或Rackspace就不容易”Claybrook说。
企业迁移到云平台上即使运行和前一个供应商相同的软件,软件中的任何变化都会导致性能问题。提供应用程序的可移植性,不仅仅是应用程序本身的可移植性,Claybrook说。来源云和目标云很可能有很大的不同:不同的管理程序,支持不同的操作系统,不同的安全性,存储和网络模型和支持不同的数据库系统等。同时,工作在来源云的管理工具,可能无法在目标云端工作等等。
从技术角度来看,云中可移植性应用程序的最大障碍是缺乏标准化的云API,来用于供应商或云服务供应商开发自己以技术为基础的产品。如今,Skilton说,应用程序的可移植性思考,是从可移植性转移到API公开上。API互操作性使用户能够使用通用的开放式API在不同的云端使用应用程序。
一个API的定义可能不是完全透明的,这会导致许多问题。有时候,一个看似开放的API标准,其实并不是,因为它被包裹在一个特定的平台上,Skilton说。这消除了周围使用该API的灵活性。
其他两个可移植性问题是难以移植的数据库模式和访问与管理存储在云端数据的客户权益不确定性。“即使你可以访问你的数据,你不一定能把它加入到另外一个系统上,因为应用程序的数据模式不一定兼容,”Cornell说。
Skilton说,在如SQL的关系数据库中的文件格式是不容易移植的,因为当数据被分割在多个数据库时,数据库中的关系必须保持一致。今天,结构化数据库的可移植性仍然很困难。其中一个答案是使用NoSQL或非结构化数据作为数据封装和存储的首选标准。
数据访问问题是服务相关的数据生命周期管理的一个方面。其中的例子包括移植数据的权限和删除存储在云中的数据的权限,Skilton说。
专家表示,关于数据访问,企业在合同谈判中必须立场坚硬。全面披露是否允许第三方访问你的数据,Claybrook说。例如,云服务供应商能否被迫提供数据访问给第三方,比如警察?你是否控制数据的物理位置?
初期的可移植性应用程序标准
一些产业组织,如OASIS,Open Group及OpenStack项目—都是工作在云可移植性和互操作性规范领域最活跃的组织。只有Open Stack在2012年之前由Rackspace公司拉开序幕—并且Claybrook期望它长期产生最好的结果。专家说,“然而,今天的一切都是不成熟的,而且云供应商的支持前途未卜。”
大多数云服务供应商将支持创建的云计算标准,但这种支持的很大一部分将是空口的应酬话,Cornell说。他们不会严格坚持标准,因为他们要把他们的产品和竞争对的手区分开来。他说:“所有的厂商都希望把客户锁定于自己的产品,”他说。通常情况下,除非需求是巨大的,不然供应商是不会围绕标准蹦跳的,因为它是TCP / IP协议。
与此同时云可移植性的提示
虽然标准正在制定中,企业承担促进整个云平台应用程序的可移植性的负担。专家提供了以下最佳实践:
“请确保应用程序及其支持的组件,如数据库和工具,不依赖于操作系统和底层的云基础设施,”Claybrook建议。
Cornell说,协商访问数据和其他设施。一旦合同签订并且数据移动到供应商系统,谈判的杠杆作用就被限定了。
查找一个能够支持的应用程序管理平台—如今差不多是可能的了—在一些云计算环境中,Claybrook说。这只会是有价值的,然而,如果云提供商支持该特定的管理平台。
了解的技术设施,比如应用程序接口(API),提供对你的云服务商存储的数据进行访问,Cornell说。
在组织的最高级别保持数据托管在云端的决策,而不是让员工获得基于云的系统而没有足够的审查。
在最后的分析中,如果没有一个精明的内部应用程序支持团队和一个服从的云服务供应商,应用程序可移植性在今天很难实现。考虑到替代品和锁定在组织的互操作性和自由的重要性,专家说。如果组织的可移植性应用程序的需求不能得到满足,接受,那么就不能简单的把应用程序和数据迁移到云端上去。