Redis Deployment Guide - Self-Managed Repository Integrations
This guide provides the recommended Redis deployment instructions provided by Mend.io Professional Services Architects for Remediate/Renovate(R/R) which is a part of the Self-Hosted Repo Integration.
10,000 repositories or greater
For large deployments, a 3-node Redis cluster (single shard, cluster mode disabled) using 2 core X 8GB hosts is recommended. All R/R workers and the server will read/write as required to the primary Redis node. For multi-region support for disaster recovery or active/active, stand-up independent Redis clusters in each region. Replication is not required or recommended. Cache is in-memory only. No need to persist the cache to disk.
1,000-10,000 repositories
For smaller deployments or when fault tolerance and/or disaster recovery are not required, a single-node Redis server/container can be deployed using a 2 core x 4GB host/pod.
We recommend deploying Redis external to the Self-Hosted Repo Integration cluster to maintain cache integrity if/when the cluster is redeployed. The Self-Hosted Repo Integration is fully compatible with AWS ElastiCache managed Redis service, there are instructions on how to set up a Self-Hosted Integration with AWS Elasticache here.
To enable Redis for the R/R containers, simply add the Redis cluster URL as an environment variable to the Remediate-server and Remediate-Workers K8s (or Docker Compose) services. See Renovate On-Prem docs. If you require authentication (recommended), you add the password to the url, e.g.
RENOVATE_REDIS_URL=redis://[:PASSWORD@]HOST[:PORT][/DATABASE]
For TLS protocol (recommended), use rediss:// url scheme instead.
As always, these are general guidelines only. Monitor Redis utilization after changes to determine your actual best sizing and host specifications.