Over the last decade or so, cloud has evolved as a preferred IT deployment model. Popularity of cloud can be gauged from the fact that majority of the enterprise IT providers are now having some kind of cloud offering, and most of the startup launched in this period are cloud native.
As cloud adoption becomes common practice and the benefits are well established, a larger number of enterprises move their current application stacks to cloud. As part of this shift, they also expect the Independent Software Vendors (ISVs) to enable and optimize their software for cloud. However, for the ISVs this require much deeper considerations like commercial models for cloud enablement, acceptance by the existing customers and the impact on acquisition / onboarding of new customers.
From our experience, we see three possible models for cloud enablement – Cloud enablement in customer setup, Cloud enablement with the setup managed by ISV, and a full fledge multi-tenant SaaS setup managed by ISV.
From the ISV perspective, this is easiest to implement by adopting certain services like scaling, storage and monitoring in the software. However, since each customer could have their own cloud preference, it is advisable not to commit too much to a specific cloud service.
In this model ISV handles complete deployment, monitoring and maintenance. This gives ISV flexibility to choose the cloud provider and plan the cloud enablement and optimization.
This requires major restructuring of the application to ensure software level separation of tenant specific data and user access. Since this is software level separation, it needs to be carefully maintained during the development.
Each of the above three models has its pros and cons in terms of effort for cloud enablement, maintenance of the setup, and licensing / pricing. These aspects can be compared as below.
In Customer Cloud | Single Tenant SaaS | Multi-Tenant SaaS | |
Enablement efforts | Minimal | Minimal | Sizeable |
Cost of Infrastructure | Directly paid by customer | Can be charged to customer at actuals | Must be bundled in subscription price |
Licensing Model | Can continue with existing mechanism | Can continue with existing mechanism | Need to implement subscription model |
License Upgrade / Downgrade | Very difficult to implement | Can enable upgrade / downgrade | Easy to upgrade / downgrade |
Upgrade to New Versions | Customer decides on upgrade schedule | Flexibility to delay for specific cases | All customers get upgraded at once |
Upgrade Frequency | Must be less | Can be moderate | Frequent upgrades possible |
Onboarding Efforts | Same as existing | Reduced efforts | Minimal efforts |
Availability monitoring | By customer | By ISV | By ISV |
Each of the three models serve a particular situation, but it is difficult to define specific rules around it. Instead, as a general guideline following aspects can be considered –
As a final word, the cloud enablement model must ensure smooth transition for existing customers, and ease of acquiring / onboarding new customers. So it is important to involve the product management, engineering and the customer support functions in any decision.
References-
https://docs.microsoft.com/en-us/azure/azure-sql/database/saas-tenancy-app-design-patterns
https://aws.amazon.com/blogs/apn/architecting-successful-saas-understanding-cloud-based-software-as-a-service-models/
https://cloud.google.com/kubernetes-engine/docs/best-practices/enterprise-multitenancy