SaaSification on AWS
SaaSification is the process of taking an application, which could be a single-tenant application or a service typically running on-prem, migrating it to the cloud and modernizing it into a multi-tenant application that can run from the cloud for your customers.
A SaaS model allows you to offer your customers a highly available and highly scalable application, especially when built using AWS cloud native services. Saasification may also involve making your application multi-tenant, so that it can share resources across multiple instances initiated by different customers.
When building new SaaS applications, a few things we have seen work really well include:
- Ensuring your initial feature set is small
- Working towards an MVP, and breaking your project into smaller, more manageable efforts
- Making use of AWS cloud native services that enable capabilities important to SaaS applications such as scaling, and simplify or automate management
Following these practices allow you to focus on business logic and software innovation, accelerating your time to market.
Another big benefit of the cloud, when SaaSifying applications, is the ability to reduce the blast radius. If you’ve got an application built to scale, it won’t matter if one particular tenant is using a significant amount of the application resources, because the scale out capability ensures that every instance gets the performance expected from the application.
Additionally, you can choose to provision as many or as few silos as you like. A lot of AWS’s components and tools will scale vertically, allowing you to get more tenants into your particular unit of work or to a particular provision cluster. These can also scale horizontally, allowing you to regionally deploy the application in the same way across different time zones or continents. These attributes help turn a single tenant product into a multi-tenant SaaS application.
One of the most common challenges we see with customers who are trying to adopt a SaaS model for their application, is to take the application as is and simply produce multiple copies of it. This workflow works alright, especially with automation that mitigates some of the operational overhead. However, in time, such a solution may result in cost challenges or operational challenges or both.
We advise customers upfront to think about expanding the engineering effort to pay down some of the legacy technical debt that may exist in the application, and invest in modernization so that they are taking advantage of multi-tenancy and making use of unlocked capabilities such as shared data stores. This reduces the risk of operational nightmares and scalability issues due to infrastructure bottlenecks, that may surprise you as your product becomes popular and consumer demand scales.
If you’re interested in modernizing your applications to take advantage of a SaaS model, or are looking for help with projects that involve leveraging the AWS cloud and cloud native services, get in touch with our experts!
Share this article
Leave a comment
Share this article
Join Thousands of DevOps & Cloud Professionals. Sign up for our newsletter for updated information, insight and promotion.