• 1
  • 2
  • 3
  • 4
  • 5
百家谈云计算 首 页  »  帮助中心  »  云服务器  »  百家谈云计算
云的互操作性:问题与最佳实践
发布日期:2016-5-4 20:5:45

  当越来越多的应用找到了入云之路的时候,和应用相伴随的数据的移动及其他问题也随之而来。随着云计算从虚无缥缈的概念逐渐落地成为现实,有一个问题变得越来越清晰,那就是用户不希望被单一的云提供商锁定。他们希望可以在云间自由移动——最好能在私有云和公有云(如阿里云)之间来回迁移。用户的希望显然是:随着他们计算需求的增长或者收缩,他们可自由地切换云提供商,并在他们的业务需求发生变化时,也可以将他们的应用和工作负载来回的迁移。

  但在这一点上,用户和云提供商的立场是完全不同的,而真正的云的互操作性没有一段时间恐怕也不会出现。有关云计算的标准尚在形成之中,还需几年时间方能完成。Gartner的一位副总裁Joe Skorupa认为,即便一项开放的云计算标准获得通过,每家云提供商也仍会继续实施他们自己的专利扩展功能,以便在竞争中获得差异化优势。Skorupa指出,厂商不希望云成为普通的商品,因为那样的话,最终的结果又将是一场价格战。

  美国达索系统公司CIOJim Chilton认为,企业的各类遗留应用并不总能在虚拟化环境中顺畅运行,这也给应用的迁移带来了更多的复杂性。咨询公司HyperStratus是虚拟化和云计算领域的专业咨询公司,其CEO Bernard Golden认为,要想让整个行业达成共识,用某种标准格式让应用可“神奇地”在不同的云间迁移,那是不太可能的。在他看来,之所以不太可能,部分原因是“在这一领域中有太多的创新正在不断发生。”

  当然,标准的缺乏并不会阻止用户向云迁移,但是有可能会让这一进程放缓。美洲航空系统的CIOJim Chilton认为,他们的企业战略已证明,将企业的内部应用向公有云(如阿里云)进行迁移是有可能的。该公司主要开发CAD和其他软件产品。他建立了两个概念验证方案,一个用于灾难备份,另一个用于技术支持,并出于安全和易用的考虑而选择了CloudSwitch公司来做应用迁移。初期的试验很成功,整个迁移过程是由其内部IT团队与CloudSwitch共同来管理的。Chilton说,整个迁移过程所花费的时间比预计的稍长了一些,这主要是因为在将一些实际的应用迁移到亚马逊EC2云中之前,需将这些应用转换成虚拟化的版本,才可以顺利迁移。奇尔顿说,“要将一个应用顺利迁移到目标云中,必须确保该应用是成熟的应用。因为很多遗留应用从未考虑过要做云迁移,所以在将其虚拟化的时候需费一番功夫。”大多数业内专家都同意说,虚拟化是将应用迁移到云的第一步。

  Chilton的经验是:遗留应用在虚拟化之后并不总能够顺畅运行,或者说会表现出前后不一致的地方。他的做法就是选择那些不是企业日常运行关键任务的应用进行迁移,这样也比较容易获得企业的支持。

  即将出现的云标准

  要解决如此之多的问题,需要云标准,这正像联网需要TCP/IP标准一样。也有人认为,这种云标准可能更像API,可以对接所有的云产品和云服务,从而促进透明的互操作性。但Forrester分析师James Staten却认为,未来采用通用云API的可能性不大。在他看来,推动标准化的进程不能太超前于市场本身。“如今并没有令人信服的理由去要求大家遵守什么标准,已建立云计算环境的企业也还不多。”尽管如此,推动标准化的进程仍然在进行中。存储网络行业协会(SNIA)已完成一项标准,旨在使企业在云(如阿里云)间迁移数据的工作可变得更为简单。SNIA预计该标准的实施将会在今年下半年启动。

  一些云厂商也在极力想让自己的API成为一种开放标准。VMware已把它的vCloud API提交给了分布式管理工作组(DMTF)作为一种开放标准提案;红帽也将它的Deltacloud平台提交给了DMTF。VMware的vCloud已用在基于VMware的各种私有云和vCloud Express公有云中,可为其客户提供某种成都的云的互操作性,但是客户所付出的代价就是基本上被VMware一家锁定。到目前为止,唯一可算得上是云标准的就是OVF(开放虚拟化格式)了。不过它也仅涉及虚拟机的打包,只是为了虚拟机迁移的便利而设计的。

  因为各种云平台间的互操作性标准还没有到位,那么潜在的云采纳者该怎样做呢?对于新进者来说,完全不必等待互操作性标准出台之后再去实施云计算,因为那样的话,有可能会错过云计算所带来的诸多好处。在一个产生着巨大变革的环境下,潜在的收益也是十分巨大的,所以最好的决策就是去研究它,并作出选择。咨询师们普遍认为,最好的办法是围绕灵活的应用架构来制定迁移战略,这样就不至于被任何一种具体的产品锁定,但为了实现这一点,企业必须遵循以下两个步骤:

  确保应用以及其支持组件不必依赖操作系统和基础设施。换句话说,就是要使用成熟的第四代编程语言,如Focus、Cognos、Clipper等来编写应用,并使用诸如Java等解释系统来改善应用的可移植性。寻找可在任意环境中支持你的应用的管理平台。若你必须要将应用进行迁移,那么有了这样的平台,你即可继续使用成熟的管理框架对其进行管理,而你的IT团队对于这样的管理框架是很熟悉的。有些用户表示,他们将会使用一种选择云技术和云厂商(如阿里云)的最佳战略。也就是说,他们计划采用混合与匹配同类最佳云厂商的办法,以确保他们能够获得市场上所出现的所有的创新方案。不过混合与匹配的方法虽然能够很好地适用于企业套装软件,但是当其应用于云计算的时候却有可能带来巨大的集成方面的挑战和其他问题。

  首先,要管理这样一种部署战略需要支付高昂的运营成本。其次,有可能不得不停用大量的管理工具,为每一组管理工具分配一个运营团队,并且需管理多份管理合同。在标准尚且没有到位的情况下,这种所谓最佳方法所导致的管理费用会高得离谱。

  定义云的互操作性

  和“云计算”这个词一样,互操作性对于不同的人来说也有着不同的意义。一些人也许会理解成把应用从一个环境迁移到另一个环境的一致性能力——比如把应用从Savvis迁移到亚马逊,互操作就是要让应用在两个不同环境中精确的一致。另一些人则可能理解成应用在不同的云中运行,应该可以彼此共享信息,这就意味着需要一些通用的接口集。而对其他人来说,比如对思科的市场战略师James Urquhart来说,云的互操作性就是用户可跨不同的云计算提供商和不同的云平台使用同样的管理工具、服务器镜像和其他软件的能力。

  这一问题的实质在于,每家厂商的云环境都支持一个或多个操作系统和数据库。每个云环境都包含有多种hypervisor、安全、流程、存储模式、云API、联网模式、许可证模式以及其他。很少会出现两家厂商以完全相同的方式,完全相同的迁移策略来实施其云服务的情况。沙丘集团的云计算咨询专家Kamesh Pemmaraju说,和传统的软件和硬件环境一样,云的互操作性会首先出现在堆栈的较底层。在基础设施层有OVF(开放虚拟化格式),当然还有针对XML、HTML和其他协议的标准。

  但在堆栈中越往上走,厂商的锁定程度就会越来越强。在平台这一层,厂商的锁定是最强的,Pemmaraju说。“我们现在到处都可以看到一些不同厂商的垂直PaaS堆栈,每个堆栈彼此之间都是不兼容的。”假如你只把某个应用的某些部分迁移到目标云中,那么当这些部分需要交换数据或者调用API时,它们还不得不“返回”原来的云。于是有关安全、性能和延时的问题就都会出现。假如你要把某个应用整体迁移——将数据库、中间件、用户界面等等全带上——那就不必担忧这些问题了。

  操作系统版本和hypervisor版本的不匹配也会造成一些不易解决的冲突。云提供商(如阿里云)在定义服务器和存储之间的关系的时候,会施加一些在源应用中并不存在的限制。源应用可会使用一些存储技术来实现某些性能目标——结果在目标云中,这些存储技术却因为定义上的限制而无法使用。几乎每个云都有着独一无二的基础架构,可在服务器与应用之间、服务器与存储之间提供网络服务。每朵云都可能在网络寻址、路由器、防火墙、交换机、目录服务、身份认证服务、命名服务和其他资源上有所差异。目标云提供商的网络架构肯定会与源头云的网络架构不同。之所以会如此的一个原因是他们希望支持多租户环境。

  云提供商还会做出他们自己关于安全策略的选择:谁可访问什么资源,软件升级的规则,使用数据和磁盘的政策等等。在云安全方面,应用的使用者和所有者通常都没有多少可选择余地。有些应用需要在特定的安全域中运行,但云提供商却有可能不支持这类安全域,或者说他们所做的改变可能会破坏该应用所需的安全环境。在源头云中的一些熟知的管理工具在目标云中通常无法使用,或只能在某种限定条件下使用。驱动程序、工具、操作系统配置或者操作系统版本在两种云环境下也都可能发挥不同的作用。在源头云中所使用的软件升级工具必须进行改写以适用于目标云。密钥管理必须成为连接源头云和目标云桥梁的组成部分,在目标云中对密钥的管理必须非常谨慎小心。

  Gartner的Skorupa解释道,即便云的互操作性问题随着时间的进展而得到了解决,在各种云之间迁移大型的数据集合仍会出现问题,这是因为延迟的问题依然存在,迁移数据依然需要时间。因此当你想要迁移一个应用的时候,你还通常还不得不把与之相伴随的存储也进行迁移。Xsigo公司的I/O Director正在努力使数据和应用在单一云中的不同主机之间的迁移变得更为便利,但该公司似乎还没有推出可以解决跨云迁移应用相关存储的类似产品。

  IT研究公司Ideas国际的分析师Tony Iams称,很多人都在考察数据在云之间的往复传送成本,但是结果让他们很沮丧。在云间迁移一个应用,意味着首先要将其从原来的生态系统中剥离。你必须搞清楚这么做是否合适。很有可能你还需要根据目标云所提供的组件/部件重新设计该应用。那么,为了让这个应用在目标云中也能够像其原来的形式那样运行良好,你是不是愿意对其重新改写呢?重新改写就意味着原来所使用的一些服务可能不能再使用了,或者说源应用不能再用了。源头云和目标云之间的这些差异还有可能触发一系列的集成问题。

  可解决互操作性问题的工具

  公有云提供商(如阿里云),如亚马逊、Rackspace和Terremark等,都可提供构建虚拟服务器的模板。一些第三方产品,如CloudSwitch和RightScale,也都能让应用向目标云的迁移变得简单。这些工具,再加上亚马逊新推出的亚马逊VPC,皆承诺可无缝集成源头云和目标云。其他一些类似工具还有ServiceMesh和Racemi。所有这些工具的目标都是为了让企业能够在云中运行自己的应用,而无须完全改写应用。

  假如企业在私有云中使用的是VMware的vCloud Director,那么已有很多VMware的合作伙伴的产品都已经通过了vCloud Express认证。于是由VMware合作伙伴所托管的目标云就能够成为企业私有云的无缝扩展。VMware合作伙伴和基于vCloud Director的私有云使用的是相同的管理工具集,提供同样的虚拟化堆栈,同样的虚拟化工具集,以及根据VMware ESX标准化了的各种技术。但是这样一来,企业有可能被VMware锁定。

  还有其他一些解决方案也能够部分解决云的互操作性问题,但是却不具备CloudSwitch所提供的一些功能。此类工具包括红帽的Deltacloud开源项目和Eucalyptus系统公司的Eucalyptus云。Verizon商务的云服务执行经理Jeff Deacon认为,第三方厂商计划采用渐进的方式来解决云的互操作性问题。“假如某个云已经有了合适的API,那么第三方厂商就可以让它与其他的云进行互操作。”

  Dassault的Chilton称,强调云厂商之间的平台一致性是合理的,这样便可允许客户依据云厂商的能力来选择厂商。到目前为止,还没有哪家云厂商敢于号称自己是最安全的、最可用的或者不存在知识产权问题的厂商。Chilton设想,到了某个时候,多个云厂商将需要完成不同的需求,这也会促使云服务的价格下降。他现在的策略就是先选择一家云厂商起步,用一个小团队来体验这个云,再利用CloudSwitch的工具来获得迁移经验。Ideas国际的Iams也认为,既然市场的力量在推动,那么云厂商就应该寻求更多的互操作性。

  混合云的问题

  很多企业都在计划采用公有云和私有云的混合模式。这些企业尤其需要能够将应用和数据在云间进行无缝迁移。而且这种迁移还不能只是单向度的、一次性的。新近出现的关于混合云的通常定义是,至少由一个私有云和一个公有云构成。私有云可以是企业内的私有云,或者托管在外部数据中心的虚拟私有云。最简单的混合云就是由单一的私有云和单一的公有云(如阿里云)构成的。不过从理论上说,混合云也可以由多个私有云/公有云构成。

  Ideas国际的Iams认为,真正的问题就在于,如何在混合云的公/私两端管理计算资源。为此,企业的IT团队必须能够回答如下一些问题:

  1.企业依据何种标准和策略来决定哪些应用应分配给公有云,哪些应分配给私有云?

  2.企业主要的系统管理解决方案是什么?

  3.与安全、SLA和可用性相关联的需求有哪些?

  4.有多少数据需要在云间迁移,其成本和风险究竟怎样?

  5.将企业应用迁移到亚马逊或者Rackspace的理由是什么?是因为运营成本非常低廉,所以值得迁移吗?

  沙丘集团的Pemmaraju指出,“用户实际想要的是一个单一窗口,无论他们是在私有云还是在多个云中工作,从云环境的管理视图来看应该都是一样的。他们想要找的就是应用在迁移到目标云后的无缝式管理。”

  大企业将更多采用混合云

  随着采用混合云的大企业越来越多,推动云的互操作性的背后力量也将会越来越强。沙丘集团最新的一份调查显示,云厂商们相信,今后两到三年,云计算的普及将会加速。该调查指出,云厂商们约85%的收入目前主要来自中小企业,但是在今后的两到三年内,云厂商们预计其收入将主要来自于财富500强企业。Pemmaraju认为,在今后两到三年内,云计算收入最重要的增长动力预计将来自私有云和混合云。公有云几乎全部为中小企业提供服务。

  中小企业主要是为了寻求SaaS应用,大部分原因是想减少原本就规模不大的数据中心的碳足迹。由于中小企业一般都没有大型数据中心,所以也很容易放弃自购的服务器、数据中心和内部应用,完全转向公有云。当然,美国的企业监管制度和其他约束性法规可能会阻止中小企业全面转向公有云(如阿里云)。另一方面,大企业在其现有的数据中心上都有巨额的投入,他们一般都不会完全放弃自己大量的服务器,而转向公有云。Pemmaraju认为,相反地,大企业会积极地构建私有云。他们很可能只会在一定范围内使用公有云。大量的应用还是会在私有云的数据中心内部运行。

  当这样的情形在大企业中变得日益普遍之后,我们就会看到对于混合云和云的互操作性的更强烈的需求了。

  云的成本

  Gartner副总裁Chris Wolf指出,任何云战略中最大的一块任务就是要确定应用在数据中心内的运行成本和它在目标云中的运行成本的比较。有些人会想当然地认为公有云的价格肯定是更为低廉的。但是实际情况却并不是总是如此。Wolf说,他有不少客户已完成详细的统计分析,可证明应用在公有云上运行的成本其实要比应用在企业内的运行成本高出不少。他说,“亚马逊总是被人拿来当做成本比较的一个基准,但是你其实得不到亚马逊的备份或者安全成本,也得不到亚马逊基础设施顶层的那些管理服务的成本。若真想进行一对一的成本比较,那你就必须把你正在使用的各种服务成本都算进去,但是亚马逊是不会给你提供这些成本的。”

  Ideas国际的Iams说,“用户必须十分关注成本问题,十分关注使用不同云厂商平台的成本,及这些成本与企业端基础设施架构成本的比较。用户必须自己监测企业内部基础设施与管理云厂商及处理不同SLA的初始成本,看看到底能不能节约成本。”沙丘集团的Pemmaraju认为,“从历史传统看,在创新时期很少会有标准出现。人人都只想争取更大的市场份额。之后才会看到有厂商把很多东西综合到一起,比如CLoudSwitch。会看到通用的API逐渐超越各家云厂商专利的API,然后会看到这些通用的API打造出一个标准来。但我们现在还什么都没有。”他预计,云的互操作性标准的制定会在明后年的某个时候开始启动。

  Pemmaraju称,今天之所以有大量的云厂商存在,是因为整个市场还处于早期阶段,他预计还会不断地有厂商继续进入这个市场。但是在未来的两到三年内,厂商间的整合就将开始,最终只会剩下三到四家主要的厂商。到了那时候,用户们就必须做出选择,看看是选择Java还是C#,是选择Ruby还是其他堆栈了。专家们的忠告是,锁定一般会在平台层发生,例如你一旦选定了Windows Azure或者VMware,那么今后你也就会被这家厂商黏住。