KubePlus — A Kubernetes Operator to enable SaaS on Kubernetes
KubePlus is a Kubernetes Operator to transform any containerized application into a SaaS. It takes an application Helm chart and delivers it as-a-service by automating multi-tenancy management and day2 operations such as monitoring, troubleshooting and application upgrades.
SaaS delivery of B2B software
Today B2B software vendors are increasingly looking to provide SaaS based delivery of their software. Universal adoption of Kubernetes is making it possible to offer the SaaS delivery model anywhere — from a vendor’s own cloud infrastructure to customers’ on-prem clouds. While this delivery model is attractive, the B2B software vendor has to grapple with several questions in this regard:
- How to package their application for SaaS delivery?
- How to ensure that the different application instances are isolated from one another properly?
- How to accurately track consumption metrics of various application instances?
- How to perform troubleshooting of application instances, possibly remotely (in cases where the SaaS is being delivered on customer’s infrastructure)?
- How to enable customers to create separate instances of the application for their end-users?
KubePlus SaaS building blocks
KubePlus addresses above questions for B2B software vendors. It provides the following building blocks for turning a Kubernetes-native application into SaaS form.
- For application packaging, KubePlus leverages Helm.
- To enable self-service creation of application instances, KubePlus provides the ability to wrap an application Helm chart with a Kubernetes-style API.
- For application isolation, KubePlus supports a.) Namespace-based multi-tenancy model where each application instance is created in a separate Kubernetes Namespace or b.) cluster-based multi-tenancy where each application instance is created in a separate Kubernetes cluster
- For troubleshooting, KubePlus enables application-scoped RBAC access for the application provider to the clusters.
- For accurate consumption tracking, KubePlus enables fine-grained discovery and tracking of an application’s Kubernetes resources.
Support for multi-tenancy is key to any SaaS delivery and management, hence it is at the core of KubePlus design as well. As mentioned previously KubePlus supports two types of multi-tenancy models:
a.) Namespace-based multi-tenancy model where each application instance is created in a separate Kubernetes Namespace or
b.) cluster-based multi-tenancy where each application instance is created in a separate Kubernetes cluster
Our customers choose any one or combination based on how they want to design or deliver SaaS. The most predominant model is to have a separate cluster for each organization and then have namespace based multi-tenancy for application instances getting serviced within the same organization.
Currently CloudARK team is participating in the Multitenancy working group in the upstream Kubernetes to take our real world experiences with KubePlus and help shape the discussion around Kubernetes multitenancy, especially in the SaaS context.
If you are a B2B software vendor or a team looking to provide SaaS for your internal or external customers, we would love to hear about your challenges and work with you to see if KubePlus can address them.