Skip to content

Update ece-architecture.md - Adding a container <-> ECE host role mapping table #1369

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions deploy-manage/deploy/cloud-enterprise/ece-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,24 @@ Services are deployed as Docker containers, which simplifies the operational eff

Docker containers communicate securely with one another through Transport Layer Security, provided by [Stunnel](https://www.stunnel.org/) (as not all of the services or components support TLS natively). Tunneling all traffic between containers makes sure that it is not possible to eavesdrop, even when someone else has access to the underlying cloud or network infrastructure.

## ECE service containers per host role(s) [ece-service-containers]

Each Elastic Cloud Enterprise service runs as a dedicated Docker container. These containers are automatically deployed based on the roles assigned to each ECE host.

| Container | Roles | Description |
|---|---|---|
| `frc-beats-runners-beats-runner` | All roles | Collects metrics from local containers for monitoring and health checks. |
| `frc-client-forwarders-client-forwarder` | All roles | Manages communication between hosts and ZooKeeper. |
| `frc-runners-runner` | All roles | Runs on every ECE host and provides a supervisor service to deploy and manage containers according to their defined roles, ensuring they are online and healthy. |
| `frc-services-forwarders-services-forwarder` | All roles | Routes internal service data across the ECE platform. |
| `frc-allocator-metricbeats-allocator-metricbeat` | Allocator | Collects allocator metrics via Beats. |
| `frc-allocators-allocator` | Allocator | Manages container lifecycle for Elasticsearch and Kibana; reports host capacity to ZooKeeper. |
| `frc-container-task-services-container-task-service` | Allocator | Supports autoscaling and tracks feature usage. |
| `frc-admin-consoles-admin-console` | Controller | Backend service for the ECE UI; handles API requests and coordinates with ZooKeeper, Elasticsearch, logging, and security services. |
| `frc-cloud-uis-cloud-ui` | Controller | Web frontend for the ECE UI, served to users in the browser. |
| `frc-constructors-constructor` | Controller | Schedules and coordinates deployment changes through ZooKeeper; assigns instances to allocators and balances zones. |
| `frc-blueprints-blueprint` | Director | Coordinates container startup by providing configuration data to runners based on their role and token. |
| `frc-directors-director` | Director | Manages ZooKeeper and internal certificates; maintains Stunnel and quorum. |
| `frc-zookeeper-servers-zookeeper` | Director | Consistent distributed store used to track ECE state and coordinate communication between services. |
| `frc-proxies-proxyv2` | Proxy | Routes user traffic; uses ZooKeeper to map deployment IDs to cluster nodes. |
| `frc-proxies-route-server` | Proxy | Manages internal routing and port mapping for cluster access. |
Loading