Rational ALM 工具使持续部署变得切实可行(2)

发表于:2013-03-05来源:IBM作者:Steve Arnold点击数: 标签:rational
IBM Rational Asset Manager 一个托管的存储库,其中包含可部署构件和标准基础架构拓扑。 IBM Rational Quality Manager 一个基于 Web 的测试管理环境,适用于协作测试

  IBM® Rational® Asset Manager

  一个托管的存储库,其中包含可部署构件和标准基础架构拓扑。

  IBM® Rational® Quality Manager

  一个基于 Web 的测试管理环境,适用于协作测试规划、流程控制、跟踪和指标报告。

  设计和实现自动的部署

  第一个挑战是建立可以在整个开发和测试中使用的自动化的部署脚本,还可以将它用于生产中。这带来了以下两个挑战:

  第一个挑战是就如何部署应用程序和如何应配置中间件进行沟通。

  第二个挑战是如何使脚本或脚本集支持所有环境,同时仍然对所有脚本都将成功部署应用程序充满有信心。

  Rational Software Architect 提供了以图形化的方式来描述部署拓扑的功能。它还有助于验证所描述的拓扑结构是一致的、合理的、没有漏掉所需要的任何要素,因此,它有助于减少以后出现代价高昂的错误的机会。建立部署拓扑之后,开发人员就可以在 Web 上对这些拓扑进行协作,与利益相关者分享它们,并允许人们对其发表意见和参加正式的评审。

  Rational Software Architect 提供了定义逻辑和物理部署拓扑的功能,有助于解决第二个挑战。这使得逻辑拓扑能够描述应如何将应用程序部署到不同逻辑环境的多个重要方面,然后,在将它映射到真正的基础架构时,它会强制实施逻辑模型中的所有约束。

  图 2. 逻辑 Java Enterprise Edition (JEE) 部署拓扑示例

由在逻辑服务器上托管的组件所组成的拓扑

  此方法可降低生产部署风险,因为会使用该模型来生成适用于所有环境的脚本,并且会在整个开发过程中非常彻底地测试该脚本。

  即使适用于不同环境的脚本可能会有所不同,Rational Software Architect 可帮助确保该脚本将正确部署应用程序,因为脚本是从物理拓扑生成的,它确保物理拓扑可满足逻辑拓扑的所有要求。因此,可以很容易地生成一个适用于新环境的脚本,并且我们对它第一次就能正常工作有很大的信心。

  图 3. 基础架构的逻辑拓扑

逻辑拓扑到物理计算机的映射

  在您定义了如何将应用程序部署到中间件之后,就可以分析模型以实现可能的自动化,并参照已知的脚本对拓扑中的元素进行匹配,从而实现相应部分的部署。这支持部署和配置大部分 IBM 中间件和最常见的替代品。这种方法大大减少了设置一个新的自动化部署的工作,并且它可以降低部署到不同环境的风险。

  拓扑成为关键的构建。部署到不同的环境是一件简单的事,只需筹划应该如何将各种应用程序组件(EAR、WAR 和 DLL 文件、队列定义等)部署到新的环境,然后生成脚本来自动化工作。因此,它需要的手动工作少得多,并且该工具通过验证是否已正确映射应用程序而降低了风险。

  在持续部署的情况下,您将使用一个逻辑拓扑来描述应用程序的关键元素,并且每个明显不同的环境都对应一个拓扑,它描述了应该如何将应用程序部署到该环境中。这些拓扑都将用于生成持续部署过程中所用的部署脚本。

  交付变更

  在您生成部署脚本后,需要将这些脚本纳入到开发环境中,使所有的变更都能持续部署。这意味着测试团队可以节省大量时间,因为他们并不需要建立测试环境(通常估计完成该项工作的时间在测试工作中占 20-30%)。即便如此,仍然会使用和调试部署脚本,并且对生产而言,应用程序始终有可能是可以部署的。

  完成此设置的最简单的方法是,修改现有的持续构建脚本,将可部署的构件存储在资产库中,然后请求利用该库中的资产进行部署。部署请求将使用先前从 Rational Software Architect 生成的脚本,并将应用程序部署到某个测试目标(或多个目标)。

  图 4. 持续集成引擎请求一个持续部署

将资产发布到 RAM 并开始部署它

  然后,您要配置 IBM® Rational® Quality Manager 监视持续部署版本。在一个成功的部署中,会运行您的回归测试软件,并解锁任何以前失败过并且在最新版本中提供了修复的测试。该方法意味着,每次开发人员进行一此更改,持续部署也会验证应用程序是可部署的,并能通过所有回归测试。因此,在这种环境中,一个简单的单行代码变就可以使测试版本在几分钟内准备好部署到生产环境中。

  图 5. Rational Quality Manager 监视部署版本

流程图:监视部署,运行测试

  在考虑这种方法时,人们常常想到的问题或疑虑是他们可能需要的硬件数量。不过,我们有一个简单且具成本效益的解决方案:云(请参阅 参考资料,以获得 IBM SmartCloud Enterprise 选项的链接)。部署脚本启动一个映像,将应用程序部署到该映像,然后运行功能测试,并关闭映像。通过这种方法,组织可以应付有许多变更的开发周期(例如,迭代结束),并且在较少变更和需要较少硬件时能够最大限度地降低成本。

  团队还需要一个用来定期探索性测试和构建新自动化测试脚本的环境。可以通过建立滚动环境来实现此环境,每日构建 (daily build) 被部署在该环境中,并且会在该环境中保持数天。您也可以让测试团队根据需要请求构建,然后将这些构建部署到通过 Rational Quality Manager 的测试实验室管理特性预订的测试硬件,或部署到云,这与持续部署的工作方式相同。这种方法可以降低硬件成本,并节省开发时间,因为测试设置减少了,反馈速度更快,并且生产部署的风险更低。

  图 6. Rational Automation Framework 部署到多种环境

部署到物理、虚拟或云硬件

原文转自:http://www.ibm.com/developerworks/cn/rational/continuous-deployment-rational-alm/index.html