第一文秘网    > 技术合同

自动化构建应用程序和应用程序环境

作者:jnscsh   时间:2020-08-18 12:11:24   浏览次数:

 自动化构建应用程序和应用程序环境

 简介

 自动化构建和部署 IBM WebSphere Application Server 环境及部署到该环境中的软件可以为任何规模的企业带来巨大的好处。通过自动化执行该过程中可能涉及到的众多步骤,企业将从一致的、可重复的流程中获益,该流程可在没有用户干预的情况下构建和初始化应用程序环境。这将使开发、测试和运营团队能够专注于他们职责内的服务,而不是对经常会拖慢服务交付的基础设施提供支持,从而加快了软件的交付周期。

 本文介绍了如何通过利用新的 IBM WebSphere CloudBurst Appliance 和IBM Rational Build Forge 以及 IBM Rational Automation Framework for WebSpherehis 的组合在这个层面上实现流程自动化。本文所述的简单集成利用了每种产品的关键优势。

 回页首

 集成概述

 设置典型的 WebSphere Application Server 环境涉及三个基本的高级步骤。如图 1 所示,这些步骤分别为:

 安装操作系统。安装 WebSphere Application Server 中间件。在中间件上安装和调优应用程序。

 图 1.创建 WebSphere Application Server 环境所需的步骤

 尽管每一种自动化解决方案都需要涉及这三个步骤,但是由谁执行这些步骤、何时执行步骤以及同一个步骤执行多少次,这些问题都因具体的解决方案而异。WebSphere CloudBurst 和 Rational Build Forge 的组合关注的是可以最小化和简化必须执行的步骤的集成。

 如图 1 所示,流程中的前三个子任务分别是:

 安装和配置操作系统安装 WebSphere Application Server 和补丁创建配置文件这三个任务全部由 WebSphere CloudBurst 附带的 IBM WebSphere Application Server Hypervisor Edition 执行。因此,通过使用 WebSphere CloudBurst,这些步骤可以从您的设置流程中全部移除。

 流程中的下一步是将定制软件(例如,监视代理或设备驱动器)安装到操作系统。这种软件几乎需要应用到所有应用程序环境,并且很少对这种软件进行修改。因此,您应当将这些内容直接添加到由 WebSphere CloudBurst 部署的虚拟映像中,这样,这些内容只需要执行一次安装,就可以应用于各种不同的应用程序环境。

 此时,流程开始从对于所有虚拟机都非常普通的步骤转向特定于给定应用程序部署的步骤,比如为某个应用程序创建 WebSphere Application Server 拓扑并随后部署应用程序。换句话说,在这个阶段,您将从用于创建普通映像的一次性构建内容中转移到使用 WebSphere CloudBurst 模式和脚本。这使得可以通过在部署流程中运行不同的脚本来对不同的配置使用相同的映像。

 WebSphere CloudBurst 使用基于元数据的模式描述 WebSphere Application Server 拓扑结构的构建,并使用脚本实现模式。这些实现脚本透明地执行步骤,比如联合 WebSphere Application Server 节点并启动节点。这个技巧使得相同的 WebSphere Application Server Hypervisor Edition 映像可以用于所有不同的拓扑结构。模式实现脚本由 IBM 创建并包含在设备中。因此,通过使用 WebSphere CloudBurst 自动执行流程,您就不必为这些常见的WebSphere Application Server 配置任务开发脚本。

 一旦确定了拓扑结构,接下来将执行应用程序部署和特定于应用程序的配置步骤。作为应用程序的所有者,您必须提供特定于应用程序的配置和部署,对此,脚本是最佳解决办法。如果这些步骤被直接构建到映像中,那么您最终会面对大量的映像需要进行管理(并且每个映像都非常大),并且映像会经常发生变化;事实上,每当做出一项应用程序修改时,都需要一个全新的映像。

 不需要从头开发脚本并研究交叉脚本编排(orchestration)代码,相反,利用 Rational Build Forge 和 Rational Automation Framework for WebSphere是一项更好的选择。构建、打包并将应用程序部署到 WebSphere Application Server 拓扑结构的步骤可以被轻松地开发为一个 Rational Build Forge 项目。当 WebSphere CloudBurst 分配一个模式并创建拓扑结构时,Rational Build Forge 项目将被调用,如图 2 所示。该项目将打包并部署应用程序。Rational Automation Framework for WebSphere 提供了一组丰富的 WebSphere Application Server 配置脚本来在此过程中使用。

 图 2.WebSphere CloudBurst 和 Rational Build Forge

 要最大程度地减少所需的映像和脚本的数量,WebSphere CloudBurst 为部署时间参数提供了一种机制。模式和脚本包包含在部署时指定的参数,并且在映像被实例化时将这些参数传递给映像。一项极普通的应用就是提供密码,这对于每种部署都应该是惟一的。WebSphere CloudBurst 还为脚本包提供了接受部署时间参数的能力。稍后,您将看到 Rational Build Forge 集成脚本是如何利用这项技巧的。

 回页首

 集成细节

 实现集成的过程非常简单。WebSphere CloudBurst 设计能够将由用户提供的脚本包指定为作为模式部署的一部分调用。集成的实现方式是创建一个定制的 WebSphere CloudBurst 模式,其中包含一个特殊的脚本包,该包与Rational Build Forge 进行交互,如图 3 的步骤 2 所示。

 由于集成脚本被参数化为使用 Rational Build Forge 主机名、项目名和服务器登录凭证作为参数,因此您获得了高度的灵活性和重用性。如果一个模式被定义为包含集成脚本,那么可以输入并锁定参数的值,或者保留为部署时参数:

 如果参数被锁定,那么模式将被直接链接到特定的 Rational Build Forge服务器和项目。如果将参数保留为部署时参数,那么可以重用相同的WebSphere Application Server 模式来集成多个不同的 Rational Build Forge服务器和项目。和其他脚本包一样,在所有 WebSphere Application Servers服务器启动并完成联合(federation)后,集成脚本包在默认情况下将在部署过程快要结束时执行。如前所述,集成脚本包首先检索它的输入参数。运行脚本包后,将从由 WebSphere CloudBurst 设置的虚拟机向指定的 Rational Build Forge 服务器发出一个 Java?Web 服务调用。这个 Web 服务调用将从指定的Rational Build Forge 项目检索步骤并在虚拟机上启动 Rational Build Forge代理。当检索到步骤后,它们将在由 WebSphere CloudBurst 创建的虚拟机上运行。这些步骤如图 3 所示。

 图 3.WebSphere Application Server 虚拟机和 Rational Build Forge 之间的集成

 Rational Build Forge 项目中的步骤将在 WebSphere CloudBurst 虚拟机上执行,而不是在 Rational Build Forge 服务器上执行。如果步骤需要任何形式的网络连接,比如从远程存储库检索应用程序或应用程序源代码,那么您需要确保您的虚拟机具有适当的网络访问。

 回页首

 为什么要集成这些产品

 确实,您可以使用 WebSphere CloudBurst 或 Rational Build Forge 中的任意一者来创建定制的 WebSphere Application Server 环境,其中包含操作系统、WebSphere 中间件和用户应用程序。然而,如果不将这两种产品集成在一起的话,那么您将无法获得灵活性和功能性。

 如果要撇开 Rational Build Forge 而单独使用 WebSphere CloudBurst,那么将需要把脚本包部署并放入到 WebSphere CloudBurst 模式中,从而实现所有应用程序部署协调。通过启用 Rational Build Forge 来处理应用程序构建和部署流程,实际的应用程序将与 WebSphere CloudBurst 模式形成更加松散的耦合。这使您不需要更新到 WebSphere CloudBurst 模式就可以部署应用程序的更新版本,同时使您能够对不同的应用程序使用相同的模式。此外,Rational Automation Framework for WebSphere 为常见的 WebSphere Application Server 应用程序部署和配置提供了一组脚本,可以在 Rational Build Forge项目中使用,这极大地减少了对定制脚本的需求。当然,您可以构建一个超级脚本来模拟 Rational Build Forge 和 Rational Automation Framework for WebSphere 的所有功能,但是何必多此一举呢?

 另一方面,由于 Rational Build Forge 是一种适应性执行环境,您自然可以将操作系统和 WebSphere Application Server 环境的设置作为某个项目的步骤,但是运行这种安装和配置的过程比 WebSphere CloudBurst 使用的基于映像的技术要慢。此外,WebSphere CloudBurst 使您能够控制虚拟化 WebSphere Application Server 环境的完整生命周期。通过使用这种设备,您可以创建、部署和管理此类环境,并且当不再需要这些环境时,可以很容易地移除它们,从而将资源返回给云。WebSphere CloudBurst 还提供了 WebSphere Application Server 智能,即构建在 10 年领域经验基础上的、可靠的最佳实践配置。同样,您也可以编写超级脚本来模拟所有 WebSphere CloudBurst 功能,但是,干嘛要那样做?

 WebSphere CloudBurst 与 Rational Build Forge 的集成利用了每一种产品,这样每一种产品都被用于它所擅长的方面,并且使您在与应用程序的集成以及与支持这些应用程序的环境的集成中受益于最大程度的敏捷性、灵活性和速度。

 回页首

 集成场景

 本文剩余部分将描述一个使用 WebSphere CloudBurst 和 Rational Build Forge 的逐步集成场景。要跟随这里介绍的步骤,您需要能够访问 WebSphere CloudBurst Appliance、Rational Build Forge 安装,以及本文附带的样例脚本包。

 创建一个 Rational Build Forge 项目

 要开始本次练习,您将首先在 Rational Build Forge 中创建一个名为MyWebProject 的项目。这个简单的项目将签出、构建一个样例 Web 服务应用程序并将其部署到由 WebSphere CloudBurst 提供的 WebSphere Application Server 环境。

 您的项目由 4 个步骤组成:

 从一个远程代码存储库中签出源代码。编译应用程序的源代码。将 Web 应用程序(包含编译后的源代码)打包到多个 Java EE WAR 模块和一个单独的 EAR模块。每个模块包含对应的部署描述符。将打包后的 Web 应用程序安装到由WebSphere CloudBurst 部署的 WebSphere Application Server cell。前三个步骤都比较简单,它们确保您的应用程序源代码被检索和构建,并且应用程序被打包以部署到 WebSphere Application Server 环境。步骤 d 需要进一步解释,因为它涉及到 WebSphere CloudBurst/Rational Build Forge 集成。

 在步骤 d 中,注意源代码/etc/virtualimage.properties 语句(图 4)。virtualimage.properties 文件由 WebSphere CloudBurst 在每个虚拟机上创建,包含有关虚拟机中跨越整个 cell 的 WebSphere Application Server 环境的信息。该文件中的信息包括 WebSphere Application Server 安装的位置、配置文件的根目录、cell 名、节点名、主机名等等。

 图 4.从项目中安装应用程序

 从图中可以看到,Rational Build Forge 项目中的步骤可以利用/etc/virtualimage.properties 文件中的信息。在本例中,这个步骤使用WAS_PRO 变量调用虚拟机中作为 WebSphere Application Server 配置文件的一部分附带的 wsadmin 工具。在这里,wsadmin 被用于安装在步骤 a、b 和 c 中构建和打包的应用程序。向 WebSphere CloudBurst 添加一个样例脚本包

 接下来,您需要创建一个定制模式,其中包含用于集成 Rational Build Forge 的脚本包。同样,脚本包中包含了一个用于驱动 WebSphere CloudBurst和 Rational Build Forge 之间的通信的脚本。

 以一名用户的身份登录到 WebSphere CloudBurst 控制台,该用户具有管理目录和创建模式的权限。在 Welcome 页面中,单击 Add script packages。单击 Script Packages 面板的左侧窗格的绿色叉号(图 5)。在提示您输入脚本包名称的对话框内,输入 Rational Build Forge Integration。将从本文下载的.zip 文件附加到新的脚本包。为脚本提供执行信息。

 图 5.定义脚本包

 定义脚本包的过程包括定义在执行期间将要被传递给脚本的 4 个环境变量。这 4 个变量为脚本提供了用于在 WebSphere CloudBurst 和 Rational Build Forge 之间建立通信所需的信息:

 BF_LAUNCH_PROJECT_NAME:Rational Build Forge 项目名BF_SERVER_HOST:Rational Build Forge 主机服务器名 BF_SERVER_USER:用于登录到 Rational Build Forge 服务器的用户名 BF_SERVER_PWD:用于登录到Rational Build Forge 服务器的密码如果需要的话,可以在脚本包定义中为这些变量提供一个默认值。这些值也可以在模式部署时提供,或者可以将这些值输入并锁定到模式中,这样就可以对该模式的所有部署使用相同的值。还需要提供下面的内容:

 工作目录,附加到脚本包的.zip 文件将在此目录中展开。因此包含在.zip文件中的脚本将从这个目录中运行。日志目录包含由于调用脚本包而产生的任何日志。Executable 表示到应当被调用的脚本的路径,在本例中即为实现WebSphere CloudBurst 和 Rational Build Forge 之间的通信的脚本。定义好脚本包后,可以单击右上方的工具栏中的 Lock 按钮,将脚本包选择性地标记为

 只读。脚本包现在已经被加载到 WebSphere CloudBurst 目录中。创建一个定制的 WebSphere CloudBurst 模式

 接下来,您将创建一个包含脚本包的模式:

 从 Welcome 页面中,在控制台中,单击 Create patterns。在本例中,您将使用 WebSphere single server 模式的副本作为定制模式的基础。要克隆模式,单击此模式并选择右上方工具栏中的 Clone 图标。在对话框中提供有关新模式的必要信息(图 6)。

 图 6.创建模式

 要进入编辑模式,单击右上方工具栏中的 Edit 按钮。在 Pattern Editor模板上的下拉菜单中,选择 Script Packages。将 Rational Build Forge Integration 脚本包拖拽到画布中的 Standalone server 组件上。添加了脚本包后,单击页面右上角的 Done editing 链接来返回到 Patterns 页面。此时,可以选择与脚本包相同的方式锁定模式。

 图 7.编辑模式

 部署 WebSphere CloudBurst 模式

 包含 Rational Build Forge 集成脚本包的 WebSphere CloudBurst 模式现在已经准备好进行部署:

 从模式定义面板中,单击 Deploy 按钮并为虚拟系统提供一个名称。单击Configure virtual parts 并单击 Standalone server。

 图 8.部署模式

 在 Standalone server configuration 面板中,提供了诸如 cell 名、节点名和密码等 WebSphere 配置(图 8)。还要注意,为被定义为 Rational Build Forge Integration 脚本包的一部分的 4 个变量提供了值。虽然这些值本可以直接放入到模式中,但是在部署时提供这些值可以实现灵活性,即对多个不同Rational Build Forge 项目甚至不同的 Rational Build Forge 服务器使用相同的模式。在提供了所有必要的信息后,单击 OK 开始部署过程。当部署过程完成后,Virtual Systems 页面将被更新以包含虚拟系统的当前状态。

 图 9.脚本包执行

 当脚本包完成运行后,Rational Build Forge 控制台应当显示一条消息,表明在模式部署期间被引用的项目已成功执行(图 10)。

 图 10.Rational Build Forge 作业

 上面所述的 MyWebProject 项目中的每一个步骤都在为您的 WebSphere CloudBurst 模式中的 Standalone server 部分创建的虚拟机上运行。检验结果

 要确认项目获得了预期的结果--在本例中,意味着样例 Web 服务应用程序完成了安装--检查 WebSphere Application Server 管理控制台,确保该应用程序出现在其中(图 11)。

 图 11.WebSphere Application Server 管理控制台

 在上图中,注意样例 Web 服务应用程序 JaxWSServicesSamples 被安装到由WebSphere CloudBurst 创建的 WebSphere Application Server 实例。回页首

 更多集成

 除了前面描述的部署时集成外,还包括以下这些有趣的扩展:

 重新部署应用程序

 WebSphere CloudBurst Appliance V1.1 增加了指定由用户发起的脚本的能力。被指定为由用户发起的脚本将不会在部署结束时自动运行。相反,当可以根据需要多次重复某个用户请求和调用时,这些脚本才开始运行。通过向目录添加两次 Rational Build Forge 集成脚本--一次用于初始部署,另一次用于由用户发起的脚本包--可以创建同时包含两个脚本的模式。这使您不仅能够自动化初始应用程序安装,而且可以通过重新调用用户启动脚本包来向由WebSphere CloudBurst 设置的环境交付应用程序更新。

 当然,要确保由用户启动的重新部署能够正确工作,您需要确保您的Rational Build Forge 项目不仅包括用于安装应用程序的功能,还包括可以卸载应用程序(如果已存在的话)的功能。从 Rational Build Forge 调用WebSphere CloudBurst Rational Build Forge 项目中的步骤可以完成许多您希望执行的操作。因此,要进一步自动化本文描述的流程,可以创建一个Rational Build Forge 项目,其中包含的步骤利用 WebSphere CloudBurst 命令行界面或 REST API 来发起包含集成脚本包的 WebSphere CloudBurst 模式的部署。一旦发起部署,WebSphere CloudBurst 将指定模式,并且集成脚本将开

 始运行,调用一个独立的 Rational Build Forge 项目。这将完全自动化部署WebSphere CloudBurst 模式和运行 Rational Build Forge 项目的过程,运行Rational Build Forge 项目将把应用程序交付到指定的环境中。回页首

 结束语

 IBM WebSphere CloudBurst 和 IBM Rational Build Forge 都向用户交付了巨大的价值,但是当两者集成到一起时,则可以实现更高层次的价值。这两种产品的集成提供了一个单一的自动化流程,涵盖了从创建完整 IBM WebSphere Application Server 环境到构建并将应用程序部署到该环境的所有操作。以一种可重复的、一致的和及时的方式创建这种定制化应用程序环境的能力为各种技术团队带来了巨大的优势。

 回页首

 下载

 名字大小下载方法

 wca-rbf-scriptpackage.zip850KBHTTP

 关于下载方法的信息

 参考资料

 学习

 IBM WebSphere CloudBurst Appliance 产品信息

 IBM Rational Build Forge 产品信息

 使用 WebSphere CloudBurst 实现定制(系列)

 第 1 部分:创建可高度定制的私有云第 2 部分:使用 WebSphere CloudBurst 定制 WebSphere 中间件环境第 3 部分:使用脚本包定制超级模式

 面向企业的云计算(系列)

 第 1 部分:了解云的一些基本概念第 2 部分:Amazon EC2 公共云上的WebSphere sMash 和 DB2 Express-C 第 3 部分:使用 WebSphere CloudBurst 创建私有云

 云计算期刊

 了解云计算的价值

 IBM developerWorks 中国 WebSphere 专区

 获得产品和技术

 最受欢迎的 WebSphere 试用软件下载:下载关键 WebSphere 产品的免费试用版。

 IBM developerWorks 软件下载资源中心:IBM deveperWorks 最新的软件下载。

 IBM developerWorks 工具包:下载关键 WebSphere 最新的产品工具包。

 讨论

 空间:WebSphere Cloud Computing for Developers

 空间:云计算中心

 论坛:WebSphere CloudBurst Appliance Forum

 博客:A view from the clouds:Cloud computing for the WebSphere developer

 作者简介

 David Brauneis 是 IBM Rational Software Delivery Automation Segment(包括 Rational Build Forge)的高级架构师和开发主管,并且是Rational Automation Framework for WebSphere 的首席架构师。他于 2007 年2 月加入 Rational。在加入 Rational Build Forge 团队之前,David 在WebSphere Application Server 团队工作了 8 年的时间,担任过各种架构和开发角色。除了日常的工作职责外,David 还是负责设计和实现由 WebSphere 使用的自动构建系统的团队的一员。他拥有 8 年的 WebSphere Application Server 开发经验,超过 7 年的 J2EE 应用程序开发经验,以及超过 11 年的 Java开发经验。David 在位于北卡罗来纳州的 IBM Research Triangle Park 工作了10 年时间,从事与分布式计算、构建、自动化、用户界面和系统管理相关的项目。他拥有 Rensselaer Polytechnic Institute 的生物工程学士学位以及技术通信专业的硕士学位。

 Ruth Willenborg 是 IBM 的 WebSphere Technology Institute 的高级技术人员。Ruth 目前从事 WebSphere Cloud 计算和虚拟设备项目,并且是新兴的IBM WebSphere CloudBurst Appliance 的技术推广者。在从事虚拟化和设备项

 目之前,Ruth 曾是 WebSphere Performance 团队的经理,负责 WebSphere Application Server 性能分析、性能基准检验和性能工具开发。Ruth 在 IBM 具有 20 多年的软件开发经验。她是 Performance Analysis for Java Web Sites(Addison-Wesley,2002 年)一书的合著者。

 Dustin Amrhein 刚加入到 IBM 时是一名 WebSphere Application Server开发团队的成员。在担任此职位期间,Dustin 从事 Web 服务基础设施以及 Web服务编程模型的开发。此外,Dustin 负责 Java RESTful 服务框架开发的技术工作。Dustin 目前担任的角色是 IBM 的 WebSphere 产品组合中的新兴技术的推广者。他目前主要关注交付云计算功能的 WebSphere 技术,包括 WebSphere CloudBurst Appliance。Leigh Williamson 是一名 IBM 杰出工程师,从 1988年以来一直工作在奥斯汀的德克萨斯实验室。在这段期间,他参与了许多 IBM的主要软件项目,包括 OS/2、DB2、AIX、OpenDoc、Java、Component Broker,以及 WebSphere Application Server。他目前是 Rational 开发自动化产品线的高级架构师,包括 Build Forge,他也是核心 Rational 开发委员会的一名成员,并且对 Rational 品牌的所有产品在战略方向上具有影响力。在工作于 Rational 产品之前,他作为 Application Server 的系统管理组件的架构师,在 WebSphere 开发实验室工作了七年。他拥有奥斯汀的德克萨斯大学的计算机工程硕士学位。

 特别声明:

 1 :资料来源于互联网,版权归属原作者 2 :资料内容属于网络意见,与本账号立场无关 3 :如有侵权,请告知,立即删除。

推荐访问:应用程序 构建 自动化