SaaS Application Architecture
BY
XXXXXXXXXXXXXXXXX
1
Introduction to SaaS:
As the name suggests, SaaS or Software as a Service can be understood in simple
terms as a service that provides us with software. This software and data are hosted centrally
and provided to us on a rental basis. This software delivery and licensing model can be used
for different kinds of applications like graphics, presentation, database etc…
The SaaS method is not something that has been introduced recently but its usage has
been rapidly increased in recent times due to drastic increase in the internet these days. The
number of users has increased a lot for SaaS because of which it has passed IaaS, PaaS and
DaaS in the race.
Using the SaaS deployment service, we can avoid all the messy work like developing,
updating, installing, and managing the application. Anyone can comfortably get SaaS
application access and use the application as per their convenience. It is also possible to
2
customize the applications by adding a different version of the application for a small group
of customers and increase the scalability by installing the application on multiple machines.
Profits of using SaaS applications:
1. There is no need to get connected to a local system for data access, everything is
available online
2. We can easily scale up the application
3. Compared to a traditional app, it is very easy to install, update and customize the
application according to our needs
4. Multiple organizations can share the same application using the multitenant
architecture through which they can reduce the costs
5. We need not worry about the various issues that usually occur in traditional app
development like the compatibility and performance issues
6. End users can buy and use the software for a time period of their own interest.
7. One of the main problems in traditional applications is the security that is taken care
of in SaaS
Working of a SaaS model:
A SaaS application is very easy to use. We can skip the complex process of
developing, hosting and maintaining the application. Also, users need not install the
application separately in all their local machines. It is installed in a central server by the
provider and many times, we can directly use them from web browsers.
Organizations can customize a few applications like messaging applications to meet
their requirements. For example, they might ask for an email app where employees of the
organization can chat only among themselves.
3
One more key point of using SaaS applications is that “We only pay for what we use”.
We can change the subscription types as per our current needs and pay according to the level
of usage.
Types of SaaS Architectures:
1. Monolithic Architecture:
This is the first architecture of SaaS. It is very easy to build, we take all the
components like the databases, front end, back end, APIs and combine them to form a
single unit of execution. The presentation layer or the UI is connected to the APIs
which inturn are connected to the databases to access the stored data.
We call this method the MVC model which stands for the Model-View-
Controller approach. This approach is very easy to build and is commonly seen in
many programming competitions.
Pros of Monolithic Architecture:
● Easy to build
● Less cost compared to other approaches
● Testing is also not very complicated
Cons of Monolithic Architecture:
● If we need to update our app frequently, this architecture is not suggestable
● It is very difficult to scale up
● Changing between technologies or changing to a newer versions takes a lot of
time and sometimes infeasible
2. Microservices Architecture:
By the name itself, we can get an idea of how this architecture works. We use
many microservices and build the complete app. These microservices in technical
terms are called Application Programming Interfaces(APIs).
4
These APIs communicate with each other and other modules of the application
to achieve the necessary actions. These APIs are divided into different categories
based on the domain, use case, scale and so on.
Pros of Microservices Architecture:
● Easy to maintain as the app is divided into multiple smaller parts
● Easy to scale up and test
● We can build customized apps by combining different APIs
Cons of Microservices Architecture:
● Sometimes, building an app of our requirement becomes complex as we need
to find the right combination of the microservices
● Communications between the APIs might become a problem at times
3. Single Tenant Architecture:
As evident from the name, a single tenant architecture can meet the
requirements of a single tenant at a time. It has one database, one UI and one instance
that serves an organization which cannot be shared with any other organization. It
can be called a “one-to-one” setting.
Pros of Single Tenant Architecture:
● Better security as the app is only limited to our organization
● It is very simple to customize also
Cons of Single Tenant Architecture:
● It is difficult to maintain
● As the database and resources are restricted, the traffic might become heavy
4. Multi-Tenant Architecture:
Again, we can easily understand the meaning of this architecture by its name.
Multiple users can utilize the application at the same time. The components of the
5
software like the databases and other resources are shared among multiple customers.
That is why this application architecture can be called a “many-to-many” setting.
We might think that security will be compromised but it is built in such a way
that data and resources of different users are stored in different places to avoid privacy
issues.
Pros of Multi-Tenant Architecture:
● As the resources are shared, cost will be less
● Maintenance is easy
Cons of Multi-Tenant Architecture:
● Customization is difficult
● Updating is also complex
5. Differences between Single and Multi-Tenant Architectures:
Single Tenant Architecture is better in regard to security than Multi-Tenant
Architecture. It is also better in terms of customization. But the cost for Multi-Tenant
Architecture is less than that of Single Tenant Architecture as resources are not
6
shareable. Although Multi-Tenant Architecture has more advantages compared to
Single Tenant Architecture, Multi-Tenant Architecture will never completely replace
Single Tenant Architecture. Consider cases like the military or navy where security is
of utmost importance. In such cases, Single Tenant Architecture should be definitely
used.
6. Multi Instance Architecture:
This architecture has become popular in recent times. There is no resource
sharing in this like in multi-tenant architecture. Different instances run in parallel
which significantly improves the performance. Also, the data is separate for each
customer because of which security issues that are prevalent in multi-tenant
architectures are very scarce here.
The catch is that maintenance and scaling are difficult in comparison to the
multi-tenant architecture.
How to choose the correct SaaS architecture:
If we don’t choose the correct SaaS architecture, one problem leads to another, and
the situation goes out of hand. The maintenance of the incorrect architecture is high and along
with it, you lose many other features like the price flexibility and the number of services that
you can offer.
You need to take care of the infrastructure and choose the correct cloud provider. You
should also try to finalize what your requirements are for the app so that you don’t need
frequent modifications and updates. Choose your SaaS model in such a way that the cost is
ideal for your requirements.
Make a list of all the necessities for your app. Some questions you can ask yourself
are as listed below:
1. Do you need your data to be in your complete possession?
7
2. Is it okay for you to share resources with other customers?
3. Is security the major need or the cost?
4. Do you need to scale up your application with time?
5. Would you prefer easy maintenance to sharing resources?
6. Will your customers expect high reliability and privacy?
After asking yourself many questions, you can come to a conclusion on what type of
architecture is best suited for you or your organization.
Factors to ensure that your SaaS architecture would succeed:
Always try to make your app as automatic as possible. If your customers are calling
customer support many times, then understand that you need modifications in your app.
Make your User Interface as friendly as possible. Even a person new to the technology should
be able to follow the steps and set up your app easily.
Leaving the mandatory cases, always try to design your apps in a multi-tenancy
approach so that the cost is reduced, and the maintenance becomes easier.
Try to break down your app into micro services. But be cautious where you are
breaking it. It is always beneficial to divide the app into microservices that would have no
problems in communicating with each other.
Conclusion:
It is observed in a survey that almost all of the software needs in the market today can
be fulfilled with the multi-tenant approach. However as mentioned earlier, there might be use
cases where we need to specifically use single tenancy only. So, it is very important to
analyse the requirements and make decisions wisely.
8
References:
1. https://frontegg.com/blog/saas-applications-architecture-the-how
2. https://frontegg.com/blog/enterprise-saas-architecture-the-why
3. https://frontegg.com/blog/the-evolution-of-saas-architecture
4. https://devcom.com/tech-blog/how-to-design-and-develop-saas-application/
5. https://hackernoon.com/saas-software-as-a-service-platform-architecture-
757a432270f5
6. https://blog.lftechnology.com/designing-a-secure-and-scalable-multi-tenant-
application-on-node-js-15ae13dda778