本文讲的是云计算引入可能破坏之前建立的IT秩序,【IT168 资讯】经过多年的努力,IT人员刚刚初步完成了对企业IT环境的规范化管理,然而,云计算的出现,却让IT人员的努力即将化为乌有,因为云服务的引入很可能破坏之前建立的IT秩序。
“云计算”热正席卷全球。作为一种按需交付服务的商业模式,云计算为企业提供了一种快速部署和应用IT技术的方法。不过,云计算也给IT人员带来了不小的麻烦。他们很长时间以来一直致力于SOA的治理行动,多年来对Web服务环境实施生命周期管理的IT人员刚刚看到一点成绩,而如今需要对这些策略进行修改,以应对部署得越来越多的基于云计算的服务。因为基于云计算的服务很可能根本不在他们的控制范围之内。
SOA治理,也称为服务的治理,指的是保证一些核心功能在整个生命周期的开发、安全、性能以及其他策略上能保持一致,而无论这些功能是公司内部在提供还是外包给其他公司。
有效的SOA治理是非常重要的。它能确保组织持续不断地对其分布式环境进行规划、设计、验证、发布、监控、修改、优化,并能保持其安全。它能保证无论服务是部署在云端还是主机或者其他平台,都能遵循已有的规定、策略、运营规范等。
云计算凸显治理的重要
从某种程度上,云计算对SOA治理来说是好事情。因为云计算的存在使得治理变得非常关键。
从理论上讲,云几乎具有交付一切服务的能力,从应用到中间件、到应用平台,从存储、到流程处理再到硬件资源,都可以采用订阅的方式按需交付。然而,在云计算的世界里,IT人员如何才能进行有效的管理呢?
“云之所以引发了人们对治理的关心,是因为云让我们把信任的边界从企业内部扩展到企业以外。”美国SoftwareAG公司副总裁兼CTOMikoMatsumura说:“这一变化引发了一个新的问题,那就是把云服务与企业内部的应用整合起来是一个巨大的难题。”
换句话说,云让SOA治理复杂化了。如果没有有效的治理,任何人、任何时候,只要他愿意都可以部署一个新的云服务,他也能调用这个服务,或者能把这个服务集成到日趋复杂的消息系统中。
在缺少治理的环境中,相似的云服务的规划和优化将变得异常困难。另外,随随便便就部署的那些云服务也可能破坏业已建立的信任关系,这种信任关系是生产性SOA环境的基础。
简单来说,云服务可能绕过最有效的关于服务治理的实践规范。由于很多IT功能甚至所有IT功能都没有经过IT部门而被外包出去,IT部门就很难依据之前建立的策略来规范这些云服务,包括服务的组合、集成、安全、管理等实际上都脱离了IT人员的监管。
更进一步说,云服务与企业核心SOA环境存在本质上的区别,IT人员往往并不知道哪些最佳治理实践(如果有的话)适合新的环境。而且在大多数公共云或者私有云环境中,也缺乏企业以前部署的用以支持Web服务的很多组件,比如服务注册、服务级别管理代理和控制台。
从SOA专业人士的眼光看,云环境是无记录、无支持以及非标准化服务的温床。只要设想一下,无需IT部门的批准,使用者就可以访问外部提供的云服务,这一点就不言自明。
另外,外包的云服务很有可能根本就不符合各种Web标准,如XML、SOAP、WSDL、UDDI等,而企业内部的SOA环境都是基于这些标准建立的。
实际上,已经有业内人士提醒说,随意使用的公共云服务可能导致对现有IT环境的破坏,更为严重的是它还可能阻碍IT部门对这些不足进行修正。一旦这些不邀自来的客人在企业的日常运营中站稳脚跟,IT部门会发现自己陷入了无休无止的监控,以及强迫它们符合服务的设计、维护、安全以及版本等各种最佳实践。
需要新的工具
云计算的另一个问题是人们对云计算的陌生。也许随着云计算的日益普及、并最终成为主流,这一担心会烟消云散,但是毕竟还需要一段时间。
“随着云计算和SOA不断融合,对治理策略、治理技术的需求日益迫切。”从事SOA和云计算咨询的Linthicum公司合伙人DavidLinthicum说:“如今,我们的很多客户还处在云计算模式的试验阶段,包括制定云战略、通过一些小的项目来检验云计算的效果。不过,我预计这种情形到今年年末就会有很大的转变,到时候,很多企业的业务流程、应用和信息都会保存在远端的云上,相应地,对治理的需求也会增加。”
就企业部署云服务来说,最好的方法是有选择性地外包一些特定的应用和基础设施服务,而不是不分青红皂白盲目跟风。因此,在云和SOA治理方面的首要决策是决定哪些服务应由哪个公共云来提供,从而避免企业内部不必要的重复。
“决定哪些服务应该或者不应该采取某种方式提供,采用某种方式有哪些好处和风险,企业到底是否能接受这些风险,这些信息非常必要。”DavidLinthicum公司首席分析师DanaGardner说:“最常见的风险是,企业一头扎到云中,订阅了不少外部的云服务,却没有考虑进行集中控制和治理,或者缺乏整体的规划。”
他补充说:“同时,也存在这样的风险,就是管得太死,太追求集中和可控,而没有有效利用云计算给我们带来的优势。最后的结果是花了不少冤枉钱,却无法快速地跟上市场的变化。”
未来几年,我们应该可以看到一些SOA治理的工具陆陆续续地进入云市场,以帮助解决企业IT人员的这方面的需求。
“今天,如果IT部门能够提前计划如何利用云计算,无论是在内部、外部还是内外,他们就已经比其他人走在前面,”Gardner说,“在向新的IT模式迁移的道路上,对IT服务和所有IT资产尽早采用SOA的最佳实践和实施强有力的治理,是获得竞争优势的关键。”
云让SOA治理变复杂
在众多有关云服务的宣传中,尽管我们很难看到关于在云服务环境中进行SOA治理的案例报道,但是,大多数公共云服务供应商还是为管理应用、虚拟机以及部署在它们自己环境中的服务级别等提供了治理工具。
如今,能提供对运行于各种各样公共云与私有云上的服务进行管理的工具的供应商也是越来越多。但是,目前云计算环境尚不太成熟,所以过去这些SOA治理工具供应商现在还无法提供有效的工具,来管理基于云的应用、交易、消息传送和服务级别。
而且,即使云服务真的成为主流,这些服务也从一开始就是按照SOA的治理规范创建的,在管理它们时仍然面临很多挑战。这些困难源于云计算这一新模式本身的特点:基于专有技术的公共云、虚拟资源池以及通过Mashup组合服务等。
全面的SOA治理要求用统一的策略来管理所有的应用、平台、网络域(在一个稍微复杂一些的企业网络环境下,这一点就非常困难),或者在各个自治域之间按照一定的规范建立联盟(或者联邦)。
管理企业内部或者B2B供应链的SOA联邦是非常复杂的,因为需要把内部的应用域与一个或者多个外包商(如亚马逊、Google、微软、Salesforce.com等)提供的公共云服务联系起来,形成一个整体。要想达成目的,你需要有赢得诺贝尔和平奖的谈判技巧。
云联邦解决互操作性
“公共云服务商现在试探性地提出了"联邦"这个概念。”加利福尼亚大学计算机科学系教授、开源云计算软件的研究项目Eucalyptus的负责人RichWolski说:“到目前为止,公共云之间的联邦还不多,但是,我们注意到,业界正在讨论以资源形式提供的云服务之间的联邦。”
Wolski强调说,随着云计算市场解决了各种各样的联邦问题,接下来,服务供应商和企业用户就可以订立多层次的协议,包括身份管理、服务级别管理、存储管理以及其他值得关注的核心问题。
而现在,在企业SOA环境与公共云服务之间几乎没有任何统一的策略,因而那些选择公共云服务的企业面临巨大的风险。
汤姆森路透社架构和企业系统基础设施副总裁ChristopherCrowhurst说:“如果你的企业的基础设施和应用运行在其他供应商的云上,你的企业应用系统的性能可能无法保证。因为在这样情况下,公共云供应商如果需要对其系统进行升级或者系统出现宕机等,它几乎不用对那些订阅它服务的用户承担任何责任。”
Crowhurst认为,如果企业之前没有和这些公共云提供商达成任何关于云服务的稳定性和可用性的协议,就基于这些供应商提供的公共云服务来构建自己的业务系统,将给业务带来风险。因为即使这些公共云服务保持接口不变,其具体行为仍然可能发生变化,而用户也许根本就不知道。
Crowhurst建议,IT人员应该在与公共云服务供应商签订合同时把对治理方面的要求考虑进来,合同中至少要有这样的条款:一旦供应商的系统出现宕机、要修改服务、有新的服务加入,以及版本不兼容和要对API进行修改,供应商必须事先通知用户。
SOA有一个最基本的原则,即分布式应用环境必须与平台无关,SOA治理的基础设施也要遵循这一原则。比如,在纯SOA环境中,外部的API应该与具体实现它的平台无关。
然而,率先体验云计算的企业常常违背这一基本原则,它们把自己的应用建立在一些公共云服务上,而很多服务采用的恰恰是专有的API、专有的开发工具、特殊的虚拟层和特殊的治理策略,虽然很多云服务为符合开放的SOA和Web2.0标准已经做了一定程度的修改,但并不彻底。
这些专有的公共云之间通常不存在可交互性,而那些用于管理各种各样的公共和私有云的工具也才刚刚在市场上出现。
“为了支持用户在不同云服务之间自由地迁移,云服务供应商应该让自己的服务符合公开的行业标准。”虚拟化工具供应商rPath创始人兼首席战略官BillyMarshall说:“如果我们能要求云服务必须符合某个开放的虚拟化格式,那么我们就能对云服务进行治理,而无论它是谁提供的。”
能满足这一需求的一个规范是开放虚拟化格式(Open VirtualizationFormat,OVF),这是分布式任务管理组织(Distributed ManagementTaskForce,DMTF)制订的一个草案,它定义了一个可扩展的包装和发布软件的格式,用以保证软件能在虚拟机上运行,如运行在共有云和私有云中的那些软件。“这是一个确保虚拟机能在不同云之间自由迁移的关键规范,但是目前还是第一个版本,还不能提供虚拟机映像文件的全部上下文,而这些信息是对运行在虚拟机上的云服务进行全生命周期的治理非常必要的。”rPath公司工程副总裁BrettAdam表示。
虚拟机蔓延增加了复杂性
大多数的SOA治理仅仅关注了企业IT环境的表面,比如仅仅管理了一部分运行在应用层的服务以及那些符合XML、SOAP、WSDL以及核心SOA规范的Web服务。而实际上,很多公共的云服务还提供更深层的按需服务,从应用层到软件开发平台、集成中间件再到硬件层。比如,虚拟的、基于网格的“硬件资源作为服务”的资源池就是一种非常受欢迎的云服务,能提供非常大的处理能力和存储空间。
由于上述原因,随着云服务形式和种类的日益丰富,对云计算环境进行治理已经超过了目前SOA治理工具的能力范围,云计算环境使得对所有的服务进行统一的规划、实际、提供、监控和控制的想法几乎成为不可能。
“云治理与常规的SOA治理不一样的一个关键地方是对虚拟机生命周期的关注。为了方便虚拟机上的应用程序自动提供,云管理环境应该提供一个预先规定好的服务器模板。”云管理平台供应商centerScale创始人兼CEOMichaelCrandell说,这些模板配置好了各种策略,这些策略用于对支持关键服务运行的虚拟机的生命周期进行管理,包括部署、配置、启动、监控、优化,以及对运行在一个(或多个)公共云(或私有云)上的虚拟机进行按需扩展。Crandell说,云治理甚至还可以包括周期性地注销虚拟化实例,然后在同样的位置启动一个新的虚拟机。
事实上,有一功能被证明是进行云治理的杀手级应用,这就是阻止未经允许的虚拟机在公共或私有的虚拟基础设施上运行。这一问题有时被称为是“虚拟机蔓延”,虚拟机蔓延不仅带来了维护上的麻烦,而且还会消耗CPU、存储和网络资源。
越来越多的商业性的管理工具提供了控制虚拟机蔓延的功能,而且不受限于一个具体虚拟化平台。同时,虚拟化平台的供应商,如VMware、Citrix、微软和一些公共云服务供应商也把这一功能作为它们的管理工具的主要卖点。有时候,这一功能被称为“实例管理”,是传统的SOA治理工具所不具备的。
Mashup噩梦
传统的SOA开发是由上至下的,需要精心地对架构进行设计和对各功能进行分解,以保证与平台无关,还需要保证各种服务之间是松散的耦合关系、服务对外发布的API必须符合开放的Web服务规范等。通常情况下除了一般的工具和支持关键的接口标准(如WSDL和SOAP)的平台以外,会有一个核心服务的目录,通过UDDI来发现对服务的描述。
与之相反,云服务推崇一种更草根的方式来进行服务的提供、开发和管理,如Web 2.0、面向Web的架构(WebOrientedArchitecture)和REST(RepresentationalStateTransfer)等。任何人只要有一张信用卡就可以访问或者启动一个云服务,而这个服务也许在企业内部早就部署了。
同样,任何人只要有个浏览器,他就可以对云服务进行聚合(Mashup),或者把云服务集成到某个应用中,这种模式与企业传统的设计模式大相径庭,这些服务也很有可能不符合对企业级服务的安全要求。比如,在使用REST时,UDDI、WSDL、SOAP以及其他一些WS-*标准都可以不遵守。因此,对Mashup的看法也是有人欢喜有人忧,而SOA专业人士很明显是担心多于忧虑。
不过,云服务还是可以从很多SOA治理实践中受益,HP软件和解决方案SOA产品主任TimHall说:“最重要的是,你需要一个服务的目录,用于维护关于服务的元数据,以对服务的开发、服务的构建、服务的发布进行控制,并最终保证服务对消费者可用。”
同样,还要在云联邦方面达成一致,从而为公共云、企业的SOA、REST以及其他云环境提供一个关于服务互操作的明确的协定。Hall说,毕竟它们都是基于服务的环境。从宏观的层面上看,这些服务可以直接带来价值,它们或者可以帮助企业挣钱,或者可以帮助企业省钱、降低风险。
总体而言,尽管SOA治理作为一个专门的领域已经逐渐成熟,然而,为服务提供运行平台的云计算却才刚刚出现不久,而且,在未来的几年中云计算一定还会快速演变,因此,要在云服务治理上达成一致并形成最佳实践还是非常困难的。可以预计,在相当长的时间内,如何对包括云服务在内的IT环境进行强有力的治理还将是业界探讨的话题。
从SOA专业人士的眼光看,云计算环境是无登记、无技术支持以及非标准化服务的温床。因为在这一环境中,无需IT部门的介入,就可以随意访问外部提供的云服务或者把服务集成现有应用中,从而破环业已建立的IT秩序。