My usual recommendation is to have highly granular namespaces.  One pattern
I've seen is that every unique instance of an app has a separate
namespace.  This allows you to isolate concerns.

For example, an API, Database, worker queue, and monitoring for a single
app all live in an isolated namespace.  This means that if you need to
shutdown the app, you know exactly what systems are affected.

On Feb 7, 2018 12:31 AM, "Kamil Korzekwa" <kam...@gmail.com> wrote:

> Hey everyone,
>
> I am wondering what are the best practices for organising/managing
> namespaces within SaaS product across multiple teams. Each team has full
> ownership of their services and works according to "you build it you run
> it" principle.
>
> Example approaches:
> a) All teams share product namespace.
> b) Namespace per team.
> c) Each team would have separate namespace for each functional domain that
> they work on (e.g. Streaming, Configuration, FancyPersistence, Analytics
> etc.).
> d) Each product functional domain would have a separate namespace (some
> domains are cross-team, so sometimes namespace could be shared by multiple
> teams).
>
> In a), team Foo does not have to specify namespace when calling team Bar
> service. Makes it easier to manage configuration and to move service from
> one team to another.
> In b) namespaces are used to prevent name collisions between teams
> internal services and to have quota management and access control per team.
> The downside is that team Foo must specify namespace when calling team Bar
> service (unless externalName or dns alias is used).
> c) and d) sound interesting, they allow more fine-grained access control
> and in theory it is easier to move functional domain to another team
> (change role binding and roll secrets). However, it feels like an abuse of
> namespaces and logical grouping like this may/will have to change over
> time. It is also harder for team to manage many namespaces than single
> namespace.
>
> Useful resources:
> http://blog.kubernetes.io/2016/08/kubernetes-namespaces-
> use-cases-insights.html
> https://www.youtube.com/watch?v=18P7cFc6nTU
>
> --
> You received this message because you are subscribed to the Google Groups
> "Kubernetes user discussion and Q&A" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to kubernetes-users+unsubscr...@googlegroups.com.
> To post to this group, send email to kubernetes-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/kubernetes-users.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Kubernetes user discussion and Q&A" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to kubernetes-users+unsubscr...@googlegroups.com.
To post to this group, send email to kubernetes-users@googlegroups.com.
Visit this group at https://groups.google.com/group/kubernetes-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to