现在的位置: 首页 > 综合 > 正文

应用部署自动化工具UrbanCode Deploy系统架构

2017年05月19日 ⁄ 综合 ⁄ 共 3372字 ⁄ 字号 评论关闭

Reference URL:http://www.ithov.com/linux/131676.shtml

IBM UrbanCode Deploy 概述

IBM UrbanCode Deploy(简称 UCD)是 IBM 的应用自动化部署工具。该工具基于一个完善的应用部署自动化管理信息模型,提供可视化的部署逻辑设计手段,并通过远程代理技术,实现对复杂应用在不同环境下的自动化部署。该工具功能组件参考下图:

图 1. IBM UCD 功能组件图

IBM UCD 功能组件图

UCD 不仅仅是一个实现应用部署自动化的工具,还是一个服务于系统工程师(负责部署环境的系统管理)、发布工程师(负责应用的部署逻辑设计)、部署工程师(负责 执行应用部署)和质量工程师(负责应用部署前和部署后的质量审计)等多个角色的管理平台。该平台所提供的功能点包括如下:

1、环境管理:实现对被部署机器以及所提供资源(比如数据库、中间件等)的管理。

2、组件管理:实现对应用部署组件(比如企业应用的安装包、数据更新脚本等)的维护,以及组件部署逻辑(比如如何安装在 Tomcat 上安装一个发布包)的可视化设计。

3、应用管理:实现企业应用的维护、关联组件以及如何编排多个组件的部署逻辑来完成整个应用的部署逻辑。

4、执行管理:实现应用部署环境的定义、资源的映射以及应用部署的执行。

5、仪表盘:实现对应用部署的统计分析,包括成功、失败统计分析以及部署时长统计分析等。

6、部署工件管理:实现对部署文件的集中存储,版本比对等功能。

7、插件管理:实现对可重用部署步骤的管理,并可自定义可重用的部署步骤。

8、系统管理:实现用户、组、角色、团队的管理,定义完善的权限策略。

IBM UrbanCode Deploy 系统架构

作为一个企业应用部署自动化管理平台,UCD 基于如下逻辑技术架构,确保支持复杂环境(比如有部署环境和服务器之间有防火墙)下的应用部署。下面将分别介绍 UCD 的每个技术组件。

图 2. IBM UCD 系统架构图

IBM UCD 系统架构图

应用服务器:基于 Tomcat 的 JavaEE 应用,是 UCD 的核心并提供主要的功能。

CodeStation: UCD 自带的发布文件存储库,提供发布文件的版本管理功能。

关系数据库:存储 UCD 的管理信息,比如用户信息、部署逻辑信息等。

Browser(浏览器): UCD 用户的主要使用界面,提供应用部署自动化的日常管理界面。

Client(客户端): UCD 提供的命令行,用户可通过命令行来访问 UCD。

Agent(代理):安装在被部署机器上,提供远程执行部署逻辑的能力。

中继服务器(Relay Server):当被部署的环境和 UCD 应用服务器之间有防火墙时,中继服务器作为一个中转实现代理和应用服务器之间的通信。

IBM UrbanCode Deploy 信息模型

为了实现对多应用、多环境的自动化部署,UCD 定义了完善的信息模型。信息模型就是描述了特定领域的信息类型以及相互关系,是对某个特定领域的抽象,也是开发特定领域软件工具的基础。下图是 UCD 所包含的应用部署自动化管理信息模型。

图 3. IBM UCD 信息模型

IBM UCD 信息模型

本文将以 JPetStore 应用为例解释上图的信息模型。JPetStore 是一个基于 Struts 和 iBATIS 技术的网上宠物店应用,该应用的中间件采用 Tomcat,数据库采用 MySQL。

在上图中,表示 A 和 B 之间是包含关系,也就是说如果 A 类型实例不存在,那 A 类型实例所包含的 B 类型实例也不会存在,"*"表示一个 A 类型实例可包含 0 个或多个 B 类型实例。表示
C 和 D 是关联关系,也是说一个 C 类型实例可以关联 0 个或多个 D 类型实例。

应用(Application):针对特定用户,并解决特定业务问题的软件包和数据,比如 JPetStore 就是一个应用。

组件(Component):具有独立功能,并可被复用的一组文件。比如 JPetStore 应用中,可涉及实现网上宠物店应用逻辑的 JPetStore_APP 组件、提供宠物照片的 JPetStore_WEB 组件以及定义数据库的 JPetStore_DB 组件。

版本(Version):一个组件所包含的部署文件的多个版本。比如 JPetStore_APP 组件的 JPetStore.war 文件可以有 1.0,1.1 等多个版本。

版本状态(Version Status):组件版本所对应的质量状态。比如 JPetStore_APP 的 1.1 版本已经通过系统集成测试,则该组件版本的状态可设置为“已通过系统集成测试”。

快 照(Snapshot):一个应用的特定版本,该应用版本关联一组组件版本。比如 JPetStore 应用的 1.1 版本关联了 JPetStore_APP 组件的 1.1 版本、JPetStore_WEB 组件的 1.0 版本以及 JPetStore_DB 组件的 1.0 版本。

步骤(Step):可重用的特定部署任务,比如在把 JPetStore_APP 组件部署到 Tomcat 应用时,“启动 Tomcat 服务器”就是一个步骤。

插件( Plugin):包含一组相关步骤的容器。比如针对 Tomcat 应用的部署,常用的步骤包括“启动 Tomcat 服务器”、“卸载 WAR 包”、“安装 WAR 包”等。这些步骤放在“Tomcat”这个插件容器中。

组 件流程(Component Process):针对特定组件所定义的操作步骤序列,该操作步骤序列引用 Plugin 中定义的步骤。比如针对 JPetStore_APP 组件,可定义安装该组件的“Install APP”流程、卸载该组件的“Uninstall APP”流程。

应 用流程(Application Process):对一个完整应用所定义的操作步骤,比如为部署 JPetStore 应用所定义的应用部署流程“Install Process”,该流程引用了 JPetStore_APP 组件流程“Install APP ”、JPetStore_DB 组件流程“Install DB”和 JPetStore_WEB 组件流程“Install WEB ”。

代理(Agent):部署在一台计算机上的进程,该进程实现部署逻辑在该计算机上的执行。比如 JPetStore 将在两台计算机上部署,则定义的 agent 是“agent101”和“agent102”。

代 理池(Agent Pool):对代理按特定分类标准而进行的分类,比如按代理的用途分可创建“测试服务器”和“生产服务器”代理池,按操作系统类型分可创建 “Windows 服务器”和“LINUX 服务器”。一个代理池可关联多个代理,而一个代理也可以被多个代理池关联。

资源(Resource):在特定代理机上所提供的能力,比如 Tomcat 服务资源,数据库资源,一个代理可包含多个资源。

环境(Environment):针对特定应用以及特定用途所映射的一组资源。比如针对 JPetStore 应用可定义集成测试环境 SIT(System Integration Test)和用户验收测试环境 UAT(User Acceptance Test)。

审批流程(Approval Process):针对特定环境所定义的审批流程,比如把应用部署到 UAT 环境时,需要通过质量保证工程师的审批,则可定义一个审批流程。

环境门(Environment Gate):是指应用在特定环境部署时所需要部署的组件版本必须要满足的条件。比如当应用要部署到 UAT 环境时,所部署的组件版本必须处于“已通过系统集成测试”状态。

此外,UCD 作为一个企业级应用部署自动化平台,有不同用户访问该工具,因此需要定义完善的权限管理模型。下图是 UCD 是提供的权限信息模型。

图 4. IBM UCD 权限信息模型

IBM UCD 权限信息模型

用户(User):访问 UCD 的一个注册用户。

角色(Role):具有一组特定权限的用户类型。比如针对 JPetStore 应用的部署管理,可定义“系统工程师”、“发布工程师”、“部署工程师”和“质量工程师”等角色。

团队(Team):是对 UCD 中所定义的应用部署对象(比如应用、组件等)进行的分类,比如为了确保只有特定人员能访问 JPetStore 应用相关的信息,可创建 JPetStore 团队,然后分配该团队中不同角色所对应的用户。

许可(Permission):是指能进行特定操作的能力,比如“创建资源”就是一个许可。

安全类型(Security Type):一组相关的许可。

组(Group):一组相关的用户,便于快速分配特定角色所对应的用户

抱歉!评论已关闭.