为了提高竞争力,公司必须比以前更快地构建,部署和扩展应用程序。 通过采用持续构建和DevOps方法,应用程序架构的趋势将从单片模型转变为可协同工作,可能由不同团队开发和运营的微服务组装。
Docker®是一种流行的开源技术,用于将微服务开发和部署为微容器。 与直接在操作系统或虚拟机管理程序软件上进行部署相比,每个微容器都可以通过加速部署来独立运行您的微服务。
借助IBM®Operational Decision Manager(ODM),组织中的所有业务线都可以捕获和自动化其决策专业知识,以将其应用于大量数据。 IT和业务用户都可以管理组织内的操作系统使用的业务决策逻辑。 IBM ODM Standard涵盖了业务策略(作为决策服务实现)的所有创作,测试,模拟,部署和操作任务。
您可能会想:“在部署IBM ODM时我们可以利用Docker技术吗?” 例如,您可能有兴趣将IBM ODM Decision Center和Decision Server部署为微型容器,以敏捷和自动化的方式支持您的DevOps生命周期。 更准确地说,您可以从简化和加速的部署中受益,以用于团队的开发和测试阶段。 如果您通过模拟,预生产和生产阶段来重现IBM ODM环境,则部署流程中的可重复性将使您受益。
本教程重点介绍如何准备Docker映像,实例化微容器,以及将其组成以构建IBM ODM Standard拓扑,包括决策中心和决策服务器规则(Rule Execution Server)组件。 决策服务器规则组件由三个Web应用程序组成:
- Rule Execution Server控制台,用于管理打包为RuleApp和规则集存档的可执行决策服务。
- 托管透明决策服务,以SOAP或表示状态传输(REST)样式将决策服务公开为Web服务。
- Decision Runner,用于运行测试套件和模拟工作负载的后端应用程序。
教程步骤描述了如何使以下拓扑生效:
- 用于评估产品的独立拓扑。 IBM ODM Decision Center和Decision Server Rules应用程序及其数据库被组合到单个docker映像中。
- 一种非集群拓扑,首选用于开发。 IBM ODM Decision Center和Decision Server Rules应用程序作为一组非集群容器单独运行。
- 预生产和生产环境首选的集群拓扑。 决策中心和决策服务器规则应用程序分布在不同的微型容器中。 除在独立微型服务器上运行的Rule Execution Server控制台外,所有应用程序均已集群。
Decision Center和Decision Server都依赖关系数据库在开发和运行期间存储资产。 为了方便起见,非集群拓扑和集群拓扑共享一个Derby Network服务器(称为dbserver
)。 独立拓扑将嵌入其Derby数据库。
请注意,Docker Hub(Docker映像的公共注册表)包括IBM WebSphere Liberty服务器的Docker映像,该服务器是IBM ODM支持的应用程序服务器。 本教程说明如何利用Liberty Docker映像为IBM ODM Decision Center和Decision Server Rules制作自己的Docker映像。 使用这些Docker映像,您可以创建任何IBM ODM拓扑,以在决策自动化的整个生命周期中满足您的需求。
Docker基础知识和术语
要了解本教程中的Docker术语,请记住以下定义:
- Docker映像是存储在Docker Hub中的容器的只读快照,可用作构建容器的模板。
- Docker容器是应用程序服务所在或传输的标准单元。
- Docker集线器或Docker注册表存储,分发和共享容器映像。
- Docker引擎是一个创建,运送和运行应用程序容器的程序。 它可以在本地或私有云或公共云中的任何物理和虚拟机或服务器上运行,并且包括命令行客户端。
- Docker Compose是用于定义和运行多容器Docker应用程序的工具。 通过Compose,您可以使用Compose描述符文件来配置应用程序的服务。 然后,使用一个命令,从您的配置中创建并启动所有微服务。
构建IBM ODM Standard拓扑所需的内容
在本教程中,所有步骤均在Mac OS X和Ubuntu 14.04操作系统上使用以下版本进行了测试:
- IBM ODM V8.9.0.1
- Docker引擎17.03.01
- Docker撰写1.11.2
本教程适用于IBM ODM Standard V8.9.0.1和更早的IBM ODM V8.7.0。
本教程的源代码可在Github上找到,网址为github.com/lgrateau/odm-ondocker 。
您必须在本地开发计算机上安装IBM ODM。
您可以决定分别运行IBM ODM Decision Server和IBM ODM Decision Center。 将两个部分安装在一起不是强制性的。
要创建IBM ODM Docker映像,您需要安装IBM ODM的以下部分之一:
- 决策中心( WebSphere Liberty Profile选项)
- 决策服务器规则( WebSphere Liberty Profile选项)
确保安装以下Web存档(WAR)文件:
- 包含Rule Execution Server控制台的
res.war
文件 - 包含托管的透明决策服务的
DecisionService.war
文件 - 包含企业控制台的
teamserver.war
文件 - 包含业务控制台的
decisioncenter.war
文件 - 用于测试和模拟功能的
DecisionRunner.war
文件
在安装了带有WebSphere Liberty Profile选项的IBM ODM V8.8.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/DecisionRunner.war
步骤1.安装Docker材料
要从Git版本控制系统安装Docker资料,请完成以下步骤:
- 获取示例代码:IBM ODM安装目录中的
git clone https://github.com/ODMDev/odm-ondocker
。 - 将
odm-ondocker/resources/.dockerignore
文件复制到IBM ODM安装目录中。查找类似于以下示例的布局:
该目录包括以下文件:
-
components /Dockerfile
,它描述了如何构建Docker镜像。 -
odm-standalone.yml
,它描述如何配置独立拓扑。 -
docker-compose.yml
,它描述了如何协调开发拓扑。 -
odm-cluster.yml
,它描述如何编排集群拓扑。
-
- 验证Docker Engine和Docker Compose是否正在运行。
打开命令提示符并运行以下两个操作:
> docker -–version Docker version 1.12.3 > docker-compose version docker-compose version 1.8.1
现在您可以构建并运行Docker映像了。
步骤2.运行IBM ODM独立拓扑
要运行用于开发和评估的独立拓扑,请完成以下步骤:
- 在启用Docker环境的情况下打开命令行。
- 转到
installation_directory / odm-ondocker_directory
- 运行
$ docker-compose -f odm-standalone.yml up
命令。
该命令将构建,创建并运行一个包含以下组件的Docker容器:
- Derby嵌入式数据库服务器
- 决策服务器运行时环境
- 决策服务器控制台
- Decision Runner应用程序
- 决策中心
如果尚未构建Docker容器,则Docker Compose会构建并运行它。
您可以使用以下命令检查容器状态: docker-compose ps
。 查找列出了运行odmdocker/standalone:8.9.0
容器的结果。
下表列出了每个组件的URL,用户名和密码:
零件 | 网址 | 用户名和密码 |
---|---|---|
决策中心 | http:// localhost :9080/decisioncenter/t/library | rtsAdmin / rtsAdmin |
决策服务器控制台 | http:// localhost :9080/res | resAdmin / resAdmin |
决策服务器运行服务 | http:// localhost :9080/DecisionService/ | 不需要用户名或密码。 |
Decision Runner应用程序 | http:// localhost :9080/DecisionRunner/ | 不需要用户名或密码。 |
步骤3.运行IBM ODM非集群拓扑
要为开发运行非集群拓扑,请完成以下步骤:
- 在启用Docker环境的情况下打开命令行。
- 转到
installation_directory / docker-compose directory
- 运行
$ docker-compose up
命令。如果仅安装了Decision Server,请运行
Docker-compose up decisionserverruntime
Decisionserverruntime命令。如果仅安装了Decision Center,请运行
Docker-compose up decisioncenter
Decisioncenter命令。
此命令将构建,创建并运行五个Docker容器:
- Derby Network数据库服务器的容器
- Decision Server运行时环境的容器
- Decision Server控制台的容器
- Decision Runner应用程序的容器
- 决策中心的容器
如果尚未构建Docker容器,则Docker Compose会构建并运行它。
您也只能启动其中一个组件。 例如: docker-compose up decisioncenter
Decisioncenter启动Decision Center及其依赖项,包括dbserver
Derby Network服务器。
以下屏幕截图显示了构建容器时的日志:
步骤4.验证Docker映像
现在,使用以下屏幕截图验证IBM ODM V8.8.1或IBM ODM V8.9.X中的Rule Execution Server和Decision Center是否已正确配置并在Docker容器中正常运行。
您可以使用以下命令检查容器状态:docker-compose ps。 以下屏幕截图显示了正在运行的容器的列表。
现在,您可以使用IBM ODM的不同部分,如下图所示。
请参阅以下URL凭据列表:
零件 | 网址 | 用户名和密码 |
---|---|---|
决策中心 | http:// localhost :9060/decisioncenter/t/library | rtsAdmin / rtsAdmin |
决策服务器控制台 | http:// localhost :9080/res | resAdmin / resAdmin |
决策服务器运行服务 | http:// localhost :9090/DecisionService/ | 不需要用户名或密码。 |
Decision Runner应用程序 | http:// localhost :9070/DecisionRunner/ | 不需要用户名或密码。 |
dbserver
Derby Network服务器提供了示例数据。 如果您希望数据库中没有样本数据,请从撰写文件中删除以下几行,如以下屏幕截图所示:
最后,运行compose命令停止拓扑: docker-compose stop
。
步骤5.运行IBM ODM Standard集群拓扑
Docker映像是通用映像,可以在集群环境或非集群环境中使用。
运行compose命令: docker-compose -f odm-cluster.yml up
现在,您具有以下拓扑:
docker-compose
命令实例化六个Docker容器:
- Derby Network数据库服务器的容器
- 负载均衡器高可用性代理服务器的容器
- Decision Server运行时环境的容器
- Decision Server控制台的容器
- 决策中心的容器
- Decision Runner应用程序的容器
如果您决定只运行环境的决策服务器部分,请运行以下命令:
docker-compose -f odm-cluster.yml up decisionserverruntime
您可以使用以下URL访问该应用程序:
零件 | 网址 | 用户名和密码 |
---|---|---|
决策中心 | http:// localhost :9060/decisioncenter/t/library | rtsAdmin / rtsAdmin |
负载均衡器统计 | http:// localhost :1936/ | stats / stats |
决策服务器控制台 | http:// localhost :9080/res | resAdmin / resAdmin |
决策服务器运行时 | http:// localhost /DecisionService/ | 不需要用户名或密码。 |
决策亚军 | http:// localhost :9070/DecisionRunner/ | 不需要用户名或密码。 |
要将Decision Server运行时成员添加到集群,请运行以下命令:
docker-compose -f odm-cluster.yml scale decisionserverruntime=2
您应该看到Rule Execution Server控制台附带了两个运行时环境。 负载均衡器配置了循环算法,这是默认的负载均衡逻辑,它将新请求分派到循环列表中的下一个集群成员。
要检查群集的Decision Server拓扑,请完成以下步骤:
- 在
http:// localhost :9080/res
打开Rule Execution Server控制台(使用以下用户名和密码:resAdmin
/resAdmin
) - 在
http:// localhost /DecisionService/run.jsp?path=/miniloan/1.0/miniloan/1.0&trace=false&type=WADL&kind=native
打开REST测试表单 - 单击执行请求按钮两次。 (您启动两个运行时环境。)
- 单击服务器信息选项卡。 您应该看到两个执行单元,如以下屏幕截图所示。
结论
在本教程中,您学习了如何为IBM ODM Standard构建可重用的Docker映像,以及如何将Decision Center和Decision Server Rules实例化为微容器。 您学习了如何组成独立的,非集群的和集群的IBM ODM拓扑。 您可以自定义Docker材料,以适应您的公司和下一个项目要求,从而在DevOps生命周期中受益于IBM ODM决策自动化和Docker部署优势。
致谢
作者要感谢Gael Crova审阅了本教程。
翻译自: https://www.ibm.com/developerworks/library/mw-1612-grateau-trs/1612-grateau.html