Software as a Service (SaaS) applications are essentially eliminating traditional on-premise applications thanks to their single-instance and multi-tenant architecture. These applications are hosted centrally and licensed on a subscription basis, making it a very efficient and manageable business model that can be scaled up fast. Salesforce, ZenDesk, Dropbox, Slack, HubSpot, and MailChimp are just a few examples of SaaS user-favorites.
A big reason for the emergence of SaaS applications is their improved security standards, making it easier for companies to move on from on-prem options.
The world is gravitating towards SaaS consumption because it allows them to save time, money, and resources when it comes to IT maintenance and troubleshooting. But what enterprise SaaS architecture is right for you? Which one should you go for to achieve optimal security standards and maximum performance? This article will shed some light over the top SaaS variations you can choose from today.
Introduction to SaaS
The SaaS methodology has been around since the late 90s, but it has taken off in a big way due to the massive spike in internet usage over the last decade. As per Gartner estimates, it has already passed the $100 billion mark, doubling the rivalling Infrastructure-as-a-Service (IaaS) methodology. Platform-as-a-Service (PaaS) and Desktop-as-a-Service (DaaS) also can’t hold a candle to SaaS right now.
Table 1. Worldwide Public Cloud Service Revenue Forecast (Millions of U.S. Dollars)
So what is SaaS all about? It’s a software licensing and delivery business model where you get partial or full access to the centrally-hosted application that is easier to consume and update. The Application Service Provider (ASP) is now essentially “shrink-wrapping” the software to business users via the internet, giving users a user-friendly and feature-rich experience with zero investment in maintenance.
There are two main types of SaaS varieties today:
- Vertical SaaS – Industry centric solutions (finance, healthcare, etc.)
- Horizontal SaaS – Industry agnostic solutions focusing on functionality
Besides the aforementioned scaling and maintenance benefits, SaaS applications allow organizations to shift from a reactive approach to a proactive one. They can quickly add functionality to their applications with minimal investment in in-house development. Furthermore, integration is usually a breeze to ensure short time-to-value, thus enabling faster time-to-market with optimal quality.
The Evolution of SaaS Architecture
It all started in the monolithic era, where all APIs, databases, services, and the UI were baked together into a unified executable process. The Presentation Layer was responsible for communicating with the various Controllers, while the data layer took care of the Model. The Controllers were responsible for the logic part and the View took care of the presentation layer. A pretty straightforward arrangement.
There were two main variations with MVC. First, there was the Active MVC pattern, where the Model notified the View when changes were made by the Controller. This was not the case with the other variation, the Passive MVC pattern. With this variation, the notifications tasks were performed by the Controller. Passive MVC was better to create separation between business and presentation logic.
Unfortunately, as DevOps started going mainstream, the monolithic based applications were simply not dynamic enough to handle the frequent changes made by the development teams. The Continuous Integration Continuous Deployment (CI/CD) pipeline started facing bottlenecks and performance issues. This is before we dive into problems with scaling up (and down) due to the rigid infrastructure.
There was a need for a more dynamic methodology that would align with the modern development practices. This is where microservices entered the picture. The main idea behind this new methodology was that every service was the owner of its own data. This segregation allowed quicker testing and faster CI/CD capabilities to improve scaling capabilities without compromising on quality.
The Different Types of SaaS Architecture
Let’s take a closer look at the main SaaS architecture patterns that are in use today and learn more about the pros and cons that come with their implementation.
As explained earlier, this is the traditional way of doing things. The monolithic SaaS application is a single and indivisible module that cannot be split or segmented for optimizing development. You are basically looking at one big database and a solution that is built around a server-side and client-side interface. Everything is unified with all functions being managed and served in one location.
Pros: Less cross-cutting issues, Easier to monitor, Straightforward testing
Cons: Complex while scaling up, Difficult to make big changes, Technology barriers
The microservice architecture is powered by Application Programming Interfaces (APIs). All functions are broken down to independent modules that can be deployed separately as required. The APIs then allow these modules to communicate with each other and sync their independent processes to work as one single entity. Each service can be upgraded, updated, and scaled separately for added flexibility.
Pros: Resource and time friendly. Enhanced scalability
Cons: Cross-cutting issues, Complex architecture dynamics, Testing problems
As the name suggests, a single-tenant SaaS architecture basically caters to one customer at a time. The meaning of this is clear – there is a dedicated software instance, single infrastructure, and one database that is serving the entity that is paying for the service. There is no sharing whatsoever and the entire development environment is dedicated to one client at a time.
Pros: Improved security levels, Customization is easier
Cons: Resource heavy, Costly to maintain
Multi Tenant Architecture (SOA)
Unlike Single-Tenant architecture, the Multi-Tenant variation is more focused on sharing resources, especially software instances and databases. However, each tenant’s data is protected and saved in different places for obvious reasons. The financial benefits of this methodology are clear – having multiple customers allows to lower the environment and infrastructure costs significantly.
Pros: Pocket friendly, Easier on the integration front, Smoother maintenance
Cons: Harder to customize, Potential security loopholes, Complications with updates
Single vs Multi Tenant SaaS Architecture
Single-tenant architecture is here to stay as it performs better on the security front, which also makes it easier for businesses to demonstrate ongoing compliance. The security risks are simply more isolated. You also have more control on what’s going on the customization and personalization fronts. But that’s where the advantages more or less end when it comes to single-tenant SaaS architecture.
Single-tenant SaaS architecture allows seamless and smooth cost-sharing for serviceability, ongoing governance, and deployments. Resource utilization is significantly improved and so is the adding/onboarding of new customers. Furthermore, scaling up becomes much easier since you have more computing capacity and more free resources on-demand to get the job done fast.
It comes as no surprise that leading on-demand SaaS applications like Slack, Zendesk, Bogo, and other market-leaders have gone the multi-tenant way.
|Security/Compliance||Every user/client has a dedicated secure database||Data leaks or breaches can cause more damage|
|Customization||It’s easier to customize the dedicated architecture||Every architecture update affects multiple clients|
|Cost Effectiveness||A new instance needs to be created for every user/client||All users/clients share the same instance|
|Scaling Capabilities||Scaling up can become extremely challenging||Scaling up becomes smooth and seamless|
|Ongoing Maintenance||Requires large teams to build, maintain, and update||Significant resource and manpower savings|
While multi-tenant SaaS architecture has clearly taken a lead over the single-tenant variation, the latter is not going away anytime soon as some use cases still require it. Think about a military application that requires the highest levels of security and customization for best results. The single-tenant SaaS architecture is the way to go in such scenarios. The same can apply for sensitive government setups.
Multi-Tenant vs Multi-Instance Architecture
The multi-instance SaaS architecture is another variation that is gaining popularity in the IT space today. Just as the name suggests, there is no resource-juggling involved with this methodology. There are separate software instances (data items) that simply run parallel to one another. Unlike multi-tenant scenarios, there are no buffers or remote machines involved, which significantly improves performance.
Another advantage multi-instances have over multi-tenancy is that data is completely isolated, which means that there are minimal security risks involved. Each team has its private database and ecosystem, which means that there is little to no incentive for hackers. Scaling up is also much easier and so is availability, since single faults can lead to multiple downtimes in multi-tenant environments.
Multi-instance setups have their downsides. They’re less cost-effective and are harder to maintain and deploy frequently, an important DevOps requirement.
Summing it Up
SaaS is gaining popularity not just because of its operational and business benefits. The SaaS architecture has become really versatile and can now address all kinds of use cases. Unlike on-prem and legacy infrastructure, the SaaS methodology is offering multiple architecture options that you can choose from based on your financial constraints, compliance requirements, and flexibility needs.
Now that we have covered “The Why” and established the importance of adopting SaaS, we’ll also be helping you with “The How”. Our next article will summarise the biggest takeaways from this guide and show you how to get started in the SaaS space with accurate planning and finding the right solution for your operational, compliance, security, and business needs. The time to go proactive is now.