Namespaces are a feature of the Linux kernel that partitions kernel resources such that one set of processes sees one set of resources while another set of processes sees a different set of resources
In other words, the key feature of namespaces is that they isolate processes from each other. On a server where you are running many different services, isolating each service and its associated processes from other services means that there is a smaller blast radius for changes, as well as a smaller footprint for security‑related concerns. Mostly though, isolating services meets the architectural style of microservices as described by Martin Fowler.
https://www.nginx.com/blog/what-are-namespaces-cgroups-how-do-they-work/
https://blog.quarkslab.com/digging-into-linux-namespaces-part-1.html
https://blog.quarkslab.com/digging-into-linux-namespaces-part-2.html
https://blog.yadutaf.fr/2013/12/22/introduction-to-linux-namespaces-part-1-uts/
https://blog.yadutaf.fr/2014/01/19/introduction-to-linux-namespaces-part-5-net/