内容


使用 UrbanCode 支持 IBM MQ 的持续配置部署

Comments

相关 IBM 解决方案

IBM® MQ 是一个消息中间件,它简化并加速了跨多个平台的各种应用程序和业务数据的集成。IBM MQ 通过消息队列发送和接收消息数据,促进了应用程序、系统、服务和文件之间有保证的、安全的、可靠的信息交换,从而简化了业务应用程序的创建和维护。它提供了统一消息功能,通过广泛的产品满足企业级消息需求,还提供了面向物联网和移动设备的连接性。

IBM® UrbanCode™ Deploy 编排并自动化应用程序、中间件配置、数据库更改向开发、测试和生产环境中的部署。此软件使您的团队能够根据需要(按需或按时间表)和借助自助服务频繁地部署。UrbanCode Deploy 可帮助团队加快上市准备速度,降低成本和降低风险。

UrbanCode Deploy 包含一个 IBM MQ 插件,该插件支持为 IBM MQ 创建、定义、删除、设置、停止、启动、导入、管理和接收配置操作的 30 多种步骤。执行这些操作是为了采用操作模式来满足使用模式,比如 “在一个 MQ 服务器上创建一个队列管理器” 或 “通过在一个或多个 IBM MQ 服务器上创建一组队列和通道,在两个应用程序之间建立连接”。边栏列表给出了为 IBM MQ 插件提供的操作。

IBM MQ 部署目标

IBM MQ 开发人员通常使用手动流程来执行配置更改。其中一些流程包括创建队列管理器,创建或更改队列和通道等(完整列表请参见侧栏)。这些流程可能涉及到直接访问 IBM MQ 服务器,或者在服务器上运行本地管理的脚本。应用配置后,会更新一个脚本超集,以便将配置集复制到新服务器上。除了与手动部署和配置操作相关的过多的时间和潜在错误之外,准确高效地监视所有环境中所有服务器的配置也很难。

IBM MQ 使用模式

本教程可能并未提到所有潜在的使用模式。下面列出的模式旨在提供足够的上下文,并解释支持 IBM MQ 部署配置的 UrbanCode Deploy 配置建模方法。为了建模 UrbanCode Deploy for IBM MQ 部署,我们将部署用例分为两个类别:

  • IBM MQ 服务器管理— 与向 IBM MQ 服务器应用特定配置设置相关的用例,包括创建队列管理器、通道等。
  • IBM MQ 环境管理— 与从当前应用于另一个服务器的配置集重新创建新 IBM MQ 服务器相关的用例,包括管理跨不同环境中的不同服务器类型的更改,影响分析等。

IBM MQ 服务器管理用例示例

IBM MQ 部署旨在应用一组配置。从部署角度讲,应该在某种模式中使用这些部署,这不同于服务器管理角度。从服务器管理角度讲,应该考虑每个步骤(添加通道)。这里的方法采用的是部署角度。

表 1 包含代表 IBM MQ 开发人员执行的重复性例行活动的用例的示例集合。这些用例包括在特定服务器上添加、删除或更改配置。您的用例可能不同,可能需要您能从 UrbanCode Deploy 库中利用的其他步骤。

每次用例运行时,都会在自动化的部署流程中使用一组唯一的值(例如队列管理器名称、描述、命令目录)。您可以提前为所有或某种特定类型的 IBM MQ 服务器配置其中一些属性。可能还需要为每种部署设置其他属性。一个好的想法是,记录每种部署设置,以便在执行一个或多个环境用例时重用它们。

表 1. 示例 IBM MQ 管理用例集合
用例描述
创建队列管理器 运行流程在服务器上创建队列管理器
连接应用程序队列管理器 运行流程来配置一组要连接的特定队列管理器
集群化队列管理器 运行流程来依据 IBM MQ 定义配置一组要集群化的特定队列管理器
创建应用程序连接 运行流程在一个要连接应用程序的服务器上创建一组队列、通道或其他配置
设置队列管理器的发布/订阅分层结构 为一个队列管理器运行定义发布/订阅分层结构的流程
设置队列管理器的发布/订阅集群 为一个队列管理器运行定义发布/订阅集群的流程
设置队列共享组 运行流程来定义队列共享组
删除队列管理器和内容 运行流程来删除队列管理器(首先删除与队列管理器相关的所有配置的替代方案)
删除配置 删除以前应用于队列管理器的一个或多个配置

UrbanCode Deploy IBM MQ 架构

图 1 给出了 IBM MQ 的 UrbanCode Deploy 基本服务器/代理架构。IBM MQ 开发人员使用 UrbanCode Deploy 服务器来配置流程和执行自动化部署配置。UrbanCode Deploy 代理安装在 IBM MQ 服务器本地。在执行时,代理下载插件流程和属性值,然后将配置应用到本地 IBM MQ 服务器。

图 1. UrbanCode Deploy 和 IBM MQ 架构
该图显示了 UrbanCode Deploy 和 IBM MQ 架构
图 2. 基本 UrbanCode Deploy 服务器和代理架构
该图显示了基本 UrbanCode Deploy 服务器和代理架构
该图显示了基本 UrbanCode Deploy 服务器和代理架构

UrbanCode Deploy 应用程序模型

UrbanCode Deploy 配置模型支持 IBM MQ 开发人员使用一种逻辑服务器类型来定义和控制部署。UrbanCode Deploy 逻辑配置模型如图 3 所示,下文还将介绍:

  • IBM MQ 服务器类型基于它在架构和配置模式中的逻辑角色。我们计划按角色和配置对 IBM MQ 服务器进行分类。每种服务器类型将使用一种由 UrbanCode Deploy 应用程序和组件定义的模板化配置模型。该应用程序包含部署该 IBM MQ 类型的环境。
  • 通过使用应用程序和组件模板,能够轻松地管理配置。有关如何配置模板的说明,请参阅 知识中心。(UrbanCode Deploy 应用程序的组件使用流程和关联的属性文件来实现 IBM MQ 部署用例。此模型允许按照服务器类型来设置部署用例的模式,管理实现每种用例的方式,并不断审核更改。整个模型旨在使 IBM MQ 开发人员或管理员能使用 UrbanCode Deploy 完成以下操作:
    • 比较相同或不同环境中的实例服务器类型
    • 访问应用于某个服务器实例的特定配置
    • 使用一个带版本的属性文件来定义属性,并向服务器应用新配置。
    • 将更改升级到下一个环境
    • 自动将生产服务器的配置复制到另一个服务器实例上
图 3. 逻辑 UrbanCode Deploy 配置模型

UrbanCode Deploy 应用程序

每种 IBM MQ 服务器类型需要一个 UrbanCode Deploy 应用程序。您将使用该应用程序部署和升级针对该服务器类型和将它部署到的每个环境的所有配置更改。在应用程序模型中,该应用程序支持的每种 IBM MQ 管理用例都有一个对应的组件(来自组件模板)。在应用程序模型流程中,该 IBM MQ 服务器类型的每个实例在每个环境中都有对应的资源。

UrbanCode Deploy 组件模板

每个 IBM MQ 管理用例应建模为包含关联组件流程的组件(模板)。组件流程中的初始步骤是,读取属性文件并创建将在流程的剩余步骤中使用的输出属性。您可以选择使用组件模板实现对 IBM MQ 管理员使用的每个组件和流程定义的集中管理。这样就可以标准化应用,并升级到每个开发环境中的 IBM MQ 服务器的模式。

UrbanCode Deploy 组件

针对每种服务器类型的 IBM MQ 管理应用程序有一个组件,该组件来自用于执行一个特定用例的合适的组件模板版本。UrbanCode Deploy IBM MQ 组件流程中的一个初始步骤是读取属性文件(IBM UrbanCode 插件中的现成步骤)。通过读取该文件,此步骤会生成一组输出属性,后续流程步骤将使用这组属性执行配置。属性文件是放入 IBM MQ 组件版本中的工件。

UrbanCode Deploy 环境和资源

每个 UrbanCode Deploy 应用程序都代表一种 IBM MQ 服务器类型,为每个部署了某种 IBM MQ 服务器类型的环境定义了一个 UrbanCode Deploy 环境。每个 UrbanCode Deploy 资源都代表部署到一个环境中的一种 IBM MQ 服务器类实例。UrbanCode Deploy 资源包含执行部署流程所需的服务器信息。如果某个环境中有多个服务器,则使用限制标记来控制每个部署的范围。

组件流程

UrbanCode Deploy 开发人员中心提供了有关 IBM MQ 管理器插件的重要信息:

每个组件流程模型都有一个初始步骤,用于读取组件版本中包含的属性文件。属性文件由 IBM MQ 管理员开发,用于提供这些为每个部署实例定义的组件流程属性。读取属性文件的步骤将在剩余步骤所使用的内存中以输出属性的形式输出读取的属性。图 4 给出了该流程的一个示例。

图 4. UrbanCode Deploy 组件流程示例
该图显示了 UrbanCode Deploy 组件流程流

流程和步骤描述

本节将介绍两种模拟不同用例的示例组件流程:创建队列管理器和创建应用程序连接。组件流程的名称表示它实现的用例的名称:

  • 创建队列管理器— 您只能使用 “创建队列管理器” 流程来创建新队列管理器。这是一个基本用例,定义来提供使用该应用程序模型的框架。图 4 中所示的一些步骤包括:
    • 读取属性文件是来自 UrbanCode Deploy file utilities 插件的标为 Read properties file 的步骤。该步骤解析一个属性文件的名称值对,以搜索按元素名称定义的属性。从此文件读取的属性是用于组件流程的剩余部分的输出属性(位于内存中)。然后它们可供组件流程中创建、更改或删除 IBM MQ 资源的后续步骤使用。为每个用例/组件使用标准属性文件模板。UrbanCode Deploy 默认插件提供了使用 XML 文件实现相同功能的替代步骤(从 XML 文件读取属性)。
    • 创建队列管理器在位于选定环境中且与该组件相关的 IBM MQ 服务器上创建一个新队列管理器。示例步骤需要的属性包括命令目录(必需)、队列管理器描述(可选)、队列管理器名称(必需)。
  • 创建应用程序连接— 可使用两个流程来建模此用例:远程服务器或需要通信的应用程序本地的服务器。使用两种流程建模组件模板。确保在应用程序流程中,每个流程都有一个对应的流程步骤(本地服务器优先)。

属性文件的属性

可通过 3 种方式管理属性:

  • 环境
  • 资源
  • 在属性文件内(组件版本)

当定义组件流程时,考虑属性文件应保留在何处(环境、资源、组件、应用程序、属性文件等)。在大部分情况下,可以限制属性文件保留的属性数量,减少每位管理员/开发人员更新这些值的工作。

表 2 给出了一些典型 IBM MQ 流程步骤的一组示例属性。每个 UrbanCode Deploy 流程步骤包含要运行的强制或可选值。下表列出了所有属性,然后将每个属性分类为重用或预配置:

  • 重用— 组件流程中的一个或多个步骤使用的属性,输入到属性文件中
  • 预配置— 属性是特定于环境、资源或用例的,不要在每次部署中更改。保留这些属性作为 UrbanCode Deploy 属性。

表 2 表明,可以将 IBM MQ 管理员维护的属性文件中的属性数量从总共 29 个唯一属性减少到 9 个。剩余属性将作为应用程序、组件、环境、资源或全局属性而保留在 UrbanCode Deploy 中。

表 2. UrbanCode Deploy 属性类别示例
步骤名称类型描述是否必需重用预配置
创建队列管理器 Command directory 字符串 IBM MQ 命令的目录 X X
Queue manager description 字符串 创建的队列管理器的描述性文本,最多 64 个字符
Queue manager name 字符串 要创建的队列管理器的名称
创建本地队列 Command directory 字符串 IBM MQ 命令的目录 X X
Delete script file after execution
布尔值 执行后删除脚本文件 X
Is batch 布尔值 在一个脚本文件中批处理多个命令,使用 run MSQC script 命令运行 X
Queue manager name 字符串 创建队列的队列管理器 X
Queue name 字符串 要定义的队列
Script file 字符串 要写入脚本的文件名称 X
创建远程队列 Command directory 字符串 IBM MQ 命令的目录 X X
Delete script file after execution 布尔值 执行后删除脚本文件 X
Is batch 布尔值 在一个脚本文件中批处理多个命令,使用 run MSQC script 命令运行 X
Queue manager name 字符串 创建队列的队列管理器的名称> X
Queue name 字符串 要定义的队列的名称
Script file 字符串 要写入脚本的文件的名称 X X
创建接收通道 Channel name 字符串 要定义的接收通道的名称
Command directory 字符串 IBM MQ 命令的目录 X
Delete script file after execution 布尔值 执行后删除脚本文件 X
Is batch 布尔值 在一个脚本文件中批处理多个命令,使用 run MSQC script 命令运行 X
Queue manager name 字符串 创建队列的队列管理器的名称 X
Script file 字符串 要写入脚本的文件名称 X
定义发送方通道 Channel name 字符串 要定义的发送方通道的名称
Command directory 字符串 IBM MQ 命令的目录 X X
Connection name 字符串 此通道的连接名称
Delete script file after execution 布尔值 执行后删除脚本文件 X
Is batch 布尔值 在一个脚本文件中批处理多个命令,使用 run MSQC Script 命令运行 X
Queue manager name 字符串 创建队列的队列管理器的名称 X
Queue name 字符串 要使用的通道的队列名称 X
Script file 字符串 要写入脚本的文件名称 X

IBM MQ 服务器管理部署流程

对于此示例,要执行 IBM MQ 服务器管理部署,请执行以下步骤:

  1. 在 SCM 中定义更改需求— 此步骤捕获跨应用程序更改需求,并将工作分配给 IBM MQ 管理员。
  2. 获取模板属性文件— 使 IBM MQ 开发人员能够找到与要执行的用例关联的属性模板文件的正确版本。一次部署流程执行可执行多个用例。
  3. 更改属性文件并交付/审核— IBM MQ 开发人员添加合适的属性值或重用属性值。
  4. 创建新 UrbanCode Deploy 组件版本— 在此步骤中,IBM MQ 开发人员手动或自动创建一个新组件版本,使用新创建的或更改的属性文件作为工件。
    备注:使用有助于您理解向每个服务器应用的操作的命名约定。
  5. 标记环境资源— IBM MQ 开发人员向组件流程分配一个唯一标记,用于限制部署流程所应用到的资源。
  6. 请求部署— 遵循标准流程。
  7. 管控部署— 遵循 UrbanCode Deploy 中的部署管控标准。
  8. 审核结果— 用户可审核所有 UrbanCode Deploy 视图,审计应用于每个资源的操作,以及跨服务器和环境进行比较。
  9. 管理环境— 根据需要执行管理用例。
图 5. 服务器管理部署步骤
该图显示了服务器管理部署步骤
该图显示了服务器管理部署步骤

增量部署

UrbanCode Deploy 部署需要是增量的。这使它能够在升级、创建快照和比较环境/服务器时考虑更改集(因为它们是独立的)。在将任何更改部署到新服务器时,UrbanCode Deploy 会比较这些更改(基于每个组件的版本),仅应用缺少的更改。

环境管理用例

环境管理用例(如表 3 所示)代表配置 IBM MQ 服务器类型的新实例,管理跨环境的更改,以及监视活动所需的活动。

表 3. 环境管理用例
用例描述
复制 IBM MQ 服务器 基于生产环境中的配置,创建现有 IBM MQ 服务器的新实例。
监视配置 监视应用于标准(生产环境)服务器的配置。
管理更改 要保持一致性,在更改应用于一个环境中的一个 IBM MQ 服务器时,同样的更改会应用于其他环境中的合适服务器。
比较环境配置 跨环境比较服务器配置,以理解服务器中的差异。

复制 IBM MQ 服务器

IBM MQ 开发人员使用 UrbanCode Deploy 快照将一种服务器或服务器类型复制到另一个环境中。快照允许您选择应用于服务器的所有增量版本,以捕获资源并应用到另一个服务器中。
备注:在使用快照部署时,仅会运行 应用于新服务器的版本。

监视配置和管理更改

使用 UrbanCode Deploy 审计和合规性功能,监视配置额管理对每个服务器和同一种类型的所有服务器的更改。例如,可以比较多种 IBM MQ 服务器或类型的快照,还可以审核应用于选定服务器的更改列表。

比较环境配置

使用组件的每个版本的命名约定,以解释对属性文件值执行的更改。使用 UrbanCode Deploy 报告和视图,审计和审核版本和工件,以及所有 IBM MQ 服务器更改的状态。通过比较环境或快照,还可以提供详细的差异报告。

结束语

在本教程中,我们提供了一种自动化 IBM MQ 服务器的 IBM MQ 配置部署和环境管理的模型。UrbanCode Deploy 提供了一种相对简单的途径来建模、部署和审计 IBM MQ 部署。UrbanCode Deploy 的标准自动化和治理功能的使用,可以减少管理 IBM MQ 服务器、更新配置,或从现有服务器重新创建新环境的工作。通过使用这里给出的模型,可帮助您为 IBM MQ 配置部署实现 UrbanCode Deploy 的这些优势。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=DevOps, WebSphere
ArticleID=1040511
ArticleTitle=使用 UrbanCode 支持 IBM MQ 的持续配置部署
publish-date=12052016