Chapter 4. Horizontal Scaling in Red Hat Ansible Automation Platform
You can set up multi-node deployments for components across Ansible Automation Platform. Whether you require horizontal scaling for Automation Execution, Automation Decisions, or automation mesh, you can scale your deployments based on your organization’s needs.
4.1. Horizontal scaling in Event-Driven Ansible controller
With Event-Driven Ansible controller, you can set up horizontal scaling for your events automation. This multi-node deployment enables you to define as many nodes as you prefer during the installation process. You can also increase or decrease the number of nodes at any time according to your organizational needs.
The following node types are used in this deployment:
- API node type
- Responds to the HTTP REST API of Event-Driven Ansible controller.
- Worker node type
- Runs an Event-Driven Ansible worker, which is the component of Event-Driven Ansible that not only manages projects and activations, but also executes the activations themselves.
- Hybrid node type
- Is a combination of the API node and the worker node.
The following example shows how you can set up an inventory file for horizontal scaling of Event-Driven Ansible controller on Red Hat Enterprise Linux VMs using the host group name [automationedacontroller]
and the node type variable eda_node_type
:
[automationedacontroller] 3.88.116.111 routable_hostname=automationedacontroller-api.example.com eda_node_type=api # worker node 3.88.116.112 routable_hostname=automationedacontroller-api.example.com eda_node_type=worker
4.1.1. Sizing and scaling guidelines
API nodes process user requests (interactions with the UI or API) while worker nodes process the activations and other background tasks required for Event-Driven Ansible to function properly. The number of API nodes you require correlates to the desired number of users of the application and the number of worker nodes correlates to the desired number of activations you want to run.
Since activations are variable and controlled by worker nodes, the supported approach for scaling is to use separate API and worker nodes instead of hybrid nodes due to the efficient allocation of hardware resources by worker nodes. By separating the nodes, you can scale each type independently based on specific needs, leading to better resource utilization and cost efficiency.
An example of an instance in which you might consider scaling up your node deployment is when you want to deploy Event-Driven Ansible for a small group of users who will run a large number of activations. In this case, one API node is adequate, but if you require more, you can scale up to three additional worker nodes.
To set up a multi-node deployment, follow the procedure in Setting up horizontal scaling for Event-Driven Ansible controller.
4.1.2. Setting up horizontal scaling for Event-Driven Ansible controller
To scale up (add more nodes) or scale down (remove nodes), you must update the content of the inventory to add or remove nodes and rerun the installer.
Procedure
Update the inventory to add two more worker nodes:
[automationedacontroller] 3.88.116.111 routable_hostname=automationedacontroller-api.example.com eda_node_type=api 3.88.116.112 routable_hostname=automationedacontroller-api.example.com eda_node_type=worker # two more worker nodes 3.88.116.113 routable_hostname=automationedacontroller-api.example.com eda_node_type=worker 3.88.116.114 routable_hostname=automationedacontroller-api.example.com eda_node_type=worker
- Re-run the installer.