Cloud Enablement for Enterprise Applications

Author - Nikhil Shintre, Director - Engineering Solutions

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.

Models for Cloud Enablement -

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.

  • Hosted in Customer Cloud – This is for customers who prefer to deploy the software in their own cloud setup, by applying their own security controls for the software and data.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.
  • Single Tenant SaaS – In this model, the ISVs deploy per customer isolated application stack either in a common cloud account or a dedicated account controlled by ISV. Both modes isolate customer specific stack, to address the concerns about security.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.
  • Multi-Tenant SaaS – In this model, the ISVs deploys a single application stack with customers separated via multi-tenant implementation at the application business logic and the database level.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.
  • This model aggregates the usage of resources to the best possible manner and gives the ISV the flexibility to choose the cloud provider and various services.
Comparing the Enablement Models -

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
 
How to Choose Between the Models –

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 -

  • Large customers would like to manage the application as per their security practices. Hence, if majority of customers are large sized, software hosted in customer cloud would be preferred.
  • If the application is very critical in customer’s business process, the customer would prefer to control the data. For such applications, software hosted in customer cloud would be preferred.
  • Application having tighter integrations with other enterprise systems, are difficult to move out from the customer. In such case, software hosted in customer cloud would be preferred.
  • If the application has many small customers, or there is large no of users with small time of usage, multi-tenant SaaS is a win-win model for the customer as well as ISV.
  • If the application requires continuous addition of features (e.g. New Product Development), multi-tenant SaaS makes it easier for faster deployment and fine-tuning.
  • If the application involves data aggregation and data based inferences (viz AI/ML based), multi-tenant SaaS makes it easier to manage it at one place.
  • When customer insists on a more stringent separation, but wants all other benefits of SaaS the single tenant SaaS can be chosen.

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