第 1 章 Red Hat OpenShift Container Platform 上的 Red Hat Process Automation Manager 概述

您可以将 Red Hat Process Automation Manager 部署到 Red Hat OpenShift Container Platform 环境中。

在这个解决方案中,Red Hat Process Automation Manager 组件被部署为单独的 OpenShift pod。您可以单独扩展和缩减每个 pod,以根据特定组件的要求提供尽量少或任意数量的容器。您可以使用标准 OpenShift 方法管理容器集并平衡负载。

OpenShift 中提供了以下 Red Hat Process Automation Manager 的主要组件:

  • KIE 服务器(也称为 Execution Server )是运行决策服务、进程应用程序和其他可部署资产(称为 服务)的基础架构元素。服务的所有逻辑都在执行服务器上运行。

    KIE 服务器通常需要数据库服务器。您可以在另一个 OpenShift pod 中提供数据库服务器,或者在 OpenShift 上配置执行服务器以使用任何其他数据库服务器。或者,KIE 服务器可以使用 H2 数据库;在这种情况下,您无法扩展 pod。

    在某些模板中,您可以扩展 KIE 服务器 pod,以根据需要提供尽可能多的副本,在同一主机或不同的主机上运行。当您扩展或缩减 pod 时,其所有副本都使用相同的数据库服务器并运行相同的服务。OpenShift 提供负载平衡和请求,可由任何容器集处理。

    您可以部署单独的 KIE Server pod 来运行不同的服务组。该 pod 也可以扩展或缩减。您可以根据需要拥有任意数量的单独的复制 KIE 服务器 pod。

  • Business Central 是用于编写服务的基于 Web 的互动环境。它还提供管理和监控控制台。您可以使用 Business Central 开发服务并将其部署到 KIE 服务器中。您还可以使用 Business Central 来监控进程的执行。

    Business Central 是一个集中式应用程序。但是,您可以将它配置为高可用性,其中多个 pod 运行并共享相同的数据。

    Business Central 包括一个 Git 存储库,其中包含您开发的服务的源。它还包含一个内置的 Maven 存储库。根据配置,Business Central 可以将编译的服务(KJAR 文件)放在内置 Maven 存储库中,或者(如果已配置)放入外部 Maven 存储库中。

  • Business Central Monitoring 是一个基于 Web 的管理和监控控制台。它可以管理服务到 KIE 服务器,并提供监控信息,但不包括编写的功能。您可以使用此组件来管理暂存和生产环境。
  • Smart Router 是 KIE 服务器与与其交互的其他组件之间的可选层。当您的环境包含在不同 KIE 服务器上运行的许多服务时,智能路由器为所有客户端应用程序提供单一端点。客户端应用程序可以发出需要任何服务的 REST API 调用。智能路由器自动调用可处理特定请求的 KIE 服务器。

您可以将这些组件和其他组件设置为 OpenShift 中的各种环境配置。

1.1. 编写环境的架构

在 Red Hat Process Automation Manager 中,Business Central 组件提供了一个基于 Web 的互动用户界面,用于编写服务。KIE 服务器组件运行该服务。

KIE 服务器使用数据库服务器来存储进程服务的状态。

您还可以使用 Business Central 将服务部署到 KIE 服务器中。您可以使用多个 KIE 服务器来运行不同的服务,并控制来自同一 Business Central 的服务器。

单编写环境

在单一编写环境中,只有一个 Business Central 实例正在运行。多个用户可以同时访问其 Web 界面,但性能可能会受限制,且没有故障转移功能。

Business Central 包括一个内置的 Maven 存储库,它存储您开发的服务(KJAR 文件/artifacts)的构建版本。您可以使用持续集成和持续部署(CICD)工具从存储库中检索这些工件,并根据需要移动它们。

Business Central 将源代码保存在内置 Git 存储库中,存储在 .niogit 目录中。它使用内置的索引机制来索引您的服务中的资产。

Business Central 将持久性存储用于 Maven 存储库和 Git 存储库。

默认情况下,单个编写环境包含一个 KIE 服务器。此 KIE 服务器使用内置的 H2 数据库引擎来存储进程服务的状态。

单个编写环境可以使用控制器策略。Business Central 包括 Controller,这是可以管理 KIE 服务器的组件。当您将 KIE 服务器配置为连接到 Business Central 时,KIE 服务器使用 REST API 连接到 Controller。此连接将打开持久的 WebSocket。在使用控制器策略的 OpenShift 部署中,每个 KIE 服务器都最初配置为连接到 Business Central Controller。

当您使用 Business Central 用户界面在 KIE 服务器上部署和管理服务时,KIE 服务器会通过 Controller 连接 WebSocket 接收请求。要部署服务,KIE 服务器从作为 Business Central 一部分的 Maven 存储库请求必要的工件。

客户端应用使用 REST API 来使用 KIE 服务器上运行的服务。

图 1.1. 单个编写环境的构架图

集群 KIE 服务器并使用多个 KIE 服务器

您可以扩展 KIE Server pod 以运行集群的 KIE 服务器环境。要扩展 KIE 服务器,您必须确保它在单独的 pod 或外部数据库服务器中使用数据库服务器,而不是内置的 H2 数据库引擎。

在集群部署中,KIE 服务器的几个实例运行相同的服务。这些服务器可以使用相同的服务器 ID 连接到 Business Central Controller,以便可以从控制器接收相同的请求。Red Hat OpenShift Container Platform 在服务器之间提供负载均衡。在集群 KIE 服务器上运行的决策服务和业务优化器服务必须无状态,因为来自同一客户端的请求可能由不同的实例处理。

您还可以部署几个独立的 KIE 服务器来运行不同的服务。在这种情况下,服务器使用不同的服务器 ID 值连接到 Business Central Controller。您可以使用 Business Central UI 将服务部署到每台服务器。

智能路由器

可选的智能路由器组件在客户端应用程序和 KIE 服务器之间提供层。如果您使用多个独立的 KIE 服务器,这很有用。

客户端应用程序可以使用在不同 KIE 服务器上运行的服务,但始终连接到智能路由器。智能路由器会自动将请求传递给运行所需服务的 KIE 服务器。智能路由器还启用对服务版本的管理,并提供额外的负载平衡层。

高可用性编写环境

在高可用性(HA)编写环境中,Emer Central 容器集已扩展,因此运行了几个 Business Central 实例。Red Hat OpenShift Container Platform 为用户请求提供负载均衡。此环境为多个用户提供最佳性能,并支持故障转移。

Business Central 的每个实例都包含构建的工件的 Maven 存储库,并使用 .niogit Git 存储库进行源代码。实例将共享持久性存储用于存储库。此存储需要具有 ReadWriteMany 访问权限的持久性卷。

Red Hat DataGrid 实例提供在 Business Central 中开发的所有项目和资产的索引。

Red Hat AMQ 实例在所有 Business Central 实例之间传播 Java CDI 消息。例如,当创建新项目时,或者在其中一个实例上锁定或修改资产时,此信息会立即反映在所有其他实例中。

控制器策略不适用于集群部署。在 OpenShift 部署中,高可用性的 Business Central 必须使用 OpenShift 启动策略 来管理 KIE 服务器。

每个 KIE 服务器部署(可以扩展)创建一个反映其当前状态的 ConfigMap。Business Central 通过读取其 ConfigMap 来发现所有 KIE 服务器。

当用户请求 KIE 服务器配置中的更改时(例如,部署或取消部署服务),Business Central 会启动与 KIE 服务器的连接并发送 REST API 请求。KIE 服务器会更改 ConfigMap 以反应新的配置状态,然后触发自己的重新部署,以便重新部署所有实例并反映新配置。

您可以在 OpenShift 环境中部署几个独立的 KIE 服务器。每个 KIE 服务器都有单独的 ConfigMap,以及必要的配置。您可以单独扩展每个 KIE 服务器。

您可以在 OpenShift 部署中包含智能路由器。

图 1.2. 高可用性编写环境的架构图