容器在开发流程的许多方面得到了广泛使用,比如开发、测试和部署,它是一种轻量型的虚拟化方法。Docker 是一个在 Linux 上实现基于容器的虚拟化的开放平台,是容器技术的一种流行解决方案。您可能想知道,“我在使用 IBM ODM 开发应用程序时能否使用 Docker ?” 例如,您可能想使用 Docker 快速设置一个干净的 Rule Execution Server,将它用于测试。答案是可以 - 只要您在一个 Docker 容器中安装并配置了 IBM ODM。
在业务策略变更时,花更少时间来记录和测试。 来自 Bluemix 的 Business Rules 服务 通过保持业务逻辑与应用程序逻辑分离,最大限度地减少代码更改。免费试用该服务!
IBM ODM 包含三个主要组件:规则、事件和洞察。您可以在一个托管受支持的第三方应用服务器的 Docker 容器中配置规则组件(Rule Execution Server 和 Decision Center)。事实上,Docker Hub(Docker 镜像的公共注册表)包含一个用于 WebSphere Liberty 服务器的 Docker 镜像,它是一个可用于 IBM ODM 的受支持的应用服务器。您可以根据可用于 WebSphere Liberty 服务器的 Docker 镜像来构建规则组件的 Docker 镜像。
本教程将展示构建一个镜像的详细步骤,可将此作为在 IBM ODM 应用程序开发流程中使用 Docker 的起点。
在编写本文时,Docker Engine 的最新版本是 1.8.1,IBM ODM 的最新版本是 8.7.1。所有步骤都已在一个 Ubuntu 14.04 虚拟机上的这些版本中进行了测试。
回页首
因为 Docker 环境在快速变化,所以请使用 安装在 Ubuntu 上 在线 Docker 文档来了解将 Docker 安装在 Ubuntu 操作系统上的最新操作说明。
回页首
依据 IBM ODM 文档 在 Liberty 配置文件 8.5.5.4 上配置 ,完成以下步骤,在 WebSphere Liberty 上配置 Rule Execution Server 和 Decision Center:
derby.jar
文件作为数据库驱动程序,使用 data.tar.gz
文件作为数据库,二者都包含在 “下载” 部分的code_sample.zip文件中。) Liberty_profile_directory/usr/servers/server_name/apps
。 Liberty_profile_directory/usr/servers/server_name/server.xml
上的服务器配置文件。
为在一个 WebSphere Liberty 服务器上配置的 Rule Execution Server 和 Decision Center 构建 Docker 镜像之前,完成这些步骤。
要在 WebSphere Liberty 上配置 Rule Execution Server 和 Decision Center,需要使用以下文件:
res.war
文件 DecisionService.war
文件 teamserver.war
文件 decisioncenter.war
文件 testing.war
和 DecisionRunner.war
文件 在使用 JBoss, Tomcat, Oracle WebLogic, or WebSphere Liberty Profile 选项安装 IBM ODM V8.7.1 的服务器上,在以下位置找到所需的 WAR 文件:
installation_directory/executionserver/applicationservers/WLP855/res.war
installation_directory/executionserver/applicationservers/WLP855/DecisionService.war
installation_directory/teamserver/applicationservers/WLP855/teamserver.war
installation_directory/teamserver/applicationservers/WLP855/decisioncenter.war
installation_directory/executionserver/applicationservers/WLP855/testing.war
installation_directory/executionserver/applicationservers/WLP855/DecisionRunner.war
本教程使用 Derby 作为 Rule Execution Server 和 Decision Center 的数据库。“下载” 部分的code_sample.zip文件中提供了一个 Derby 数据库驱动程序示例( derby.jar
文件)。
如果没有提供初始数据库,在首次访问 Rule Execution Server 控制台或 Decision Center 控制台时,会为您打开 Installation Setting 向导来初始化该数据库。要在学习本教程时绕过此任务,可以下载初始 Derby 数据库,其中包含 Decision Center 中的一个示例规则项目( data.tar.gz
文件)。请参见 “下载” 部分的code_sample.zip文件。
server.xml
文件是 WebSphere Liberty 中的服务器配置文件。对于 Rule Execution Server 和 Decision Center,可将以下配置包含在 server.xml
文件中:
IBM 知识中心中的 IBM Operational Decision Manager 文档中的以下主题展示了可放入 server.xml
文件中的示例配置:
“下载” 部分的code_sample.zip文件中提供了一个包含所有必要配置的示例 server.xml
配置文件。
要使用 Docker 构建镜像,需要准备一个包含构建该镜像所需的所有指令的 Dockerfile。Dockerfile 是一个文本文档,包含可以在命令行上调用来组装镜像的所有命令。“下载” 部分的code_sample.zip文件中提供了一个示例 Dockerfile。
示例 Dockerfile 的内容类似于下面这个示例:
# ODM 8.7.1 on liberty 8.5.5.5 with derby database # # VERSION 1.0 FROM websphere-liberty:8.5.5 MAINTAINER Ming Li <lmming@cn.ibm.com> # accept license by default ENV LICENSE=accept # Deploy database driver for derby COPY derby.jar /opt/ibm/wlp/usr/shared/resources/derby/ # Init derby database ADD data.tar.gz opt/ibm/wlp/usr/shared/resources/ # Deploy the war files for RES and DC COPY apps /opt/ibm/wlp/usr/servers/defaultServer/apps/ # Update server configuration COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
回页首
所有必要文件都准备好后,即可为 Rule Execution Server 和 Decision Center 构建 Docker 镜像。
构建 Docker 镜像时,Docker 会将您运行这些命令时所在的目录的所有文件转移到 Docker 服务器。因此,您需要创建一个仅包含构建镜像所需的文件的文件夹。
完成以下步骤:
build
)。 build/apps
子文件夹来包含所有 WAR 文件。 build/apps
子文件夹 。 derby.jar
、 data.tar.gz
、 Dockerfile
和 server.xml
复制到 build
文件夹。 build
文件夹的结构然后类似于图 1 中的示例:
图 1. build 文件夹结构示例
在准备好 build
文件夹后,就可以构建 Docker 镜像了。首先,使用下面的命令从 DockerHub 拉取 websphere-liberty
镜像:
docker pull websphere-liberty:8.5.5
然后,将当前目录更改为 build
文件夹,使用下面这个命令构建镜像:
docker build – t odm871 .
按照图 2 中的示例操作。
图 2. 构建 Docker 镜像的示例命令
寻找一条 Successfully built xxxxxx
消息。然后运行下面这个命令:
docker images
我们将会创建一个新的 odm871 镜像,如图 3 所示。
图 3. 示例 Docker 镜像列表
回页首
现在验证 IBM ODM V8.7.1 中的 Rule Execution Server 和 Decision Center 是否已正确配置并在 Docker 容器中正常运行。
首先,使用下面的命令从 odm871 镜像启动一个容器:
docker run – p 9080:9080 – p 9443:9443 odm871
在图 4 中的日志中,可以看到服务器已成功启动。
图 4. 在 Docker 容器中运行 IBM ODM 时的示例日志
然后,完成以下步骤,从一个 Web 浏览器验证 Rule Execution Server:
http://server_address:9080/res
根 URL 进入 res
,并登录到 Rule Execution Server 控制台(用户名: resAdmin
,密码: resAdmin
)。
登录后,Rule Execution Server 控制台将会打开。
如果使用了代码示例中提供的初始数据库,则不需要运行 Installation Settings 向导来再次初始化 Rule Execution Server 的数据库。(但是,在自己的环境中执行这些步骤时,您会注意到,在登录到 Rule Execution Server 后,如果数据库未初始化,则会打开 Installation Settings 向导窗口。)
图 5. Rule Execution Server 诊断结果
点击查看大图
关闭 [x]
完成以下步骤,从 Web 服务器验证 Decision Center:
http://server_address:9080/teamserver
根 URL 进入 teamserver
来打开 Decision Center Enterprise 控制台。然后登录到控制台(用户名: rtsAdmin ,密码: rtsAdmin )。
您会看到一个类似图 6 中的示例的 Decision Center。
图 6. Decision Center Enterprise 控制台
点击查看大图
关闭 [x]
图 7. Decision Center 诊断结果
http://server_address:9080/decisioncenter
根 URL 进入 decisioncenter
来打开 Decision Center Business 控制台。然后登录到 Decision Center Business 控制台(用户名: rtsAdmin ,密码: rtsAdmin )。
您会看到一个类似图 8 中的示例的窗口。
图 8. Decision Center Business 控制台
点击查看大图
关闭 [x]
回页首
本教程介绍了如何构建一个 Docker 镜像来将用于 IBM ODM V8.7.1 的 Rule Execution Server 和 Decision Center 安装在 WebSphere Liberty 服务器上。您学习了如何在一个来自 Docker 镜像的容器中运行 Rule Execution Server 和 Decision Center。
本教程中的示例是在 IBM ODM 应用程序开发流程中使用 Docker 的起点。您可以使用一个类似的镜像来设置一个干净的 Rule Execution Server 服务器用于测试或开发。或者,您可以根据它来构建您自己的自定义 Docker 镜像。
您可以应用在本教程中学到的技术来为另一个服务器(比如 Tomcat 或 JBoss)上的 Rule Execution Server 和 Decision Center 构建您自己的 Docker 镜像,或使用另一个支持的数据库(比如 DB2 或 Oracle)构建您自己的 Docker 镜像。
感谢 Jian Feng Cai、Guang Ying Yuan 和 Tim Poultney 的审阅、贡献和评论。
回页首
描述 | 名字 | 大小 |
---|---|---|
代码示例 | code_sample.zip | 4016KB |