Tune automation controller to improve performance
Tune your automation controller to optimize performance and scalability. When planning your workload, ensure that you identify your performance and scaling needs, adjust for any limitations, and monitor your deployment.
Automation controller is a distributed system with many components that you can tune, including the following:
- Task system in charge of scheduling jobs
- Control Plane in charge of controlling jobs and processing output
- Execution plane where jobs run
- Web server in charge of serving the API
- WebSocket system that serve and broadcast WebSocket connections and data
- Database used by many components
Configure WebSocket load balancing Copy linkLink copied!
You can configure automation controller to align the WebSocket configuration with your nginx or load balancer configuration.
Automation controller nodes are interconnected through WebSockets to distribute all WebSocket-emitted messages throughout your system. This configuration setup enables any browser client WebsSocket to subscribe to any job that might be running on any automation controller node. WebSocket clients are not routed to specific automation controller nodes. Instead, any automation controller node can handle any WebSocket request and each automation controller node must know about all WebSocket messages destined for all clients.
You can configure WebSockets at /etc/tower/conf.d/websocket_config.py in all of your automation controller nodes and the changes become effective after the service restarts.
Automation controller automatically handles discovery of other automation controller nodes through the Instance record in the database.
Your automation controller nodes are designed to broadcast WebSocket traffic across a private, trusted subnet (and not the open Internet). Therefore, if you turn off HTTPS for WebSocket broadcasting, the WebSocket traffic, composed mostly of Ansible Playbook stdout, is sent unencrypted between automation controller nodes.
Configure automatic discovery of other automation controller nodes Copy linkLink copied!
You can configure WebsSocket connections to enable automation controller to automatically handle discovery of other automation controller nodes through the Instance record in the database.