Skip to content

MES Container Stack#

Critical Manufacturing MES can be deployed in several different environments and strategies, both on-premises and on a cloud platform. The installation on a containerized environment pulls together a number of different containers that interact with each other and serve specific purposes. This section describes the usage of each of those containers and allows you to understand and manage the building blocks of the application.

The following diagram shows the core components of the Critical Manufacturing MES when deployed in a containerized environment. For the complete list, including the Data Platform, Connect IoT, and Generative AI components, see MES Stack Components:

graph TD
subgraph Customer Environment
    UI[UI]
    Host[Host]
    Help[Project Help]
    Grafana[Grafana]
    Postgres[PostgreSQL]
    IoTEventProcessor[IoT Event Processor]
    SecurityPortal[Security Portal]
    Traefik[Traefik]
    TraefikForwardAuth[Traefik Forward Auth]
    Bus[MessageBus]
    SQL[SQL Server]
    Env[Environment Manager]
    LBOGenerator[LBO Generator]
    MESScheduler[MES Scheduler]
    end
subgraph Required Dependencies
    ClickHouse[ClickHouse]
    Kafka[Kafka]
    Storage[S3-compatible Storage]
    end
subgraph Customer Portal
    EdgePortal[DevOps Center]
    end
subgraph Observability Stack
    Observability[Observability]
    end
subgraph Infrastructure Agent
    InfrastructureAgent[Infrastructure Agent]
    end
    IngressController[Ingress Controller]
    Traefik --> TraefikForwardAuth
    TraefikForwardAuth --> SecurityPortal
    Traefik --> UI
    Traefik --> Host
    Traefik --> Help
    Traefik --> Grafana
    Traefik --> SecurityPortal
    Traefik --> Bus
    Traefik --> LBOGenerator
    Traefik --> Env
    Host -.-> SQL
    SQL -.-> Env
    Host -.-> Env
    UI -.-> Env
    Help -.-> Env
    Grafana -.-> Env
    Grafana -.-> Postgres
    Grafana -.-> ClickHouse
    Host -.-> Storage
    Host -.-> Kafka
    IoTEventProcessor -.-> Kafka
    SecurityPortal -.-> Env
    Bus -.-> Env
    LBOGenerator -.-> Env
    MESScheduler -.-> Env
    Env -.-> EdgePortal
    InfrastructureAgent --> Env
    InfrastructureAgent -.-> EdgePortal
    User[MES User] --> IngressController
    IngressController --> Traefik
    Traefik -->|telemetry| Observability

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 Observability,InfrastructureAgent,EdgePortal,IngressController mermaid_entity
class UI,Host,SecurityPortal,Bus,Grafana,LBOGenerator,MESScheduler mermaid_businessdata
class Env,Traefik,TraefikForwardAuth mermaid_entitylinked
class User mermaid_context
class SQL,Help mermaid_optional

click Traefik "messtackcomponents/#traefik"
click TraefikForwardAuth "messtackcomponents/#traefik-forward-auth"
click Bus "messtackcomponents/#mes-message-bus"
click Host "messtackcomponents/#mes-host"
click Env "messtackcomponents/#environment-manager"
click SecurityPortal "messtackcomponents/#security-portal"
click UI "messtackcomponents/#mes-gui"
click Help "messtackcomponents/#project-help"
click Grafana "messtackcomponents/#grafana"
click SQL "messtackcomponents/#sql-server"
click LBOGenerator "messtackcomponents/#lbo-generator"
click MESScheduler "messtackcomponents/#mes-scheduler"
click Observability "observabilitycomponents/"
click InfrastructureAgent "https://portal.criticalmanufacturing.com/Help/devops-center/infrastructure-agent/"

ClickHouse, Kafka, and S3-compatible storage are required by every environment. Staging and production environments must use external services, while development and test environments can run them inside the cluster.

This section is divided into several topics:

  • Infrastructure Agent Components ↗ - Information on the Infrastructure Agent, responsible for the remote deployments of Critical Manufacturing MES and their connection to the DevOps Center.
  • MES Stack Components - Information on the components of a customer environment containerized stack of the Critical Manufacturing MES.
  • Observability Components - Information on the components of the Observability stack.
  • Environment Variables - Information about the environment variables used by the above containerized stack components.

For information on how to install the container stack described in these pages, see also DevOps Center Documentation ↗ in the Critical Manufacturing Customer Portal.