Key takeaways:
- Software as a Solution (SaaS) architecture is a foundation of every product licensed according to the SaaS delivery model
- SaaS applications are stored in the cloud. Here, you will learn five lessons related to cloud services, tenancy, data isolation, load balancing, and integrations that will help you develop SaaS architecture
- SaaS founders should implement elements of management, application, and tenancy patterns to make the right architecture-related decisions and save your product from failure.
- With a reliable software architect in your team, you can implement the right and the most time- and cost-effective approach to your architectural decisions.
There are multiple things that may intervene in your SaaS startup's success.
On your way to accomplish business goals, you may have to deal with limited resources and swiftly changing market conditions; you may need to alter your offering according to the unsteady demands or fail to attract initial investments.
The number of challenges is huge, and some of them may cause your startup to fail.
But while you can’t impact external factors and avoid dangers, you can mitigate risks and manage internal factors that can boost your product growth.
Application architecture is one of these factors. And if you’re about to enter the SaaS industry, the concept of SaaS architecture, its specifics, and best practices should be one of the first and critical things to discuss with your technical leader and engineering team during the project discovery phase.
The right architectural decisions may build a perfect foundation for a viable app, while bad architecture may cause the whole system to fall apart.
Are you new to the topic of SaaS architecture? Then you’ve come to the right place. In this article, you’ll find out the SaaS basics, get acquainted with technical terms, and discover the patterns you should know about before starting to create a SaaS product.
A brief intro to Software as a Solution
Before we dive into the SaaS model architecture specifics, let’s clarify the concept of SaaS itself.
According to Gartner Glossary,
Software as a service (SaaS) is software that is owned, delivered and managed remotely by one or more providers. The provider delivers software based on one set of common code and data definitions that is consumed in a one-to-many model by all contracted customers at anytime on a pay-for-use basis or as a subscription based on use metrics.
SaaS is one of the components of cloud computing. It means that instead of downloading and installing software on their laptops, users can access it via the Internet. It saves time and resources.
How does it look for SaaS users? Once an organization decides to use a certain product or service, they simply pay for a SaaS subscription, or choose the freemium version, install it, log in to it, and start using a service. There’s no need for SaaS users to buy and maintain huge servers, take care of their maintenance and get huge checks for the used energy.
Users pay for SaaS and have it all.
Jira, Slack, Dropbox, Mailchimp, and dozens of other products you may use daily represent the immense galaxy of SaaS products.
Why SaaS architecture is crucial for your product and business growth
What are the key things you pay attention to when you just landed in an airport nearby a city you’ve never been to?
You can see amazing buildings from the JFK International Airport windows and say to yourself “What a gorgeous view! Such an amazing skyline!”
This skyline would not exist without the city architects.
At the same time, as you go for a walk around Rio, you can notice poorly looking, terrifying favelas on the hills surrounding the city. We advise not to come closer to them as it’s dangerous; but while you look at them from a distance, you can evaluate the terrible structures, chaotic streets, and even dark terrifying dead ends. Favela construction and architecture may give you the feeling of anxiety and fear.
Prosperous cities have good-looking, well thought architecture that contributes to the overall impression of the city and the entire country. Poor architecture may make you want to pack your bags and leave as fast as possible.
The same may happen to your SaaS product users: poor architecture may make them close your SaaS app and delete it forever.
This is why you should take architectural decisions seriously: they can save or destroy your business.
Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be canceled,
says Eoin Woods in Software Systems Architecture
In the following sections, we’ll guide you through five key SaaS architecture concepts and introduce three patterns for your architectural decisions.
SaaS architecture: 5 key concepts and 5 worthwhile lessons to learn
Get acquainted with five essential concepts and SaaS architecture best practices:
- Cloud technologies
Cloud computing was fueled with the release of Amazon Web Services back in 2002, and for more than 20 years, businesses have been leveraging cloud infrastructure.
In some resources, you may find the cloud vs SaaS comparison. But it’s not quite correct.
SaaS is all about the cloud. SaaS products run in the cloud.
The essence of this delivery model is about being available to Internet users via a browser on a subscription basis, and cloud computing makes it possible.
Cloud computing technologies provide on-demand computing resources, such as storage, infrastructure, power, etc.
Cloud service providers let you as a SaaS founder access and leverage resources needed for your product to function properly. As you launch your app in the cloud, it becomes ready for distribution.
There are multiple powerful players in the cloud galaxy, and we recommend you choose the one keeping in mind several critical factors:
- Analyze what resources you may need;
- Take a look at the cloud providers’ websites and find out if they have a company similar to yours among their clients;
- Compare their prices and offerings to choose the most reasonable option.
Amazon Web Services (AWS)
Amazon Web Services has got the biggest piece of the market. It offers an immense number of services, including Amazon EC2 - servers in the cloud, Amazon S2 - storage in the cloud, as well as products devoted to launching and managing private servers and machine learning models.
AWS has a huge library and megabytes of resources aimed at helping you to build a great app.
According to the 2022 AWS Ecosystem Report, over 1.4 million businesses are using AWS services. Would you like to add your product to AWS customer success stories?
Our partners and clients use AWS products and services, too. Whitelance is one of them. This is a freelance marketplace where we’ve implemented the multi-tenancy architecture. Find out more about the Whitelance case and multi-tenant architecture on our website and blog!
Still, AWS isn’t the only option to choose for your journey to the cloud.
Microsoft Azure
The story started from a red dog project - an internal code name for a cloud service provider by Microsoft. More than 15 years after Azure was announced, this is one of the most powerful AWS competitors.
Around 85% of Fortune 500 companies use cloud infrastructure provided by Microsoft. And the offering is wide - Azure has more than 200 products and services to help its clients launch and run their businesses.
Besides this huge number, Azure has another advantage - the price for services.
According to the Azure vs AWS comparison,
AWS is 500% more expensive than Azure for Windows Server and SQL Server.
You can find out more about different cloud service providers, and their pros and cons in our article. Make sure to check it out and make the right choice!
Google Cloud Platform
Google the tech giant has its own cloud service, too.
You can choose from 150+ cloud products and even enjoy the free plan that allows trying up to 20 of them.
Cloud services by Google are powered with data analytics functionality, which allows you to get deep insights into data your store or process with your SaaS application.
Would it be good for your SaaS business?
Google shares numerous success stories on its website. According to one of them, Lytics, a SaaS customer engagement platform, increased data streaming speed and database performance with Google Cloud Platform.
IBM Cloud
One of the pioneers in the IT market - the IBM company - has been offering cloud services since 2011. The number of its services exceeds 170, and you can find solutions for any case, starting from machine learning and AI to automation, databases, storage, and many more.
IBM Cloud mostly serves the needs of huge enterprises. Allianz, American Airlines, Deloitte, and Panasonic are some of the well-known companies that use the power of IBM Cloud for their business development.
Oracle Cloud Infrastructure (OCI)
Oracle corporation offers the cloud services, too. Its services build up two basic groups - Oracle Cloud Applications and Oracle Cloud Infrastructure.
With a loyalty of more than 400,000 clients, Oracle Cloud plays a powerful role in the global market. Just recently, Toyota moved the workload to Oracle. At the same time, Oracle offers resources for startups and small companies.
Lesson 1: Engage an experienced software architect to choose the right cloud service provider
Short descriptions on the web fail to provide you with enough data to decide on cloud technologies to use for your SaaS. As you can see, the top 5 cloud service providers have powerful companies behind them - there’s Amazon behind AWS Cloud, Microsoft behind Azure, and Google behind Google Cloud. Thus, you can’t just rely on a company's name or success stories - your business is unique; so should be your approach to choosing the right vendor.
Here’s when a software architect comes into play.
This specialist not only has a deep technical background but also analyzes your requirements and plans during project discovery to provide you with arguments on why to choose (or not to choose) a particular vendor.
According to David Smith, Distinguished VP Analyst at Gartner, it may be a huge mistake for your to stick to one cloud provider only:
Although vendors such as IBM, Microsoft, Oracle and SAP provide many offering spanning IaaS to SaaS, they may not be best of breed for all of them.
There’s a possibility that you may need to make more than one choice of a cloud provider, especially if you have an up-and-running product and want to turn it to SaaS. With a reliable architect by your side, you can end up making the right decisions, save your time, as well as save your entire business.
- Tenancy models
Say, you have a clear plan to build a SaaS application.
It means that your app will serve more than one user and you may even already have a plan for how your app user base should grow.
No matter if you’d like to serve the needs of 10, 100, or 1000 users from day one, you should choose a Software as a Service architecture approach. In this section, learn more about single-tenant and multi-tenant architecture approaches.
- Single-tenancy in SaaS architecture
Let’s start with a disclaimer: single tenancy doesn’t mean that your product serves the needs of a single tenant. It means that one app’s instance is used by one user.
Every tenant has its own separate app, database, and infrastructure. Single-tenant app users can decide when they want to update their apps, set up updates manually, and demand custom functionality.
- Multi-tenancy in SaaS architecture
The more users, or tenants, give preferences to your app, the harder it may get for you and your development team to maintain and update it, address users’ demands and pay for used resources.
This is when the multi-tenant SaaS architecture comes into play.
According to this model, tenants share computer resources.
It simplifies software upgrade and maintenance tasks - once you’ve deployed a new release, all users have access to the updated app and new features. Load balancing and scalability benefit, too. A well-thought SaaS-based architecture allows for optimized resource usage.
Although multi-tenancy has become a synonym for SaaS, it doesn’t mean you are obliged to go with a multi-tenancy model from day one. It may require more time and effort to launch your SaaS app as a multi-tenant solution.
The single-tenant app is a good choice for early-stage SaaS startups on their way to initial investments, while a multi-tenant model may be more beneficial in a long run and provides numerous advantages to existing businesses, that serve the needs of thousands of users.
We have prepared a guide on how to choose between multi-tenant and single-tenant approaches. Check it out and make the right choice.
Lesson 2: The tenancy model isn’t carved in stone
Which means that with a skilled engineering team, you can easily move your SaaS app from single-tenant architecture to multi-tenant, and vice versa.
As you launch your product, attract the first users and gather initial feedback, it will be more obvious to you which architecture approach may be a win. So, at an MVP stage, you may go with a single tenancy as a faster and more cost-effective way to develop your SaaS app.
However, according to Mike O., a software architect with more than ten years of experience, it’s a more cost-effective way to choose the right architecture approach from day one than having to migrate to the other tenancy type as a product evolves.
The right architecture decision may save you cost in the long run.
- Data isolation and partitioning
Sometimes data isolation and data partitioning concepts are used interchangeably. But these are two different concepts. Isolated data means that only a defined group of users can access it, while partitioning describes how data is stored in your system.
The simplest method of data partitioning is called bucket pet tenant. In some sources, it’s called the silo model.
In this case, each tenant is assigned an individual bucket where its data is stored. Bucket per tenant method is perfect if you work with a small number of tenants and as your solution scales, your development team may need to employ more advanced techniques for data partitioning.
Lesson 3: Beware of the noisy neighbor effect
When developing your SaaS architecture strategy, and working on data isolation and partitioning tasks, keep in mind the noisy neighbor effect.
Say, you have five tenants in your SaaS app - four of them with 10 users, and one being a huge company with over 200 accounts on your app. In case if all tenants use your product simultaneously, most of the load is created by a tenant with more accounts. It may impact other users’ experience: as your app provides limited resources, most of them may be used by a tenant with more accounts, and the rest of the tenants may notice lags, poor app performance, and outages.
Together with your tech leader, develop data isolation and partitioning strategies that may allow for mitigating a noise neighbor effect.
- Load balancing
Tenants are not going to use your application in the same way. The amount of resources, load, activity, memory used, and other parameters will vary.
Load balancing is the process that helps to distribute resources between multiple tenants in the most optimized and effective way.
For example, on Google Cloud, you can create an HTTPs load balancer to ensure no single server bears 99% of the load.
Kubernetes, an open-source container orchestration tool, may be also helpful in load balancing. It defines how traffic is distributed within your service.
The Kubernetes load balancer sends connections to the first server in the pool until it is at capacity, and then sends new connections to the next available server. This algorithm is ideal where virtual machines incur a cost, such as in hosted environments.
Depending on a chosen tech stack and decisions made by your development team, Kubernetes may be a tool to add to your technology stack.
Lesson 4: Load balancing failure = entire system failure
SaaS businesses use resources from different servers. As a user sends a request, it goes to a load balancer first, and then, it is sent to a “free” server - the one that is able to handle a user’s request.
But what if a load balancer sends the request to an overloaded server? It may cause app downtime.
Fortunately, there are many tried and tested load balancing algorithms to use in your app. If you expect your SaaS app to process thousands of requests at the same time, check out with your engineering lead on how to ensure correct load balancing.
- Third-party integrations
To cater to users' needs in a better way than competitors do, to provide more opportunities, and win users’ preferences, you may need to consider the importance of third-party integrations for your app.
Upon request, using an external API, users may want to add extra features to their dashboards or access the accessible elements of your app on other platforms.
Consider designing your app in a way that will enable third-party integration through API.
Lesson 5: Take a look at SaaS architecture from a business perspective
The integrations decisions are business decisions.
Before you start working on product architecture, you should develop a clear vision of what apps you’d like to connect to your SaaS app, and how exactly users will set up your app in their environments.
The number and specifics of third-party integrations may depend on your industry requirements and the specific SaaS architecture patterns you follow to bring your idea to life.
In the following section, you can learn about them.
SaaS architecture patterns: what may impact your architectural decisions?
Before you initiate software development, consider these three types of patterns that will have an impact on your app architecture.
- Management pattern
What features do you need to provide this software?
This pattern includes all information you need to better understand the trends in usage, users preferences and behavior, user billing, and ways to implement subscriptions, as well as features for other management-level SaaS tasks related to setups, configurations, and customization of environments for each user of your SaaS app.
- Application pattern
What features will your users come for?
To understand this category, you together with your tech leader need to dive deeper into the tech specifics of your application and build a vision of how you can isolate users groups from one another, how to partition data, what infrastructure may be shared between yoru users, and many more technical features.
- Tenancy pattern
How do you organize an environment for each group of users?
A tenant is a certain group, team, or organization of users; this is a single entity with defined permissions, features, and settings.
This component is responsible for creating tenants, authorization and authentication features for them, ID assignment, usage policies, etc. Another important question here is how you can provide different experiences to different tenants.
What our job really is as SaaS architects and SaaS builders is to figure out how these specific patterns apply to my solution,
says Tod Godling, Principal Partner Solutions Architect at AWS.
To compose SaaS architecture correctly, there’s no point in googling and picking _the best or the most popular _tools for SaaS analytics, SaaS trends, isolation approach, or routing technique.
The critical thing is to think carefully about your business objectives and communicate them clearly to your engineering partner or software architect you cooperate with.
There are four main parameters that may impact your SaaS architecture-related tools and steps:
- Domain requirements
Are there any unique industry-related requirements?
Each industry, domain, and market has its own rules and regulations to comply with. At the start of your project, try to identify the domain specifics and develop a plan on how to respond to unique requirements with your SaaS platform.
- Business goals
What would you like to accomplish?
Focus on key metrics you’d like to measure to track your progress. Is it customer churn or revenue churn? Would you like to go to new markets? Is it crucial for you to increase customer engagement? As you define your business goals, it gets easier for your to make SaaS architecture decisions, choose to outsource web development or work with local engineers, shortlist features for your MVP and handle numerous other tasks.
- Time to market
When would you like your SaaS product to go live?
If quick app development is one of your priorities, you may need to communicate it to a software architect and the entire development team to choose the most time-effective development approach, as well as launch critical features in the first turn and opt for more integrations to save time on developing particular pieces of software. This, in turn, will impact the entire app architecture.
- Legacy
Do you have an existing app you’d like to turn to SaaS?
This is the last but definitely not the least factor that may impact SaaS architecture.
If you already use a business application and store users’ data, the development team will add migration tasks to a workload.
It may impact the time to build your app: depending on the initial codebase, it may either save you a couple of days or weeks or prolong development. Besides, it will have a huge impact on software architecture.
The three aforementioned patterns mixed with domain requirements, your business objectives, expected time to market, and possible legacy specifics will define the entire SaaS application architecture.
In conclusion
SaaS business model is attractive for both users looking for a one-click way to access useful software products and SaaS founders who get an opportunity to develop a powerful business on top of high-quality software.
To succeed as a SaaS founder, you should handle a dozen of significant tasks and make hundreds of decisions. SaaS architecture is the most essential one.
In this article, you’ve found out what is SaaS architecture and discovered five significant concepts, three architecture approaches, and four factors that may impact your SaaS platform architecture the most. However, architecture development requires deep technical experience and expertise in programming languages, software databases, cloud technologies, algorithms, and familiarity with many other complex engineering concepts.
This is why you need a strong SaaS architect and a reliable engineering team before you start working on a SaaS product.
Together with an architect and key players in your software development team, you’ll be able to choose tools and technologies that will turn your idea into a working, user-oriented, and successful software product.