简介: 在本教程中,作者展示了如何使用 WebSphere® CloudBurst 构建可用于表示应用程序和应用程序基础设施的配置的模式。文中还介绍了在应用程序环境经历 4 个生命周期阶段 — 开发、测试、QA 和生产的迁移时,如何使用这些模式对其进行统一部署。教程提供了一个完整的步进式示例,教您如何使用模式来处理变更拓扑、底层平台架构和配置属性。
前言
在本教程中,作者展示了如何使用 WebSphere® CloudBurst 构建可用于表示应用程序和应用程序基础设施的配置的模式。文中还介绍了在应用程序环境经历 4 个生命周期阶段 — 开发、测试、QA 和生产的迁移时,如何使用这些模式对其进行统一部署。教程提供了一个完整的步进式示例,教您如何使用模式来处理变更拓扑、底层平台架构和配置属性。
本教程的目标是:
- 向您展示如何使用 CloudBurst 构建可表示应用程序/应用程序基础设施的配置的模式。
- 向您展示如何使用这些模式统一部署应用程序环境,不管经历的生命周期阶段是什么(开发、测试、QA 和生产)。
- 使您熟悉这些模式类型,从而在类似的任务中使用它们。
如果拥有对 WebSphere CloudBurst Appliance、模式创建和云计算应用开发的一些基础知识和经验,本文中的信息会对开发人员更有意义。但是,由于本教程既有为辅助云应用程序/应用程序基础设施迁移而构建模式的具体步骤,也包含这些任务中涉及的概念。没有软件产品相关知识的人也可以从中受益。
为吸收本教程中我们呈现的概念,您需要的是一个好的开发人员头脑。不过,如果您希望复制这些练习,就需要获准访问 WebSphere CloudBurst Appliance,以创建目录内容、创建模式和部署模式。
背景知识
组织们面临着将应用程序和相关基础设施部署到不同环境中的挑战。例如,大部分应用程序经历某些升迁链,包括将应用程序及其依赖的基础设施从开发移动到测试,最后到生产。在每一个阶段安装和配置应用程序和应用程序基础设施 — 这个过程通常很耗时且可能需要手动操作。
更重要的是,每次重新安装和配置应用程序及其相关基础设施来支持一个迁移时,都有可能引入 bugs,尤其会有未知或意外的变更添加到应用程序或其平台的配置上。在有这些类型的 bugs 引入时,通常很难找到原因,几乎不可能检测到。这就导致了常见的现象:“它以前有效;发生了什么变化?”
IBM WebSphere CloudBurst Appliance 能够为您的基础设施和应用程序定义一致的配置。WebSphere CloudBurst 也支持将它们从一个环境移动到另一环境:
- 您可以使用该设备构建捕获应用程序基础设施、应用程序和配置的模式。
- 这些模式保存在设备上,且被反复部署,实现应用程序环境的一致性。
- 参数化模式,来为正在部署的阶段塑造应用程序环境。
WebSphere CloudBurst 对映像和模式的独特结合加速了部署,现在是以分钟度量,而非天数或周数。结果是一个完全配置的、可重复的应用程序环境,随时可供使用。
大部分应用程序经历多个阶段,包括开发、测试和生产。如果每个环境是一样的,实现一致性和可重复部署可能不是那么难;不过,在大多数 IT 企业中,可用硬件、软件配置和在用后端资源有区别。这就导致生命周期每个阶段的配置发生变化,因而不可能直接复制一个配置,且难以根据引入问题的不良变更区分和跟踪所需的配置变更。
让我们来看一下应用程序及其支撑基础设施在生命周期中可能经历的变更公共集,并讨论如何使用 WebSphere CloudBurst 功能简化对这些变更的管理,从而提供可重复部署。一些典型变更包括:
- 不同的基础设施拓扑。
- 不同的硬件平台架构。
- 不同的配置设置。
- 不同的资源。
尽管虚拟化使得复制多节点生产拓扑用于部署和测试更加容易,无需太多耗资,但很多人仍然喜欢生命周期较早阶段的简单拓扑。例如,WebSphere 开发环境通常包括一个虚拟机,其中包含部署管理器、Web 服务器和自定义节点。在应用程序经历不同生命周期阶段时,相同的基础设施组件仍然存在;但是,后面的阶段在多个虚拟机之间分配这些组件。
下图显示了一体化开发环境移动到一个多节点测试拓扑的一个典型进度,其中应用程序服务器节点被分离并组合成一个集群,之后将 Web 服务器分成一个 DMZ,以作最终的质量保证和生产之用。
在 WebSphere CloudBurst 中,每个独有拓扑映射到一个模式。因此,正如您在示例中会看到的,图中的生命周期有三个独特的模式。模式创建过程复制前面的模式,以帮助维护任何配置信息,特别是任何独特脚本。
另一个生命周期变更可能是所选择的硬件架构平台。由于各种原因,WebSphere 开发有时在一个不同于生产的平台上,或有多个开发、测试和生产平台在使用中。
例如,上一个图显示了 VMware 上的开发和测试环境,以及 PowerVM 上的 QA 和生产环境。WebSphere CloudBurst 拓扑定义与平台无关,允许将同一模式定义部署到不同平台。
当然,映像是平台特有的;因此,正如场景展示的,要将同一模式从 VMware 移动到 PowerVM,您只要生成一个模式副本,并选择与新平台对应的映像。在为另一个平台复制模式时,您需要对所开发的任何平台特有的脚本做出解释,并进行必要的更改。
配置设置也需要随不同的生命周期部署而改变。虚拟化的目标之一 — 复制一个虚拟机并重用它 — 遇到一个挑战,即相同的副本存在冲突。为避免冲突,最小值、名称、密码和其他设置通常需要 变更。
WebSphere CloudBurst 模式提供参数,允许在启动虚拟机时进行配置更改。在模式创建过程中,您可以将这些值锁定到模式中,或允许在部署时修改它们。例如,如果您希望有一个具体的单元名,您可以将该值锁定到模式中;如果您希望使用带不同单元名的同一模式,您可以将其留给部署时规范。
大多数 WebSphere 应用程序与某些对象(比如数据库、目录服务器等)交互,且这些资源的位置在开发、测试和生产环境中可能不同。例如,质量保证环境极可能包含一些测试数据库,从生产数据中建模和复制。WebSphere CloudBurst 脚本允许您定义参数。向一个模式添加一个脚本会自动公开参数,将其作为模式或部署配置的一部分。脚本参数提供大量灵活性来保持模式的公共性,同时支持切换资源位置。
在部署脚本时,您可以为整个生命周期中变更的资源连接添加参数。WebSphere CloudBurst 自动向模式添加参数,您可以在定义模式或维护模式灵活性时选择指定参数值,方法是将参数值规范留待部署时。例如,要重用不同资源的同一模式,只需将位置设定为一个脚本参数,然后在部署时指定该值。
在接下来的示例场景中,我们为数据库位置和应用程序位置同时使用该方法。该方法对于任何特定于应用程序的配置设置也很有用。
样例场景
现在,我们将探讨一个使用 WebSphere CloudBurst 实现这些概念的样例场景。在该例中,应用程序基础设施将是一个集群化的 WebSphere Application Server 环境。环境包括以下节点和应用程序服务器:
- 一个部署管理器节点。
- 两个添加到部署管理器的自定义节点。每个节点包含一个应用程序服务器实例和属于一个集群的应用程序服务器。
- 一个 IBM HTTP Server 节点。
除了基本的 WebSphere Application Server 拓扑之外,我们还有一个 Java™ 2 平台,安装在应用程序服务器集群上的 Enterprise Edition (J2EE) 应用程序(我们称之为 Account Management)。该应用程序对一个外部 IBM DB2® 数据库实例有一个依赖性,且对该依赖性的配置在不同的设置中也有所不同。
图 1 展示了我们刚才描述的应用程序环境。
在我们的场景中,我们将向您展示如何使用 WebSphere CloudBurst 在从开发、测试、质量保证到最后的生产设置移动时创建和管理该环境。这包括以下步骤:
- 创建必要的 WebSphere CloudBurst 脚本包。
- 创建用于开发设置的初始 WebSphere CloudBurst 模式。
- 将应用程序环境迁移和部署到一个测试设置。
- 将应用程序环境迁移和部署到一个 QA 设置。
- 将应用程序环境迁移和部署到一个生产设置。
在每个迁移和随后的部署期间,我们将阐释如何轻松地对设置进行微小更改,而不影响最终应用程序环境的整体完整性。这些变更将包括对 WebSphere Application Server 拓扑的更改、对 DB2 集成的配置更改,甚至对底层操作系统平台的更改。
请注意,如果您试图复制本文剩余部分采用的步骤,就需要获准访问一个 WebSphere CloudBurst Appliance,以创建目录内容、创建模式和部署模式。
创建脚本包
在 WebSphere CloudBurst 中,脚本包 是您向 WebSphere 中间件应用程序环境提供自定义配置经由的机制。一个脚本包由一个二进制存档文件和配置设置组成,前者包含可执行和支撑工件,后者告诉 WebSphere CloudBurst 如何调用脚本包。
对于本例,我们将创建两个不同的脚本包:
- 其中一个会将 Account Management 应用程序安装到 WebSphere Application Server 环境中。
- 另一个会配置一个 DB2 数据源,以供应用程序使用。
为创建安装和配置 Account Management 应用程序所需的脚本包,首先单击 WebSphere CloudBurst Web 控制台中顶部工具栏上的 Catalog -> Script. Packages 链接。这会将您带到 WebSphere CloudBurst 目录的脚本包部分。单击左上角的绿十字创建新脚本包。
现在上传这个脚本包的二进制存档文件。这个脚本包的存档文件包含一个 wsadmin 脚本,它从指定位置检索 Account Management 并将其安装到 WebSphere Application Server 环境中。
要上传存档文件,使用 Account Management Application 脚本包细节页面上 Script. package files 字段中的文件上传对话框。上传存档文件之后,您要提供有关脚本包的其他信息。
图 3. Account Management Application 脚本包
注意,您在 Environment 部分定义了一个名为 APPLICATION_URL 的变量:这将允许您在部署时为包含脚本包的模式指定该变量的值。指定值可用于安装脚本,允许脚本从指定位置检索应用程序二进制文件。
除了提供变量之外,您还要告知 WebSphere CloudBurst 如何调用您的脚本包。特别地,您要告诉 WebSphere CloudBurst 使用包含在 WebSphere Application Server 安装中的 wsadmin 工具,以调用包含在脚本包存档文件中的 installApp.jy 脚本。根据 Executes 字段,WebSphere CloudBurst 将自动在接近模式部署时调用该脚本,也就是说,部署过程的结果将会是一个包含 Account Management 应用程序的 WebSphere Application Server 环境。
您还需要创建一个脚本包来在 WebSphere Application Server 环境中配置 DB2 数据源。Account Management 应用程序将使用该数据源与一个 DB2 实例进行交互。将该脚本包命名为 “Create DB2 data source”。它的存档文件包含一个 shell 脚本,该脚本协调多个 wsadmin 脚本的执行,从而在 WebSphere Application Server 环境中配置合适的资源。
值得一提的是,有多个环境变量允许您在部署时为包含该脚本包的模式提供数据源配置信息。这包括数据源名称、数据库名称和数据库位置等信息。通过采用这种方法,您可以使用同一脚本包在不同的环境(开发、测试和生产)中为大量不同的 DB2 数据库实例配置 DB2 数据源。
在定义了两个必要的脚本包之后,您可以使用这些资源构建模式。
(未完)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-671482/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14789789/viewspace-671482/