Multi-tenancy is a software architecture in which a software is used by multiple users or tenants. It can be accomplished by either creating a separate instance of the application for each tenant or designing the application in such a way that a single instance can be shared by the multiple users.
While designing multi-tenancy inside the application can ensure the most optimal use of the underlying resources, it is a very time consuming process to re-architect your application to accommodate the tenancy requirements. The fastest way to deliver your software to multiple users is to create its separate instance per user. Adoption of containers and Kubernetes has given more traction to this multi-instance multi-tenancy. Containerization has significantly simplified packaging and deployment of the application and Kubernetes is able to take care of the underlying resource utilization. Whether you dedicate a Kubernetes namespace or an entire Kubernetes cluster per tenant depends on your isolation preferences, but this type of multi-instance multi-tenancy is helping a number of platform engineering teams in delivering their custom application stacks in as-a-service manner to their end users.
We have developed a turn-key solution that helps platform teams deliver any containerized application to multiple users in this multi-instance multi-tenancy pattern. It is based on our open-source KubePlus technology that takes an application Helm chart and delivers it as-a-service by automating multi-tenancy and day2 operations such as monitoring, troubleshooting, upgrades etc. for each tenant. This helps software vendors accelerate their journey to SaaS or enterprise platform teams to rapidly deliver managed services for any custom applications. Check out our GitHub page to learn more: https://github.com/cloud-ark/kubeplus.