Barton Akeley, 软件开发人员, IBM
Barton Akeley 的照片
Barton Akeley 是位于德克萨斯州奥斯丁的 IBM Lab 的一名 Rational 企业现代化与编译器软件开发人员。他的工作范畴包括 Rational Automation Framework、高级中间件配置和 Rational Build Forge。
John Gough, 信息开发人员, IBM
John Gough 的照片
John Gough 是德克萨斯州奥斯丁 IBM lab 的一名信息开发人员。他的工作范畴包括 Rational Automation Framework、高级中间件配置和 Rational Build Forge。

 

简介: 本文是系列文章的第 4 部分,将介绍可迁移到 IBM® PureApplication System® 的应用程序,以及如何利用高级中间件配置工具和 IBM Workload Deployer 来迁移应用程序,并将应用程序的新实例部署到云。

 

简介

本文是系列文章的第 4 部分,将介绍可迁移到 IBM PureApplication System 的应用程序,以及如何利用高级中间件配置 (AMC) 工具和 IBM Workload Deployer 来迁移应用程序,并将应用程序的新实例部署到云。

注意:IBM Workload Deployer 用户也可利用 IBM PureApplication System 中的工作负载来管理控制台。


虚拟应用程序模式与虚拟系统模式的对比

有关选择虚拟应用程序模式与虚拟系统模式时的考虑事项的更多信息,请参见 第 1 部分:迁移概述第 2 部分:您的应用程序是否已经为虚拟化做好了准备


应在何时使用 AMC 工具

PureApplication System 包含高级中间件配置工具。AMC 使您能够更加轻松地创建可重复、可部署的虚拟系统模式。这包括应用程序和配置,具体方法是内省现有应用程序单元,提取所有配置细节,将其封装到一个脚本包之中,并在部署模式的时候重建配置。对于不符合任何 PureApplication System 虚拟应用程序模式的、受限制且不具备完整、可重用、可靠的部署和配置脚本集合的 WebSphere® Application Server 应用程序来说,这非常有用。

应该将 AMC 用于具有以下特征的应用程序:

  • 无法 作为虚拟应用程序运行。
  • *** 现有的 “交钥匙” 自动化。

结果将得到一组部分自动化应用程序,或者一组具有安装与配置应用程序的人工说明(文档和 wiki 等)的应用程序。

对于当前已经具备自动化的应用程序,可以创建一个脚本包来执行现有自动化。如果目前没有使用自动化,或者将要使用 AMC 提供的自动化功能,则可以使用 AMC。

迁移流程概述

本文的目的在于帮助您将现有 WebSphere Application Server 应用程序迁移到 AMC,使其副本能够自动部署到云中。本文提供了这一流程中各个步骤的说明,包括:

只需在虚拟系统模式下手动配置应用程序一次,AMC 便可捕获配置和应用程序。捕获虚拟系统模式之后,可以部署一个 AMC 服务器实例,管理多个应用程序。


将 AMC 部署到云

在 IBM Workload Deployer Web 界面中,选择 Advanced Middleware Configuration 模式,单击 Deploy in the cloud 按钮(一片云上的绿色箭头图案)。该模式如图 1 所示。在 Access granted to 字段中,为每个用户添加用户和密码。


图 1. 通过 IBM Workload Deployer 将 AMC 部署到云
通过 IBM Workload Deployer 将 AMC 部署到云
 

成功部署模式之后,找到新部署的系统的主机名。在 IBM Workload Deployer 中,按以下步骤执行操作:

  1. 打开 Instances > Virtual Systems
  2. 选择实例。
  3. 展开 Virtual Machine 部分。
  4. 展开虚拟机。
  5. 在浏览器中输入主机名,导航到自动化引擎 Web 用户界面,如图 2 所示。

    图 2. 已部署的主机名示例
    已部署的主机名示例

     
  6. 登录 Framework 服务器,如图 3 所示。自动化引擎的默认用户和密码是 root/root。记录 Framework 服务器的主机名和用户凭据,在您的虚拟系统模式上配置 AMC 集成脚本包时需要使用这些信息。

    图 3. 登录 AMC Framework 服务器
    登录 AMC Framework 服务器

     

为虚拟系统模式创建 AMC 用户

接下来,在 AMC 中为每个虚拟系统模式创建一个惟一的用户。

注意:用户不应与其他任何现有用户重名。如果用户使用与脚本包相同的凭据登录 AMC 服务器,则会导致与脚本包的登录发生冲突。

在 AMC 中创建新用户:

  1. 登录 Web 用户界面。
  2. 选择 Administration > Users
  3. 为新用户输入数据,包括电子邮件地址和密码。
  4. 保存用户。
  5. 从用户列表中选择新用户,加载具体信息窗格。
  6. 单击 Change Groups 选项卡。
  7. 在左侧可用组列表中,选择 Build Engineer,单击 Add 按钮,如图 4 所示。
  8. 单击 Save

    图 4. 为新用户选择组
    为新用户选择组

     

为应用程序创建、供应和部署虚拟系统模式

虚拟系统模式用于在应用程序捕获到 AMC 之前试运行应用程序。模式中包含来自目录的多个部件,这些部件可以构成一个 WebSphere 单元,也有可能构成数据库或其他中间件。

为应用程序创建虚拟系统模式

在 IBM Deployment Manager 中为应用程序创建一个新模式。例如,如果该模式用于迁移 DayTrader 应用程序,则可以将该模式命名为 DayTrader WAS cluster。在 IBM Workload Manager 中,执行以下操作:

  1. 打开 Patterns > Virtual Systems
  2. 单击绿色的加号,添加一个新的虚拟系统模式。
  3. 单击 Edit 图标,编辑模式。
  4. 从脚本列表中选择部件,将其拖放到模式。

添加脚本包

每个模式都必须添加 Rational Automation Framework (RAF) 导入脚本包和 RAF 执行脚本包。您必须将导入脚本包定义为动态脚本包,以便随时运行它。

对于集群模式,应将脚本包添加到 Deployment Manager,如图 5 所示。该模式包含一个部署管理器、两个托管节点和一个 webserver 节点。


图 5. 将脚本包添加到集群
将脚本包添加到集群
 

对于独立 WebSphere 服务器,应该将脚本包添加到服务器,如图 6 所示。


图 6. 将脚本包添加到独立 WebSphere 服务器
将脚本包添加到独立 WebSphere 服务器
 

供应虚拟系统模式

要供应虚拟系统模式,可以编辑新模式中的执行脚本包和集成脚本包项。参数表单如图 7 所示,请指定参数。

集成脚本包被定义为在模式启动时运行(默认行为)。它将回调 Framework 服务器。服务器信息同时 存储在模式的两个 AMC 脚本包之中,并且是锁定的,无需用户输入每个各模式部署。您必须复制所有这些信息,因为目前还没有在脚本包之间共享信息的其他方法。

注意:请指定并锁定所有值。如果未提供任何值,那么会在部署已部署虚拟系统模式的实例时看到提示。


图 7. 执行脚本包的参数
执行脚本包的参数
 

按照以下方式指定字段:

  • RAFW_SERVER_HOST:Framework 服务器的主机名。
  • RAFW_SERVER_USER:Framework 服务器用户 ID。
  • RAFW_SERVER_PASSWORD:Framework 服务器密码。
  • RAFW_SERVER_DOMAIN:AMC 服务器上配置的 LDAP 域的逻辑名称。如果您的 Framework 服务器中未使用 LDAP,请将此字段留空。
  • RAFW_SERVER_USE_SSL:如果 Framework 使用了 SSL,请输入 true。如果没有使用 SSL,请留空。
  • RAFW_ENVIRONMENT:包含单元定义的 AMC 环境的名称。
  • RAFW_HOME_PATH:自动化框架本地存储文件的模式部件的位置。默认值为 /tmp/RAFW。这个位置必须与 Framework 服务器中的设置对应,而且大小写必须匹配。设置此值之后请勿更改。
  • AUTOMATION_PLAN_POLL_INTERVAL_SECONDS:检查正在运行的自动化计划完成情况时所用的轮询时间间隔。

RAFW_ENVIRONMENT 字段与单元名称相连接,用于确定该模式是否存在现有配置数据和自动化计划。部署和配置虚拟系统模式并将它捕获到 AMC 服务器之后,在各后续部署中将沿用相同的 RAFW_ENVIRONMENT 参数和单元名称。

将虚拟系统模式部署为云中的一个实例

定义和配置了应用程序的虚拟系统模式之后,便可将其部署为云中的一个实例。

  1. 打开 Patterns > Virtual System Patterns
  2. 选择模式。
  3. 单击 Deploy in cloud 按钮(一片云上的绿色箭头图案),如图 8 所示。

    图 8. 部署虚拟系统模式
    部署虚拟系统模式

    图 9 展示了部署到云中的一个集群实例的属性。



    图 9. 已部署的一个集群实例
    已部署的一个集群实例

     

注意:有关如何运行集成脚本包以及疑难解答的更多信息,请参见 将应用程序部署到虚拟系统模式的更多信息 一节。


在实例中安装和配置应用程序

部署虚拟系统模式之后,实例中将运行一个 WebSphere Application Server 单元。可以使用 WebSphere Admin Console 或者利用任何现有 wsadmin 脚本在单元中手动安装和配置应用程序。通常情况下,应该有一个文本文件或者包含手动配置说明的电子邮件。


在 AMC 中通过虚拟系统模式配置应用程序

这一节将介绍如何捕获实例并将其导入 AMC。

自定义导入自动化计划

在流程的这一步中,可以按照原样使用项目。但也可以缩小默认项目的范围,排除用不到的步骤,以便节约时间。若要访问自动化计划,请执行以下步骤:

  1. 打开 AMC。
  2. 单击左侧菜单中的 Projects。图 10 展示了网络部署单元的默认自动化计划。

    图 10. 导入自动化计划的示例
    导入自动化计划的示例

     

根据您处理的应用程序,确定这个列表中是否还有其他可以禁用的步骤。计划的范围越小,其运行速度就越快。

运行导入脚本包

运行导入脚本包,将配置设置和应用程序捕获到 AMC 之中。

要运行导入脚本包,请按照以下步骤操作:

  1. 展开 Deployment Manager 部件(对于独立服务器,请展开 Server 部件)。
  2. 滚动找到 Script Packages 部分。
  3. 单击 Execute now 链接。此时会出现一个登录对话框,如图 11 所示。在这一步中无需登录,单击 OK 继续即可。

    图 11. 导入脚本显示的登录对话框
    导入脚本显示的登录对话框

     
  4. 此时作业将开始。如需查看进度,可单击 AMC 中的 Jobs 菜单,找到自动化计划的作业。默认情况下,其名称与您的自动化作业相同,附带一个版本号后缀。图 12 给出了一个示例。

    图 12. 已完成的自动化计划的示例
    已完成的自动化计划的示例

     

导入自动化计划包含从单元、集群、节点导入 WebSphere 配置以及集群服务器配置的步骤。另外还有一个步骤用于导入各集群中的应用程序。

注意:如果任何一个服务器的配置与集群中的其他服务器不同,那么此步骤将失败。如果失败,则必须为各服务器导入配置。导入自动化计划包含此步骤,但默认情况下是禁用的。如需纠正问题,请启用禁用的服务器配置步骤,随后禁用服务器集群配置步骤。

注意:有关如何运行导入脚本包的更多信息,请参阅 在虚拟系统模式中将应用程序捕获到高级中间件配置的更多信息 一节。


将应用程序的新实例部署到云

这一节将介绍如何通过 AMC 部署应用程序的新实例。

自定义执行自动化计划

可以按照原样使用脚本。然而,如果您在导入自动化计划中作出了更改,请务必在执行自动化计划中作出相同的更改。这有助于优化部署过程中的脚本包性能。图 13 展示了执行自动化计划的一个示例。


图 13. 执行自动化计划的示例
执行自动化计划的示例
 

如果您需要为新实例自定义配置,可以在这个自动化计划中添加步骤。

Eclipse 客户端提供了一个 Automation Designer 工具。您可以使用该工具快速而又便捷地创建自动化计划。有关的详细信息,请参阅本文 参考资料 部分中列出的 Rational Automation Framework 或 PureApplication System 信息中心。

部署应用程序的新实例

如需部署应用程序的新实例,请打开模式,单击 Deploy in the cloud 按钮。

对于每个通过此模式部署的新虚拟系统,请执行以下步骤:

  1. 使用此虚拟系统的新主机名更新 AMC 环境。
  2. 将所有相关范围内的 WebSphere 配置数据推送到新单元中。
  3. 将所有相关集群的所有应用程序部署到新单元。
  4. 启动单元内的所有集群或服务器和应用程序。
  5. 生成并传播 Web 服务器插件。
  6. 在执行自动化计划中添加任何自定义内容。

优化

下面的将几节介绍迁移流程的最佳实践。

避免直接配置应用服务器

每个应用服务器都包含大量的配置数据。默认情况下,AMC 可连接到托管应用服务器的节点,从中获取完整的应用服务器配置。通常情况下,只有一小部分应用服务器需要配置,例如启用服务集成总线 (SIB) 服务或者添加 Java 虚拟机 (JVM) 参数。在这种情况下,可以将设置存储在集群范围内,通过一次连接部署管理器(按集群)将其统一应用到集群内的各个应用服务器。由于与部署管理器之间采用了这种单一连接,而且仅仅管理部分需要更改配置的应用服务器,因此管理配置所需的时间大大缩短。

避免出现无配置的范围

如果资源配置数据全部在单元或者集群范围内维护,则无需在节点和服务器范围上运行操作。应禁用自动化计划中的相应步骤。


限制

  • 不要更改密码。
  • 不要更改外部系统依赖项,例如 database/mq servers
  • 不要更改节点数量。但可以添加集群单元。
  • 不要更改任何单元、集群或者节点名称。
  • RAFW_HOME_PATH 指定为 /tmp/RAFW

将应用程序部署到虚拟系统模式的更多信息

这一节提供了部署过程中的一些细节。通常情况下,部署不需要您提供输入或者进行干预。

处理流程

部署虚拟系统模式时,将运行集成脚本包。这将使用虚拟系统模式的脚本包定义中指定的用户和密码连接到 Framework 服务器。运行集成脚本包时,会在 AMC 内创建一个全新的空单元定义。后续的每次运行都会使用新主机名更新单元定义。

在将虚拟系统模式捕获到 AMC 的步骤中,单元定义将得到填充。

模式成功部署之后,展开 DMGR 部件,单击 WebSphere 控制台链接,开始配置您的资源、安装应用程序。

有关集成脚本包流的更多信息,请参见 疑难解答 一节。

工件

集成脚本包在 AMC 中创建以下工件(参见图 14),您可以利用这些工件来更改正在运行的虚拟系统、捕获正在运行的虚拟系统中的更改,或者对比 AMC 单元定义与正在运行的虚拟系统。


图 14. 集成脚本包创建的工件
集成脚本包创建的工件
 


脚本包疑难解答

这一节将介绍集成脚本包的工作方式,以及如何处理运行过程中可能会遇到的问题。

集成脚本包流

集成脚本包执行以下步骤:

  1. 在运行时,执行脚本包首先会将打包的文件提取到 RAFW_HOME_PATH 参数指定的目录中。
  2. 运行 AMC 客户端。建立与 Framework 服务器之间的连接。
  3. 如果 AMC 环境还不存在,则会在 Framework 服务器中创建 AMC 环境和三个自动化计划。 本文已经演示了其中的两个自动化计划(导入和执行)。第三个计划用于对比 Framework 服务器与活动单元数据中存储的值。
  4. 如果环境与单元名称的组合不存在,则会在 AMC 服务器上创建一个新的环境单元定义。不运行任何自动化计划。
  5. 如果找到了现有环境和单元名称组合,则更新已部署的各系统的主机名,并运行执行自动化计划来配置资源,将应用程序部署到新创建的虚拟系统单元。

查看日志

可以使用脚本包日志和自动化计划日志来协助进行疑难解答。

脚本包日志

可以展开新部署的虚拟系统模式的 Instances > Virtual Systems 视图中的 dmgr 部件,查看 AMC 脚本包的日志。在所展开的部分的底端,可以看到使运行的所有脚本包的列表,如图 15 所示。


图 15. 脚本包列表
脚本包列表
 

remote_std_err.log 文件包含这个脚本包的日志信息。

自动化计划日志

如需查看自动化计划的结果,则需要在虚拟系统模式中配置资源和应用程序,请使用 Web 界面登录 Framework 服务器。

  1. 在 AMC 虚拟系统的 AMC 服务器部分中,单击名为 Advanced Middleware Configuration Console 的链接,打开 AMC Web 界面。
  2. 在 AMC Web 界面中,单击 Jobs 菜单项,如图 16 所示,在列表内找到运行。作业名为 RAFW_<Environment Name>_<Cell Name>_*,其中的星号是 execute、import 或者 compare。

    图 16. 定位作业
    定位作业

     

疑难解答提示

产生错误的常见原因如下:

  • AMC 服务器的主机名不正确,或者 AMC 服务器用户的凭据不正确。
  • RAFW_HOME_PATH 条目必须与 AMC 服务器中为 <OS>_RAFW_HOME 指定的值对应。AIX 或 Linux 的默认值是 /tmp/RAFW。保留 RAFW_HOME_PATH 设置的 /tmp/RAFW 的默认值。如果 AMC Framework 服务器中的值与 RAFW_HOME_PATH 的值不同,则有可能出现问题,无法在虚拟系统模式机器中创建必要的目录。

在虚拟系统模式中将应用程序捕获到 AMC 中的更多信息

这一节将介绍导入脚本包的工作方式。

了解导入脚本包的流程

导入脚本包按照以下步骤执行:

  1. 运行时,AMC 导入脚本包将联系 AMC 服务器,尝试找到与其连接的虚拟系统相关的单元定义。
  2. 如果找到了这样的定义,AMC 导入脚本包会使用 RAFW_<Environment name>_<Cell name>_import 项目在 AMC 中创建一个新作业。
  3. 随后,脚本包会继续联系 AMC 服务器,检查该作业的状态,直至该作业完成为止。

如果某个用户直接登录 AMC Web 界面,意外地中断了网络连接,脚本会一直等待,随后重新建立连接。

脚本包会调用导入自动化计划,将单元中已经配置的资源和已经安装的应用程序捕获到 AMC 单元定义之中。

注意:如前所述,每名用户只能有一个登录会话。请使用与虚拟系统脚本包参数中用户不同的身份登录 Web 用户界面。


结束语

本文介绍了如何开始处理一个 WebSphere 应用程序,以及如何使用 IBM Workload Deployer 和高级中间件配置工具,在高级中间件配置工具中将该应用程序迁移到云。通过这种方式将应用程序部署到云之后,便可通过一个步骤在云中部署应用程序的更多实例,完全不必重复所有这些步骤。