So I have a general k8s question, I have a Saas product that we are looking at modernizing in a lot of areas. It is a CRM for nonprofits that has 500-1k unique customers. We have them in a monolith app now with 1 shared database. We are looking at increasing isolation, improving scaling, noisy neighbor issues, etc.
I have been told by a few that it would make sense to have a structure where each of our customer’s have their own name space to get better isolation. But I am curious if this is the best pattern? Is this what most people are doing now for multi-tenant apps?
04/02/2022, 10:31 PM
I don't think of namespaces as a physical thing but more a logical separation. Noisy neighbors etc don't get solved just by namespaces. That's where other things come into play. I'd think autoscaling would be what solves noisy neighbors with the right metrics. Keda for example could be based on a custom metric or pending jobs in a message queue.
Just a thought as I'm still picking up kubernetes myself 😉