虚拟化:如果SOA不能虚拟化 就没有灵活性

        虚拟化技术占我们IT预算80%以上如果我们把虚拟化好处应用到我们在商务活动中使用关键企业软件Software并且应用到这些应用深入开发、技术支持和维护成本等方面情况会如何样呢?服务器虚拟化可直接减少硬件和配置成本但是仅把重点放在虚拟化硬件方面我们会浪费金钱吗?   虽然机构能够减少它们需要设备数量并且为虚拟测试平台节省复制服务器成本但是这些服务器正在变成商品

  毫无疑问来自电信、制造、石油天然气、金融、电力等等行业大企业是中国信息化服务最重要对象的经过这些年信息化建设他们信息化建设已经取得了很不错成绩这些掌控着中国IT采购最重要生杀权IT厂商最直接上帝们他们对现在IT系统还有什么痛点?他们目前IT状况如何?他们下采购重点将是什么?他们未来需要什么样IT系统和产品?他们最关心什么?

  虚拟化技术占我们IT预算80%以上如果我们把虚拟化好处应用到我们在商务活动中使用关键企业软件Software并且应用到这些应用深入开发、技术支持和维护成本等方面情况会如何样呢?

  目前主要企业都依赖多种分布式技术和新功能如SOA等虚拟化能够提高这些系统质量和上市时间但是团队(Team)如何实施虚拟化以便提高不在个集中团队(Team)控制下SOA功能和加快上市时间呢?这个扩展机构必须要通过把共享服务行为虚拟化才能把这两个战略联系起来从而成倍增加SOA价值

   3种类型SOA虚拟化

  企业在SOA中应用虚拟化概念有 3种独特思路方法:

  1.硬件虚拟化包括在个硬件设备中以虚拟机方式运行多个版本操作系统这将为在数据中心运行内部应用提供更低成本、更大灵活性和风险管理好处并且为SOA系统提供个复制测试平台有用途径

  2.虚拟端点能够在你和这个实际端点隔离开来时候允许SOA定义服务虚拟位置这对于SOA应用中固有动态流程是很理想个服务物理地址也许需要根据它什么时候和如何用作个指定工作流部分而进行改变

  3.虚拟服务不仅仅是对SOA测试有用虚拟服务通过优化整个实战开发和应用来提高价值

  本文重点讨论第 3种类型虚拟化--在数据中心外部发生虚拟服务对于SOA应用生命周期其它方面来说我们创建虚拟测试平台努力只能达到这个程度企业通常为了验证和开发SOA而依靠实时实施然而这些复杂相互连接环境能够通过硬件虚拟化技术复制我们需要把虚拟化扩展到实际分布式软件Software组件中和在这些环境中运行服务中

  如果SOA不能虚拟化它就没有灵活性

  在硬件和数据中心级别上实施虚拟化可以产生立竿见影节省运营成本回报可直接节省数百万美元IT成本

  然而当我们把组件或者服务开发任务分配给多个团队(Team)时候我们经常忘记这些团队(Team)仍需要实时访问这个应用其它部分以完成自己开发和测试目标所有这些团队(Team)的间仍需要高水平依赖性和相互沟通以提供个完整工作流对于大规模企业系统来说这给SOA投资回报提出了严格限制

  有种思路方法可以是使用SOV(面向服务虚拟化)把这两种技术联系起来:模拟应用软件Software资产行为策略以及合成制作企业SOA应用组件不利用SOV优势在整个企业范围内最大限度地实现SOA价值是很困难如果不是不可能

  挑战:SOA障碍

  企业采用SOA最佳做法实现商业灵活性和成本好处遗憾当SOA应用试图通过升级来满足大型企业现实需求时候最佳SOA架构和治理战略仍很缺乏即使拥有虚拟服务器也是如此出现这种事情有若干原因

  共享系统资源冲突

  SOA就是通过把企业系统当作共享服务提供来发挥企业系统优势然而访问共享资源问题危害每个单独SOA计划个主要ERP系统管理员或者大型计算机管理员可能会对他们在生产中应用采取保护措施限制开发和测试团队(Team)直接访问这个应用以避免出现不可预料问题

  此外即使允许访问实时服务经常会受到个SOA环境中多个机构需求限制当各个团队(Team)被迫排队等候访问个现实环境以便进行测试和开发时候灵活性就受到了影响在大型企业应用通过硬件虚拟化本身创建另个环境例子成本太高是不允许

  不连贯开发和整合生命周期

  开发人员需要把服务接口做成个占位符模型以便确定他们服务如何和其它服务互操作例如个开发团队(Team)正在扩建用户数据而第 2个开发团队(Team)正在创建账户数据由于这些应用是并行开发这两个团对需要相互依赖对方服务个团队(Team)都需要依靠访问接近完成或者已经实施服务来证明他们自己服务能够正确地互操作

  SOA通过把松散耦合组件当作服务来实现灵活性因此更小和更分散团队(Team)能够并行开发和集成这些服务当仍然存在依赖性时候我们如何才能达到这种并行开发水平呢?看下这个典型项目计划或者甘特进度表在下个开发团队(Team)继续开发下个组件的前肯行会遇到个项目中可用组件个“依赖性”这正是我们希望用SOA打破个模式

  增加复杂性和异质性

  虽然许多做SOA计划都是以Web服务(WSDL/SOAP)为中心但是在最佳企业实施SOA计划中只有大约50%是基于Web服务有多种技术可以用来创建SOA中间件软件Software这些SOA中间件软件Software也许是非常合法对于个指定机构来说也许比个Web服务栈更好例如使用个几乎不依赖Web服务企业服务总线要保证SOA质量各个团队(Team)需要验证实施状况和对各种区别技术产生副作用而不仅仅测试自己选择Web服务或者中间件软件Software层

  SOA测试环境维护和技术支持高成本

  要向个SOA应用提供服务许多机构试图复制和维护自己测试环境然而复制他们需要在自己过渡环境中进行交流全部组件是个成本非常高过程它需要高水平配置、许可证成本和维护以保证那个测试构件保持最新状态即使它是在虚拟硬件中运行也是如此(虚拟硬件也有些增量许可证成本)SOA利用许多企业系统都太大了有太多开销不能实施虚拟化

  不要试图通过复制数十个变化服务来创建个巨大测试基础设施SOA需要个策略解除这些团队(Team)对这些实施依赖这将提供种根据部署中存在现实状况进行测试和开发思路方法

  数据和系统记录庞大规模

  达到企业级SOA应用水平最后(也许是最困难)障碍是需要管理系统和数据庞大规模要测试个SOA应用实际效果机构需要输入套逼真数据然后离开正在测试中环境

  虽然他们能够在架构和设计过程中根据制定元数据描绘出和其它服务的间互动但是旦他们通过连接这些端点理想模型他们还必须要应付个CRM大型计算机或者企业系统以及这些系统管理者嵌入在这些层数据和商业逻辑在过去若干年里已经增加并且客户化了把这个系统和数据制作成完整镜像副本并且根据另个企业许可证和实施团队(Team)要求进行测试成本太高了

  引进面向服务验证

  SOV(面向服务虚拟化)是种IT策略它要模拟组成个SOA应用软件Software资产实际行为进而使开发和测试团队(Team)摆脱对应用服务及其基本实施层依赖

  SOV包括建模和模拟设计的中和应用服务以及虚拟服务这些虚拟服务将提供给扩展SOA团队(Team)进行测试并且开发自己服务和工作流不用依靠这些服务例子当各个团队(Team)摆脱了对应用服务和实施层依赖时候提高灵活性、更快上市时间和减少交付成本等扩展SOA好处就全部实现了要做个比喻SOV是针对SOA就像硬件虚拟化是针对数据中心

  在SOA生命周期中SOV例子

  SOV不仅影响完成应用质量它在加快SOA生命周期开发和治理过程中发挥着巨大作用目前在企业中还没有出现更多采用SOV做法

  SOV应用例子1:灵活开发SOA新功能

  企业正在脱离昨天单发展缓慢“宇宙大爆炸”式实施思路方法那个时候整个应用开发、测试和发布都是个连续进行过程通常是在个权威机构领导下

  今天应用是松散耦合式些服务集合是在运行时间作为灵活工作流情况下灵活消费由灵活开发人员和合作伙伴组成分布式团队(Team)进行管理个灵活SOA应用基础设施能够非常灵活地满足不断变化商业需求

  为了提供能够满足商业要求服务开发人员和QA团队(Team)必须要针对当前正在开发中虚拟服务进行测试如果企业要得到SOA灵活性好处所有团队(Team)必须在自己生命周期并行开发和发布自己服务不要等待其他人

  SOA思路方法

  不要等待其它团队(Team)提供访问已经完成服务进行测试这个团队(Team)要制作他们作为虚拟服务所依靠那些服务行为模型

  ·个团队(Team)需要个服务副本进行对照测试和开发这个团队(Team)要把个服务行为、它对刺激控制和反应以及它基础实施和数据作为个整体进行分析并且制作个虚拟服务模型

  ·个服务开发人员在开发时候还能够以虚拟服务方式发布个自己服务完整版本或者“未来”版本

  ·其它开发和QA(品质保证)团队(Team)将利用这个虚拟服务测试自己服务

  ·这将节省开发/QA成本和减少编写客户化测试客户端软件Software或“模拟服务”时间这些模拟服务不是附属服务真正行为实际模型

  ·它允许在整个机构中进行高度并行、灵活开发和测试协作以便用新功能保证更快和更有预见性上市时间

  例子:提供访问以重新获得灵活性

  家主要金融服务公司把它集中开发功能按照SOA式模型分为区别商务流程让专业服务开发团队(Team)实现更短服务交付周期虽然最初结果显示了更快交付过程但是随着支持SOA应用更多新服务开始应用出现了客户技术支持需求量大幅度增长问题

  为了解决这个问题这家公司恢复了对发布集中控制要求在11月的前提交所有“最终服务以便为计划在1月份完成两个月测试周期创建个完整SOA总体环境如果在测试周期中出现任何这个系统管理员会把这些候选服务退回到以前版本这就意味着个开发周期是如果切正确才能发布这种做法按照任何定义都是不灵活

  通过使用个SOV模型这家公司现在能够把这个周期分为若干部分开发团队(Team)现在能够根据目标环境创建个模型并且根据需要针对这个环境进行虚拟服务和产品测试他们还能够向其它附属团队(Team)提供个托管虚拟服务这样他们就能获得进行测试早期资产因此这家公司解散了它控制委员会采用每个季度发布周期(这个发布周期是连续不断和灵活)并且建立和测试对用户需求反应更明显活动

  SOV应用例子2:复制个完整SOA环境

  在个内部应用开发过程中在虚拟机上运行虚拟化硬件和虚拟测试平台是复制服务器环境种有效思路方法它为对照现有软件Software开发新软件Software组件提供个良好开发和测试基准线这种做法可节省硬件和设置成本然而SOA应用通常需要和那些不在任何集中团队(Team)控制的下第 3方系统进行互动此外它们需要连接到商业“基础”系统(大型计算机、ERP系统等)个系统都是数十亿美元设备里面有大量重要数据在开发期间向这些系统发送测试数据是被禁止测试负担会引起关键系统发生故障或者出现不可预料后果而且从系统开销和配置成本方面来说通过硬件虚拟化复制这样庞大系统都是不可能

  通过面向服务虚拟化(SOV)设置和维护些互相依赖组件个完整测试环境为个完整SOA应用例子复制SOA应用行为在维护和技术支持成本方面不允许即使采用虚拟机复制某些功能也是如此

  如图4所示这种SOV做法虚拟化了正在测试的中整个系统模拟版本行为为了每个团对访问相关测试和开发过程捕捉和模拟系统需要大多数行为能力将取代复制需求

  SOV思路方法

  ·通过把连接服务模拟为虚拟服务在服务环境中取代实时受限制应用无论这些服务是来自WSDL还是根据基础实施和整合层模拟

  ·在这些组件能够用于这些活动理想时候要重新捕捉和重新模拟新服务组件提供比复制SOA例子更新目标服务模型这需要几个星期或者几个月时间才能组装完成

  ·在SOA应用中演练所有系统以创建个真实数据丰富测试平台这些真实数据将用来驱动这个虚拟服务动态行为

  ·在脱离应用服务隔离环境中进行开发和测试(在测试和开发中采用SOV思路方法并且修改时间不取代在应用期间实时安装服务集成测试)

  通过按照这个模型操作企业能够节省数百万美元硬件、软件Software和维护成本在不影响当前运营情况下加快产品上市时间

  例子:解决电子商务背后完整数据图片

  家全球高科技厂商正在实施个新电子商务解决方案这个电子商务解决方案需要连接到个主要CRM平台、个ERP系统以及其它存货和物流系统虽然使用选择标准很容易测试这些基本Web层可升级性和兼容性但是没有它们背后数据相互交流情况来进行测试这些系统已经在使用并且在管理重要订单

  这家公司没有复制这些昂贵系统而是采用SOV流程捕捉数千个和它们交流这些大型机和服务层的间进行实时处理和相互作用(有正结果和负结果)然后这个丰富数据集可驱动些大型计算机相关虚拟服务让这个团队(Team)及时地并且以低于预算成本提供个非常可靠新系统

  下步:从SOV向SOA集成过渡

  旦SOV所有协作开发和测试工作全部完成这个虚拟服务便进入了实际集成过程后台SOV不取代真正集成测试、性能测试和实时SOA应用功能验证等实际需求如何这个企业不能恰当地让定义这个服务相互作用元数据满足商业目标需求它就很难产生积极结果

  虚拟化服务预期益处

  个有效SOV战略提供两方面价值:

  1.灵活性:最大限度地在整个分布式SOA开发和测试团队(Team)中协作让这些团队(Team)进行并行开发并且采取把新产品和新功能更快推向市场发布周期

  2.降低成本:通过软件Software许可证、配置、维护、数据管理、开发和测试效率等方式在每个SOA环境中节省数百万IT成本越多地采取协作开发方式目标SOA应用就越有相互依赖性虚拟服务能够提供潜在好处就越大

  确实对于拥有分布式团队(Team)和资源任何大型企业应用来说不采取SOV做法SOA就不能完全取得成功

Tags:  什么是虚拟化 服务器虚拟化 虚拟化技术 虚拟化

延伸阅读

最新评论

发表评论