Separation of roles

edit

When you install Elastic Cloud Enterprise on the first host, it is assigned many different runner roles, such as the role of allocator, coordinator, director, and proxy. This role assignment is required to bring up your initial deployments. In a production environment, some of these roles need to be separated, as their loads scale differently and can create conflicting demands when placed on the same hosts. There are also certain security implications that are addressed by separating roles.

Roles that should not be held by the same runner:

  • Allocators and coordinators
  • Allocators and directors
  • Coordinators and proxies

If this separation of roles is not possible, fewer hosts that provide substantial hardware resources with fast SSD storage can be used, but we recommend this setup only for development, test, and small-scale use cases. For example, even if you have only three hosts, sharing roles might be feasible in some cases. To learn more about how such a setup can work, see Example: Create a First Baseline Installation (Small). If SSD-only storage is not feasible, you must separate the ECE management services provided by the coordinators and directors from your proxies and allocators and place them on different hosts that use fast SSD storage.

If you decide to use spinning disks with a small installation, you must not assign the director role to hosts that also hold the allocator role. The inherent latency of disk seek speeds can affect the performance of ZooKeeper running on hosts with the director role, which in turn can affect the stability of your installation. Do not assign the director and the allocator role to the same hosts when using spinning disks, even if this means having to use additional host machines so that you can separate these roles.

Some roles are safe for runners to hold at the same time:

  • Directors and coordinators (the ECE management services)

For an example of how a completed Elastic Cloud Enterprise installation separates these roles, see our Example: A Large Installation with Separate Management Services and Proxies. To learn more about how you can assign roles, see Assign Roles.