为什么服务虚拟化很重要

从大机到移动应用,大部分现代IT系统高度依赖其它系统。例如,Salesforce.com网站是一个大型中枢接口帮助销售更新和管理销售活动,但Salesforce.com不是孤立的。与它的典型集成包括:

  • 社交媒体
  • 邮件系统
  • 营销自动化系统
  • 电话呼叫中心数据
  • ERP企业资源计划系统

因为现代的IT系统连接到大量五花八门的子系统,开发、测试和验证软件程序变得极为复杂和耗时。这就是服务虚拟化体验价值的地方,它模拟复杂环境的能力使它成为这个领域的变革者。

服务虚拟化是模拟组件行为的方法,尤其是复杂的基于组件的应用程序的组件。它给被测试应用程序提供模拟版本的依赖组件,使得软件开发、QA和性能测试团队能够操练被测应用程序。被测应用程序往往不容易访问依赖的系统组件。事实上,根据Parasoft的调查达成开发和测试目标过程中,30%的依赖组件没有或难以访问。

服务虚拟化帮助解决

  • Web程序必须将会安全、可靠的业务事务
  • 开发团队采用敏捷(迭代)开发方法
  • 相互关联的前后端系统提供核心客户价值
  • 商业合作伙伴主要通过系统对系统的集成
  • 采用面向服务的架构SOA
  • 客户主要通过网站进行交互
  • 通过API集成演化组件应用
2

为每个角色带来的收益

高层目标:
  • 降低成本
  • 加速上市时间
  • 减少商业风险
  • 创新创造竞争优势
  • 为提高效率发展业务流程
开发目标:
  • 更快达到预期的商业效果
  • 使用敏捷(迭代)的开发方法
  • 消除等待依赖的开发团队的时间
  • 消除平行开发的障碍,起上最后期限
  • 减少应用程序失败的风险(安全性、可靠性、性能)
QA目标:
  • 消除环境访问限制
  • 访问真实的测试数据
  • 消除阶段环境的等待时间
  • 加速和简化测试环境的配置
  • 访问完整的、真实的测试环境
  • 减少应用程序失败的风险(安全、可靠、性能)
性能测试工程师目标:
  • 访问复杂、真实的测试环境
  • 快速配置依赖系统的性能行为
  • 测试需要验证被测应用的服务质量QoS
  • 执行大容量的压力测试不需要额外付费
开发运营、测试环境管理者目标:
  • 能够实现持续发布
  • 配置复杂、真实的测试环境
  • 能及时提供要求的测试环境
  • 提供基础设施来支持持续测试
  • 协调对有限测试环境资源的访问
  • 在不增加额外成本的情况下提高测试实验能力

Parasoft与服务虚拟化

1

2002年,Parasoft推出“Stub Server”模拟服务,做为第一个在市场上推出商业测试产品的厂商。逐渐发展成Parasoft Virtualize核心技术。经过8年的研发,在2010年Parasoft融合的Parasoft SOAtest的“Stub Server”与全新的测试环境管理组件发布了Parasoft Virtualize。

以下是Parasoft的技术里程碑:

  • 拥有SV专利。US Patent 7,028,223.
  • 递交时间: 2002年8月7日
  • 分配时间: 2006年4月
  • 2001年发布书籍:“Bulletproofing Web Applications” 强调了服务虚拟化的价值
  • 2007年发布书籍:“Automated Defect Prevention”讨论了如何加速SDLC

ROI投资回报价值

ROI投资回报代表了服务虚拟化的真实价值定位。投资回报是可以测量的,且每个类别都包含量化和质量定性。这些种类有:

  • 降低风险
  • 增加收益
  • 减少运营成本
  • 减少成本支出
减少运营成本

通过3个主要的成本节约来减少运营成本:

  • 消除等待时间
  • 减少访问费用
  • 减少配置环境需要的时间
减少成本支出

服务虚拟化帮助客户显著减少成本支出和运营支出。没有服务虚拟化,组织的复杂性测试环境(测试实验室)只能采用阶段的物理环境。在这种情况下,组织为了额外的容量就需要维护和配置机器并进行授权以便增强阶段式环境。采用服务虚拟化技术,组织就可以不必购买额外的机器和许可证,转而利用模拟的测试环境。因为组织转为采用服务虚拟化建立模拟测试环境,对测试环境的整体需求显著减少如下:

  • 减少硬件需要 – 高达100%
  • 减少软件制授权需要 – 高达95%
  • 减少基础实验设施需要 –高达100%
减少风险

在绝大多数的开发项目中,由于计划变更或在项目最后增加功能,导致软件测试明显缺斤少两或只采用少量验证任务。由于测试是一个下游工序,当上游过程的时间捉襟见肘时,测试活动的周期时间大大减少。因为服务虚拟化提供一个模拟测试环境,质量和性能测试人员可以模拟缺失或演化的系统组件以增量的方式进行更早更完全的测试。  服务虚拟化有助于开发和QA跟上敏捷方法的速度和节奏,当你将这个“早期访问”的概念应用到一个敏捷开发环境时,服务虚拟化的价值将得到更高的体现。服务虚拟化减少风险的成果包括:

  • 减少传递给客户的缺陷
  • 提升用于测试的时间 – 高达80%
  • 降低补救缺陷的成本 – 减少10x-50x
  • 增加对业务驱动的测试场景的测试范围
增加收益

创新是一个组织成功的关键。毫无疑问,服务虚拟化通过消除等待时间和提供便于测试的基础设施来加速创新速度。因此,可交付更高质量的成果。

服务虚拟化的增量收益可能难以计算,因为其它条件可能影响软件产品的发布与部署。尽管如此,服务虚拟化为更快推出更好的产品做出了以下贡献,这是毋庸置疑的:

  • 加快发布周期
  • 提早上市时间
  • 提前开始测试周期
  • 拥有更多早期收益的机会

价值服务业务

采用服务虚拟化主要是为了:

  • 增进创新
  • 减少风险
  • 加速上市时间
增进创新

软件开发是一个复杂的过程。在当今的经济环境下,没有一个相关的软件组件就没有创新。此外,软件失败是主要是商业风险。当年Microsoft Windows挂起和崩溃是众所周知的事情。Microsoft现在和Apple和Google竞争,你是否想过如果Microsoft再被那样的问题困扰会是什么情况?

创新技术的能力不仅要能想象,还要能够准确的交付完美的用户体验,这是软件开发的根本挑战。支持服务虚拟化是一个重要的技术创新。它提供一个模拟环境来更准确地开发和测试软件,释放开发资源,编写更多更准确的代码。

加速上市时间

每个过程都有其固有的等待时间。现代办公软件产品的主要目标之一是消除或减少等待时间。软件开发生命周期(SDLC)充满了等待时间,这不仅源自开发代码的特有复杂性,也是因为软件开发是一个“高度人为”的过程。

涉及减少等待时间和停机时间时,服务虚拟化是一个改变游戏规则的技术。有一个完整的、易于访问的开发和测试环境,开发可以更好的理解代码变更造成的影响,从而帮助他们更有效地开发代码。此外,测试人员可以在SDLC早期开始他们的测试周期,促进测试更准确和更完整。

减少风险

软件开发是一种高风险事业。因为软件应用程序作为所有业务流程的主要接口在持续的演变,随着应用程序相关失败成本和金钱损失成倍增加。此外,应用程序变得越来越互联,托管在分布式的云环境中都导致潜在的故障点越来越多。

软件开发组织必须以更完整、更准确和更高效的测试流程来应对这些风险。服务虚拟化再次在这个过程中起着重要作用,通过模拟测试环境提供开发和早期测试的环境访问,降低了风险。此外,服务虚拟化为软件开发团队提供了前所未有的测试能力,能更彻底地执行特定场景。例如,这种特定场景可以加强被测试应用程序的安全、性能、可靠性和容错性。

API尤其充斥着风险,发布API必然会涉及放弃对如何、何时、何地使用它的控制。事实上你提供了许多进入你的应用程序的入口通道,有很高的可能性API消费者将以你未预期的方式来调用你的API。从性能的角度而言可能需要处理飘忽不定,经常激增的需求。任何API如果不是足够坚固,这将为生产组织和API消费者打开一个问题潘多拉盒子。

行业

关键挑战
  • 采用面向服务的架构SOA
  • 客户主要通过网站进行交互
  • 通过API集成演化组件应用
  • 开发团队采用敏捷(迭代)开发方法
  • Web程序必须将会安全、可靠的业务事务
  • 相互关联的前后端系统提供核心客户价值
  • 商业合作伙伴主要通过系统对系统的集成
[N`4[BK5OF(Y@16T{KML`PP