This message was deleted.
# platform-blueprints
s
This message was deleted.
c
Hey Ole ! Wasn’t sure whether your question was general, or for specific someone. We’ve built a Redis Operator for running Redis Clusters (I’m not pitching it here.) In general what we’ve seen is application specific Redis servers. Each application needing a redis will run it’s own Redis servers or clusters with specific settings for it, like LRU-cahces, persistent clusters, cluster with plugings, high performance, highly available clusters etc. It does depend though on how “same-same” your applications are. With Redis using minimal CPU, and memory specific to each application, you don’t gain much by running one big Redis Server, and placing all your eggs in one basket might create a problem if it goes down, which will definitely happen.
👍 1
If you are talking about running Redis Operators, some folks will run them cluster-wide if they don’t have too many Redis Servers to manage, and others will run them for sets of namespaces or applications, based on some operator class, or limiting specifically by namespaces. Usually we see the namespaced based approach when it comes to multi-tenanted environments, and environments where system namespaces should not be included in the Operator for security blast radius. We also see the namespaces versions running when we are working with very big clusters. We’ve seen clusters with 2000+ nodes, and 60+ Redis Clusters. In this case we usually run multi versions of the same Operator, covering different namespaces, to help with upgrade blast radius, as well as performance when managing a lot of Redis Clusters.
o
It was a general question, and in regards of running redis “clusters”, ideally with some operator controlling it. We have 3 clusters, with 3-5 nodes each. So not really big at the moment
I did some asking internally, and I found out why we had one big redis cluster right now, because each application share login sessions in the redis cluster
So I’ll probably create a redis cluster in the login namespace, and then write some network policies that’ll allow those backends in other namespaces, to talk to that redis. Until those applications gets a better way of doing it
Would you mind sharing a link for your Redis Operator?
c
The login sessions (eg. for the app) are stored in Redis, and used by all 3, or all 3 applications are using the same logins for Redis ?
Live upgrades are WIP and will be working within the next couple weeks 🙂
o
I’m not that familiar with how they (the other teams) do it with the redis. The applications (about 5 or 6) are not running in k8s at the moment, but we’re going to migrate them into k8s. Those 5 or 6 applications, would use the same shared storage for sessions
So when those get migrated to k8s, it would be one redis cluster in one of the application namespaces, probably login namespace, and let the backends talk to the redis svc in the login namespace. Then do the same for each cluster (dev, staging, production)
c
Gotcha. The applications are using Redis as a communication layer, augmented with some pub/sub if I understand correctly ?
o
Don’t think it’s anything that “complicated”. I think they just all read from the same redis instance. This is something that’s been configured and made before my time at the company