创建初始开发模式
一旦 WebSphere CloudBurst 目录中有了必要的脚本包,您就可以创建一个 WebSphere CloudBurst 模式来表示前面讲述的应用程序环境。
首先,创建一个模式来表示开发设置中的这个应用程序环境。为此,单击顶部工具栏上的 Patterns 链接。因为您要部署该模式到开发环境中,所以尽量少使用计算资源。记住这一点之后,创建一个模式,部署该模式后将使整个 WebSphere Application Server 单元在一个虚拟机中运行。
首先,单击绿色十字创建一个新模式。当对话框面板出现时,为新模式命名并提供一段简短描述,然后选择模式所基于的虚拟映像。
图 5. 新模式对话框
下一步,单击右上角的铅笔图标导航到新模式的 Pattern Editor。在模式编辑器中,将一个部署管理器部件从页面左边拖放到右边的空白画布上。
图 6. 包括部署管理器部件
忽略部署管理器上无自定义节点的警告消息,因为在这种情况下,您要在部署管理器部件表示的虚拟机中构建整个单元。
在左边的下拉菜单中,选择 Script. Packages。现在选择您要在该模式中使用的脚本包。除了之前创建的两个之外,还包括:
- 在一个虚拟机中设置整个单元所用的一个脚本包
- 在单元内创建一个应用程序服务器集群所用的一个脚本包
图 7. 带脚本包的模式
将这些脚本包放在部署管理器部件上,可以确保它们从包含部署管理器节点的虚拟机中运行。
脚本包能够结合使用您在部署期间提供的信息和 WebSphere CloudBurst 为每个虚拟机创建的 /etc/virtualimage.properties 文件中的信息成功完成其任务。
在编辑完新模式之后,单击模式编辑器页面右上角的 Done editing 链接。这会将您带回到 Account Management Cluster — Development 模式的细节页面。单击该页面右上角的锁定图片就可以锁定模式。
现在您可以单击 Deploy 开始部署过程了。为新虚拟系统(在我们的例子中是 “AcctMgmt Cluster — Dev”)提供一个名称。之后,单击 Configure virtual parts,然后单击 Deployment manager 链接配置部署管理器部件。
另外还包括大部分模式部件常见的部署时配置信息:
- 虚拟机 CPU 和内存分配
- WebSphere Application Server 节点名和单元名
- 密码信息
您的模式包括 4 个脚本包,每个脚本包根据其定义的变量都有自己的配置集。图 8 显示了 Create cell 和 Create cluster 脚本包的配置信息。
图 8. 单元和集群创建配置
要创建单元,指定一个节点名前缀(“AcctMgmtNode”)、要创建的节点数(2)和要创建的 IBM HTTP Server 实例数(1)。要创建 WebSphere Application Server 集群,只需指定集群名(“AcctMgmtCluster”)和成员名前缀(“amServer”)。
您提供的其他配置信息是供脚本包安装 Account Management 应用程序和为应用程序创建 DB2 数据源使用的。
图 9. 应用程序和数据源配置
图 8 和图 9 中显示的所有值在被 WebSphere CloudBurst 调用时都可用于您的脚本。
在指定部署时配置之后,单击 OK 开始部署过程。WebSphere CloudBurst 将您带到虚拟系统页面,您可以在此监控部署状态。部署过程完成之后,虚拟系统的状态表明它在启动状态。
此时,展开 Virtual machines 部分,然后展开部署管理器虚拟机部分。在部署管理器 VM 部分下面,使用图 10 中的 WebSphere 链接登录到 WebSphere Application Server 管理控制台。
图 10. 登录 WebSphere Application Server 管理控制台
在管理控制台中,您可以检验建立的配置是否正确。除了检查 WebSphere Application Server 节点和集群的存在之外,您还需要检验 DB2 数据源和 Account Management 应用程序的正确配置。
要检查 DB2 数据源,展开 Resources 部分,然后展开 JDBC 部分并单击 Data sources 链接。您应当看到我们在部署期间指定的 amDataSource。
图 11. 管理控制台中的 DB2 数据源
此外,Account Management 应用程序应出现在控制台的企业应用程序清单中。
图 12. 管理控制台中的 Account Management 应用程序
此时,WebSphere Application Server 环境经过完全配置,且随时可供部署使用。
将 Account Management 环境迁移到测试环境
您对 Account Management 应用程序的开发工作现在要结束了,您可以开始测试环境了。我们为迁移提出以下目标:
- 自定义节点应当在其自己的主机上运行,不能与部署管理器一同使用。
- 应用程序二进制文件应当从不同的存储库检索。
- 应当将数据源配置为引用不同的数据库实例。
变更过程首先需要进入模式页面,选择您之前创建的 Account Management Cluster — Development 模式。克隆该模式来创建一个名为 Account Management Cluster — Test 的新模式,然后导航到新模式的模式编辑器页面。
在模式编辑器中,删除部署管理器部件上的所有脚本包。您要添加回一些脚本包,但需要确保以正确的顺序添加它们。
下一步,将一个自定义节点从左边的部件列表中拖放到右边的画布上,通过该方法建立新拓扑。自定义节点部件计数从 0 增加到 2。
现在将脚本包添加回部署管理器部件中。这次首先添加设备附带的 Add IBM HTTP Server 节点脚本包。该脚本包在与部署管理器相同的虚拟机种建立一个 IBM HTTP Server,从而允许您在您的测试环境中保存资源。最后,添加回脚本包来安装 Account Management 应用程序并创建必需的 DB2 数据源。
WebSphere CloudBurst 以脚本包出现在模式部件上的次序调用它们。在本例中,在安装应用程序之前创建 IBM HTTP Server 实例很重要,因为它支持应用程序在其部署目标中包含服务器,因而允许对应用程序的请求通过我们的 IBM HTTP Server 实例执行路由。
编辑尚不完整,因为您需要建立一个 WebSphere Application Server 集群。不过在这种情况下,您不需要一个脚本包。因为您在使用自定义节点部件,您可以利用定义集群的能力,将其作为模式的高级选项。为此,单击 Advanced Options 并选择 Define clusters 选项。
图 14. 定义一个 WebSphere Application Server 集群
选择该选项之后,WebSphere CloudBurst 在部署该模式期间会自动创建一个或多个 WebSphere Application Server 集群。您要提供配置信息,告诉 WebSphere CloudBurst 您需要多少集群,以及您希望在每个自定义节点上创建多少集群成员。这可以在模式中完成,也可以在部署期间完成。
在配置模式使其包含 WebSphere Application Server 集群之后,您就完成了所需的变更;单击 Done editing 链接返回到模式细节页面。此时,您可以选择锁定模式。接着准备部署。
部署与上一次有些许不同,因为您的模式包含两个部件。在配置部署管理器部件用于部署时,您仍然需要为应用程序安装和数据源创建脚本提供必需的配置。在这种情况下,更改该配置数据的值,来反映测试环境的适当值。
特别要更改应用程序二进制文件的位置、数据库的用户名和数据库主机值(但是为了确保成功部署到测试环境中,您可以更改任何必要的值)。
不同于前一个部署,您不需要提供信息来在单元中创建托管节点,因为您在模式中包含了自定义节点部件。WebSphere CloudBurst 最终会自动创建节点,并负责将它们联合到单元中。您仍然需要提供您想创建的 WebSphere Application Cluster 相关信息:惟一的区别在于该部署,WebSphere CloudBurst 会代替您创建集群,包括执行该配置行为所需的脚本包。
图 16. 配置 WebSphere Application Server 集群
使用图 16 中的值会创建一个这样的集群:即每个节点上包含一个成员。在本例中,您的 WebSphere Application Server 集群会有两个成员,因为您的模式包含两个自定义节点部件。
在该模式下,您还需要在部署之前配置自定义节点部件。在该部件上没有脚本包,因为您所需要的是提供密码信息。单击部署页面上 OK 按钮来部署模式。这又会将您带到 Virtual Systems 页面,部署过程完成,且虚拟系统处于启动状态,您可以像上次一样登录到 WebSphere Application Server 管理控制台。除更改的应用程序和数据源配置之外,惟一真正的区别在于,自定义节点位于部署管理器之外的不同主机上。
图 17. WebSphere Application Server 单元的节点清单
图 17 中所示的 CloudBurstNode 和 CloudBurstNode1 节点创建自我们的模式中的两个自定义节点部件。CloudBurstNode0 和 cbmv-112.rtp.raleigh.ibm.com-node 节点分别代表部署管理器和 IBM HTTP Server 实例。
但是,从部署环境迁移到测试环境的重点不在于其差别 — 真正的重点在于这两个部署的最终结果是相同的。在两种环境下,Account Management 应用程序运行于一个 WebSphere Application Server 集群上,且该应用程序可以访问一个 DB2 数据库的数据源。另外,您只需通过拖拉操作进行些许更改并提供少量部署时配置即可完成该迁移。
从一个环境到另一个环境的迁移只需几分钟。
继续向质量保证环境迁移
Account Management 应用程序不会一直处在测试环境中。它的最终目标是在生产中实时运行,这样才能在大型企业中可用,但是您不能直接从测试环境跳到生产环境。
首先,您要将已测试和验证的 Account Management 应用程序环境迁移到一个质量保证(QA)设置中。这特别意味着要做 5 个更改:
- WebSphere Application Server 环境必须在 AIX® 平台上运行。
- IBM HTTP Server 应当在其自己的独立主机上运行,且不能与部署管理器连同使用。
- Account Management 应用程序环境应利用专用作 QA 和灾难恢复目的的计算资源。
- 应用程序二进制文件应从不同的存储库中检索。
- 应将数据源配置为引用不同的数据库实例。
与从开发到测试的迁移一样,此次变更首先要克隆一个模式。作为转换的一部分,您必须确保您的 WebSphere Application Server 环境 在 AIX 平台上运行。传统上,将整个应用程序环境和相关的应用程序基础设施栈从一个平台(在本例中为运行于 VMware 之上的 SUSE Linux®)移动到一个完全不同的平台(运行于 PowerVM 之上的 AIX),会很复杂、耗时、且易出错。有了 WebSphere CloudBurst,情况就有所不同了。
要重定 AIX for PowerVM 上应用程序环境的基数,只需克隆现有 Account Management Cluster — Test 模式并选择模式要基于的一个不同映像。在模式克隆过程中在初始对话框面板中执行该操作,如图 18 所示。
图 18. 创建 Account Management QA 模式
选择 WebSphere Application Server 7.0.0.7 (PowerVM) 映像作为 QA 模式的基础。该映像运行于 IBM PowerVM 虚拟机监控程序平台上,且包括一个 AIX 操作系统。在几秒钟之内只需几个单击,就可以在一个全新的操作系统上重定我们的 Account Management 应用程序环境的基数。此外,构建于模式中的所有定制都被保留,比如单元的拓扑、Account Management 应用程序的安装和 DB2 数据源的配置。
在创建新模式之后,进入模式编辑器界面。在这里从部署管理器部件上删除 Add IBM HTTP Server node 脚本包,并将一个 IBM HTTP 服务器部件从左边的列表中拖放到模式画布上。
图 19. Account Management 集群:QA 模式
值得一提的是,在修改一个包含高级选项的模式时,可以重新设定这些高级选项。在这种情况下,从部署管理器部件上删除脚本包之后,Cluster configuration 和 JVM tuning 脚本包(因选中 Define clusters 高级选项设置而被创建)消失。要重设这些选项,只需单击 Advanced Options 并重新选择选项来定义集群。
在漠视编辑器中进行了必要的更改之后,就可以准备开始部署过程了。
尽管没有讨论这一点,但每次您在 WebSphere CloudBurst 中部署一个模式时,都要以一个具体的 云群 为目标。一个云群是 WebSphere CloudBurst 使用的一组虚拟机监控程序,用于托管 WebSphere CloudBurst 在部署期间创建的虚拟机。至少需要一个云群,不过您可以定义多个云群,以在组织间更有效地划分共享资源,如图 19 所示。
在一个特定的云群中,所有虚拟机监控程序必须有相同的类型(比如,所有 VMware ESX 主机或所有 PowerVM 主机)。使用为 PowerVM 平台包装的 WebSphere Application Server Hypervisor Edition 创建您的新模式。您需要确保部署到一个正在管理大量 PowerVM 主机的云群中。记住这个需求之后,有一点要指出,即不仅 WebSphere CloudBurst 能管理多个云群,一个设备也可以管理多个云群,而云群又反过来管理不同的虚拟机监控程序平台。
如图 21 所示,WebSphere CloudBurst 有效地提取了底层基础设施,因此在部署模式时的最终用户体验是相同的。要部署新模式到 PowerVM 平台,只需选择 QA Cloud Group,它正好是一个 PowerVM 云群。除此之外,以完全相同的方式配置部署模式,如同上一次部署时更改应用程序和数据源配置相关信息一样。
下一步,使用与部署上一个 Account Management Cluster — Test 模式类似的方式配置虚拟部件。此次部署的惟一不同在于,要指定有关应用程序和数据源配置的不同信息。
如同上一个迁移步骤,更改应用程序二进制文件、数据库用户名和数据库主机名值。这里您也可以按需更改任何值。在配置部署管理器部件之后,使用必要的密码信息配置自定义节点部件和 IBM HTTP Server 部件(因为您将其包含为模式的一个独立部件 )。
现在您可以部署到我们的质量保证云;一旦虚拟系统运行起来,像之前一样登录到 WebSphere Application Server 管理控制台。如果您需要,可以在节点清单中确认正确的单元组成。这次您应当会看到单元中每个节点的不同主机。
除了每个节点的主机不同之外,最终环境基本上相同。您仍然配置了您的 Account Management 应用程序,使其在一个 WebSphere Application Server 集群上运行,并利用一个 DB2 数据源。
您再次通过界面中的一个拖拉操作和小的部署时修改完成了迁移过程。且您可以按分钟度量整个过程,而非按天(更糟糕的是,按周)度量。
演示时间!迁移到生产环境
现在该是时候将您全新的 Account Management 应用程序投入生产中供企业使用了。为此,您可以使用之前创建的同一个 Account Management Cluster — QA 模式,或如果组织流程要求,您可以只克隆它,并创建一个名称不同的新模式。模式组成不会发生任何变化。事实上,为了将您的 Account Management 集群环境部署到生产中,您只需要做两个熟悉的更改:
- 应用程序二进制文件应从不同的存储库中检索。
- 应将数据源配置为引用不同的数据库实例。
这意味着,只需像之前一样在运行时更改配置数据即可。
这就是将应用程序环境从质量保证环境迁移到生产环境中所需做的全部工作!完成部署过程且虚拟系统启动后,您可以像上一个部署过程那样访问 WebSphere Application Server 管理控制台,且那您可以在 WebSphere CloudBurst 中管理虚拟系统,与管理部署在 VMware ESX 平台上的虚拟系统一样。
不仅为不同平台创建和部署模式的最终用户体验是一致的,而且管理所生成的虚拟系统的体验是一样的,不管托管虚拟机的基础设施类型是什么。
现在感觉如何?您已将一个 Account Management 应用程序从测试迁移到质量保证,最后迁移到生产环境中。每个迁移行为都只是拖放操作和部署时配置数据设置的结合。此外,每次执行迁移任务只需几分钟。
结束语
事实是,很少有开发人员、测试人员和管理员向往应用程序环境的迁移。因为这个过程通常被看作很耗时、难以发现错误,且时常达不到目标。
正如我们所展示的,您可以采用 WebSphere CloudBurst 提供的基于模式的方法根除一些问题(如果不是全部问题)。
WebSphere CloudBurst 模式为您提供捕获和保存中间件应用程序环境及其配置的能力。这些模式可在每次通过一些必要调整得到重复部署,因此确保得到一致的结果。此外,它还能够快速克隆和修改一个模式的拓扑或平台,而不影响应用程序及其配置的一致性,且您可以实现硬化和灵活性之间的完美平衡。简言之,应用程序迁移过程不再是业务内的一个抑制剂,WebSphere CloudBurst 可以将该过程转化为一个竞争优势。