Chapter 3. Caching and queueing system
Redis provides centralized caching and queueing for Ansible Automation Platform 2.5 components. This in-memory system stores event queues, session data, and tokens to deliver improved performance, reliability, and data security.
In Ansible Automation Platform 2.5, Redis (REmote DIctionary Server) is used as the caching and queueing system.
3.1. Overview of the Redis cache and queueing system Copy linkLink copied to clipboard!
Redis is an open source, in-memory, NoSQL key/value store used primarily as an application cache and lightweight message broker, which stores event queues, session data, and tokens to deliver improved performance, reliability, and data security.
platform gateway and Event-Driven Ansible use Centralized Redis. Automation controller and automation hub have their own instances of Redis.
This cache and queue system stores data in memory, rather than on a disk or solid-state drive (SSD), which helps deliver speed, reliability, and performance. Secure communication with the cache and queue system through Transport Layer Security (TLS) encryption and authentication protects your data.
| Component |
|---|
| Data types cached |
| Platform gateway |
| Settings, Session Information, JSON Web Tokens |
| Event-Driven Ansible server |
| Event queues |
The data in Redis from the platform gateway and Event-Driven Ansible are partitioned. Neither service can access the other service’s data.
3.2. Centralized Redis Copy linkLink copied to clipboard!
Redis provides fast, in-memory caching and session management for Ansible Automation Platform components, improving performance and enabling scaling.
Ansible Automation Platform offers a centralized Redis instance in both standalone and clustered topologies.
3.3. Clustered Redis Copy linkLink copied to clipboard!
With clustered Redis, data is automatically partitioned over multiple nodes to provide performance stability and nodes are assigned as replicas to provide reliability. Clustered Redis, shared between the platform gateway and Event-Driven Ansible, is provided by default when installing Ansible Automation Platform in containerized and operator-based deployments.
A Redis high availability (HA) compatible deployment require 6 VMs. In RPM deployments, Redis can be colocated on each Ansible Automation Platform component VM except for automation controller, execution nodes, or the PostgreSQL database. In containerized deployments, Redis can be colocated on any Ansible Automation Platform component VMs of your choice except for execution nodes or the PostgreSQL database. See Tested deployment models for the opinionated deployment options available.
A cluster has three primary nodes and each primary node has a replica node.
If a primary instance becomes unavailable due to failures, the other primary nodes will initiate a failover state to promote a replica node to a primary node.
The benefits of deploying clustered Redis over standalone Redis include the following:
- Data is automatically split across many nodes.
- Data can be dynamically adjusted.
- Automatic failover of the primary nodes initiates during system failures.
For more information about scalability with Redis, see Scale with Redis Cluster in the Redis product documentation.
For more information about deploying Ansible Automation Platform with clustered Redis, see the RPM installation, Containerized installation, and Installing on OpenShift Container Platform guides.
Disclaimer: Links contained in this information to external website(s) are provided for convenience only. Red Hat has not reviewed the links and is not responsible for the content or its availability. The inclusion of any link to an external website does not imply endorsement by Red Hat of the website or their entities, products or services. You agree that Red Hat is not responsible or liable for any loss or expenses that may result due to your use of (or reliance on) the external site or content.
3.4. Standalone Redis Copy linkLink copied to clipboard!
Standalone Redis offers a straightforward deployment option for Ansible Automation Platform environments where high availability is not critical.
Standalone Redis consists of a simple architecture that is easy to deploy and configure.