跳转至

客户环境MES堆栈组件#

本页列出了凯睿德制造MES堆栈内运行的所有容器,并解释了其用途以及每个容器的具体配置。

Info

可以为属于单个客户的任何基础设施部署多个环境,每个环境都有自己的URL。

graph TD
subgraph Infrastructure Agent
    Squid[Edge Squid Proxy]
    end
subgraph 客户环境
    Edge[边缘前向代理]
    Env[环境管理器]
    UI[用户界面]
    Host主机]
    Help[帮助]
    Grafana[Grafana]
    SecurityPortal[安装门户]
    Traefik[Traefik]
    TraefikForwardAuth[Traefik转发身份验证]
    Bus[消息总线]
    SQL[SQL服务器]
    end
    Traefik --> TraefikForwardAuth
    TraefikForwardAuth --> Traefik
    Traefik --> UI
    Traefik --> Host
    Traefik --> Help
    Traefik --> Grafana
    Traefik --> SecurityPortal
    Traefik --> Bus
    Host -.-> SQL
    SQL -.-> Env
    Host -.-> Env
    UI -.-> Env
    Help -.-> Env
    Grafana -.-> Env
    SecurityPortal -.-> Env
    Bus -.-> Env
    Env --> Squid
    Edge --> Squid

classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Edge,Squid mermaid_entity
class UI,Host,Help,SecurityPortal,Bus,Grafana mermaid_businessdata
class Env,Traefik,Traefik2,TraefikForwardAuth mermaid_entitylinked
class User mermaid_context
class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata
class SQL mermaid_optional

click Edge "#EdgeForwardProxy"
click Traefik "#Traefik"
click TraefikForwardAuth "#TraefikForwardAuth"
click Bus "#MESMessageBus"
click Host "#MESHost"
click Env "#EnvironmentManager"
click SecurityPortal "#SecurityPortal"
click UI "#MESGUI"
click Help "#MESDocumentation"
click Grafana "#Grafana"
click SQL "#SQLServer"

边缘前向代理#

这是您自己的基础架构与外部世界之间的主要连接器,允许您与客户门户进行通信以执行多项操作,其中包括:

  • 下载安装期间环境管理器所需的新组件。
  • 激活许可证。
  • 检索安装日志。

边缘前向代理是负责打开连接并发送连接的组件,它通过与Squid代理共享网络来实现这一点(详细信息请参见Infrastructure Agent,并且只能通过它从您的基础架构与客户门户进行通信,反之亦然。

容器卷中的相关文件夹#

路径 描述
/app/ 应用程序主目录.

Table: Docker的边缘前向代理相关文件夹

Traefik#

管理路由,包括端口分配和重定向。它还平衡和转发代理和外部世界之间的网络流量,并处理证书验证以确保安全连接。更多信息,请参阅https://doc.traefik.io/traefik/ ⧉.

与同时存在于代理和MES堆栈中的边缘前向代理不同,Traefik实例保持独立并与代理中的Squid实例直接通信,Traefik实例也同时存在于代理和MES堆栈中,但具有不同的操作模式。此Traefik实例负责向任何外部请求指示,以便将它们重定向到MES堆栈内正在到达的正确URL路径。

MES堆栈中的每个Traefik实例都可以被视为位于infrastructure agent中的父实例的子实例,从父实例接收指令,并将这些指令输出到运行它们的客户环境。

例如:

  • http://<domain_one>/api -MES堆栈内的Traefik实例将此请求发送到MES堆栈内处理/路径的“domain_one”的容器,在本例中为“UI”。
  • http://<domain_one>/api - MES堆栈内的Traefik实例将此请求发送到MES堆栈内处理“api”路径的“domain_ one”的容器,在本例中,该路径为“host”。
  • http://<domain_two>/help - MES堆栈内的Traefik实例将此请求发送到MES堆栈内处理“help”路径的“domain_two”的容器,在本例中,该路径是文档门户。
graph LR
subgraph 代理
    Traefik[Traefik]
end
subgraph mes_实例_2
    Traefik3[Traefik]
    ui3["UI"]
    api3["Host"]
    help3["文档门户"]
end
subgraph mes_实例_1
    Traefik2[Traefik]
    ui2["UI"]
    api2["Host"]
    help2["文档门户"]
end
Traefik --->|https://mes_instance_one.domain.local/|Traefik2
Traefik --->|https://mes_instance_one.domain.local/api|Traefik2
Traefik --->|https://mes_instance_two.domain.local/help|Traefik3
Traefik2 -.->|/|ui2
Traefik2 -.->|/api|api2
Traefik3 -.->|/help|help3

classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200;
classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden;
classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%;
classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%;
classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%;
classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%;
classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%;
classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5;
classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300;
class Traefik,Traefik2,Traefik3 mermaid_entity
class api2,api3,help2,help3,ui2,ui3 mermaid_businessdata

Info

这些规则以及地址映射到哪些内部容器的配置在Traefik配置文件中定义,可以通过Portainer或其他管理工具进行访问。

Traefik转发身份验证#

通过凯睿德制造安全门户提供身份验证支持,相当于在传统安装中安装和运行的IIS模块。Traefik收到的每个请求都会转移到’Traefik Forward Auth‘,以确定该请求是否具有有效的身份验证。

容器卷中的相关文件夹#

路径 描述
/opt/app/ 应用程序主目录.

Table: 用于Docker的Traefik Forward Auth相关文件夹

环境管理器#

环境管理器作为整个MES堆栈的监管者,并作为所有其他容器依赖的主要信息点进行协调。它执行类似于传统环境的实际安装应用程序的操作,并添加了功能,其中每次启动堆栈时,所有容器都有相同的入口点(一小段可执行代码),用于查询环境管理器的容器,以查看系统是否已安装和运行,以及是否需要为任何特定容器安装所需自定义包。当环境管理器响应来自所有其他容器的查询以指示系统已安装时,其他容器可以安全运行。

sequenceDiagram
    MES堆栈中的容器->>环境管理器: MES是否已安装?
    activate 环境管理器
    环境管理器-->>MES堆栈中的容器: 还没有,正在检查
    环境管理器-->>MES堆栈中的容器: 是的,你可以安全运行
    deactivate 环境管理器
    activate MES堆栈中的容器
    MES堆栈中的容器->>+环境管理器: 有什么我应该知道的自定义组件吗?
    deactivate MES堆栈中的容器
    环境管理器-->>MES堆栈中的容器: 是的,在这儿
    activate 环境管理器
    MES堆栈中的容器->>环境管理器: 好的,在运行主应用程序之前安装
    deactivate 环境管理器

定制包通常存储在由环境管理器绑定的其中一个卷中,并且可以通过它进行访问。

容器卷中的相关文件夹#

路径 描述
/opt/app/ 应用程序主目录.
/opt/packages/ 自定义包位置.
/opt/backups/ 干净安装前的数据库备份位置.
/var/log/cmf/ 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹

Table: Docker的环境管理器相关文件夹

安全门户#

作为身份管理系统的多租户应用程序。有关更多信息,请参阅安全门户网站.

容器卷中的相关文件夹#

路径 描述
/app/ 应用程序主目录.
/var/log/cmf/ 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。

Table: Docker的凯睿德制造MES安全门户相关文件夹

MES主机#

操作凯睿德制造MES服务和管理核心的一组服务,为外部访问公开公共API。

容器卷中的相关文件夹#

路径 描述
/opt/app/ 应用程序主目录.(包括主机配置文件和自定义库)。
/opt/document/ 文件存储位置。
/var/log/cmf/ 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。

Table: Docker的凯睿德制造MES主机相关文件夹

MES GUI#

Web服务器用作凯睿德制造MES的主要视觉入口点。

容器卷中的相关文件夹#

路径 描述
/app/ 应用程序主目录.
/var/log/cmf/ 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。

Table: Docker的凯睿德制造MES GUI相关文件夹

MES 文档#

凯睿德制造MES的全套文档,包括本页。

容器卷中的相关文件夹#

路径 描述
/app/ 应用程序主目录.
/var/log/cmf/ 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。

Table: Docker的凯睿德制造MES文档相关文件夹

MES 消息总线#

一种高性能的发布和订阅消息总线。更多信息,请参阅消息总线.

容器卷中的相关文件夹#

路径 描述
/app/ 应用程序主目录.
/var/log/cmf/ 日志记录位置,与多个容器共享,其中每个容器都有自己的单独文件夹。

Table: Docker的凯睿德制造MES消息总线相关文件夹

Grafana#

Grafana是一个可视化框架,允许您通过小部件和仪表板查询、可视化凯睿德制造MES的指标。

容器卷中的相关文件夹#

路径 描述
/var/lib/grafana/ Grafana主机的共享目录。.

Table: Docker的Grafana相关文件夹

SQL服务器#

此容器可通过DevOps中心选择性安装,其中包含一个SQL Server实例,该实例只能与联机数据库一起使用。它不包括:

  • Reports
  • ODS数据库
  • DWH数据库
  • Analysis Services

Info

这个容器是唯一一个可以配置为对外开放端口的容器。此端口用于通过SQL Server Management Studio访问数据库,SQLServer Management Studio可以通过以下名称访问服务器: 主机_实例名,[端口].

Warning

请注意,机器名和端口之间的字符分隔符是逗号(,),而不是传统的冒号(:)。B

容器卷中的相关文件夹#

路径 描述
/app/ 应用程序主目录.
/opt/backups/ 干净安装前的数据库备份位置(与环境管理器共享)
/var/opt/mssql/data/ MSSQL数据文件

Table: Docker的边缘前向代理相关文件夹