SAAS (Software as a Service) Platform Architecture
The delivery of software has changed over the years. Historically, applications were written for mainframes in languages such as COBOL. In the 70s and 80s, we saw the explosion of home computing and the rise of the bedroom programmer. Computing power improved and let users run complex applications on their desktop machines.
Modems and Bulletin Board Systems (BBS) became popular in the 80s which allowed computer enthusiasts to offer basic online services such as crude email (Fidonet), messaging / paging facilities and make software available for download. All of this was done in a pre-broadband era over regular phone lines.
In the 90s, we saw the emergence of the world wide web as we know it today and computing power. Network infrastructure continued to grow in the 90s and as web technology improved, the complexity and functionality of websites continue to advance. Finally, we saw the development of more advanced services for the internet (or cloud).
It was during this time that we saw a paradigm shift in the way in which software was being built and made available to the end consumer. No longer did consumers have to download and install an application onto their machine to run it. Powered by cloud computing, consumers and businesses could use services over the web in just a few mouse clicks. SaaS was born – Software as a Service.
Whether you’re new to SaaS, an experienced developer or CTO, we’re sure you’ll find this article interesting. In this blog post, we look at SaaS and cover the following points:
- What is a SaaS platform?
- Why use SaaS architecture?
- Key Features and Benefits of a SaaS platform
- Capabilities of a SaaS platform
- Disadvantages of a SaaS platform
- Key Components of a SaaS Platform
- Design Considerations when implementing a SaaS Platform
What is a SaaS Platform?
Before we dive into some of the more involved points, it’s worth mentioning what a SaaS platform is. SaaS is a way to deliver software, the provider of the software centrally hosts one or more applications and makes them available to customers over the internet.
SaaS is also one of the main pillars of cloud computing. An explosion in Cloud computing, driven by cloud providers such as Microsoft with Azure or Amazon with AWS, has seen the growth in other products and services being delivered over the internet such as:
- Infrastructure as a Service
- Platform as a Service
- Machine Learning as a Service
- …and much more!
Any updates or patches to a SaaS application are all handled by the provider. The customer doesn’t need to download upgrades or reinstall new versions of a product as the software is delivered over the internet.
Why Use a SaaS Architecture?
As a mentioned in the introduction, the software has been distributed to customers in a variety of channels over the last few decades. The more recent distribution channel in Software as a Service (or SaaS).
So why might you want to use a product that has been delivered “as a service”?
From a consumer’s perspective, SaaS products are one of the easiest ways to use digital services or products. You simply access them over the web, pay for the service and use them! In recent years we’ve seen the emergence of thousands of SaaS products targeted at consumers such as:
- Microsoft Office 365
- Amazon Prime
- Google Docs
- …and many more!
Being able to activate or disable SaaS products on-demand is another appealing factor for consumers, no longer do you need to drop hundreds of dollars on a software license. Most SaaS products let you pay a monthly subscription with the option and cancel whenever you want.
From a business perspective, software products delivered “as a service” allow businesses to offer their products at scale, globally, whilst also allowing them to maintain overall control over their product. Some of the other benefits of implementing SaaS architecture in the business include, but are not limited to:
- Reduced time to market
- Lower maintenance costs
- Easier upgrades
Some of the most exciting B2B technologies at the moment are being delivered using SaaS architecture. For example, Microsoft and their collection of Cognitive Services APIs have effectively democratized what were once complex machine learning algorithms, into easily consumed web services that are delivered on cloud technology.
Businesses can easily integrate these SaaS components into their existing applications and augment the functionality they offer to their customers. The business doesn’t need to be concerned about debugging or testing the SaaS component as that’s all been taken care of by the vendor.
Key Features and Benefits of a SaaS Platform
SaaS solutions have different features to that of more traditional applications that are installed on your desktop for example, here are some of the other benefits that deploying a SaaS-based product can bring.
The monthly or annual subscript fee payment model makes it easier for businesses to budget, couple this with zero infrastructure setup costs, it’s easy to see how opting to use SaaS solutions can save the business money.
Security is an important aspect of software development solutions and SaaS platforms are no different. As a consumer of an application architected using SaaS, you don’t need to concern yourself with how your data is being locked down. It’s held securely in the cloud!
With traditional software installations, updates and patches can occasionally require enormous amounts of time and money. This is especially true in the enterprise. Additionally, versioning discrepancies between team members of your workforce can lead to compatibility issues and even more wasted time. With SaaS, however, subscribers can simply log-on to already upgraded services.
Capabilities of SaaS Solutions
SaaS platforms have a wide array of capabilities. Especially when coupled with other cloud offerings such as IaaS (Infrastructure as a Service) and PaaS (Platform as a Service).
Cloud technology such as Microsoft Azure lets you provision servers that can host websites, databases and much more. Infrastructure that would have historically been physically installed on business premises and ran by internal IT teams, can now be provisioned from an online dashboard with just a few mouse clicks.
SaaS solutions can be deployed to these environments and, in theory, offer any type of service that can be developed as a software application which can include, but is not limited to:
- Office applications
- Email and instant messaging
- Social media
- Exposing 3rd Party APIs
- Security and authentication
- Machine Learning
- Artificial intelligence
- Location Services
- Data streaming and lookup services
Disadvantages of a SaaS Platform
We’ve introduced Software as a Service, explored some of its key features and discussed why you might want to adopt this architectural design pattern or even decide to use more SaaS products in your business. But, are there any disadvantages to rolling out a SaaS platform or using one? Let’s look at some of those now.
Hire expert developers for your next project
1,200 top developers
us over the last 3 years
Lack of control
As SaaS applications are hosted on the vendor’s web server, you have little to no control over the software you’re using. An in-house or on-premise application will give your business more control over its behavior, for example, a Windows-based application might have more configuration options than a regular web application being delivered as a SaaS application.
It can’t be denied that SaaS is a growing trend as a software distribution channel. That said, there are still many applications that don’t offer a hosted version.
An in-house, thick client or on-premise application will always run quicker than a product being delivered over the internet.
When selecting a SaaS product, and for example, with the advent of the GDPR, businesses must pay special attention in terms of where any SaaS implementation stores data in the cloud. Each jurisdiction has its own legislative policies and acts when sensitive data is being processed or stored.
Key Components of a SaaS Platform
A key part of developing your latest SaaS product is to determine with key components or features that users will expect as standard. Features will understandably be driven by market and user community demands but there are some key components that users expect.
Protecting customer data in your SaaS platform is of the utmost importance, as such, your SaaS product will most likely serve hundreds, if not thousands of users. Ensure your SaaS architecture takes this into account.
Whilst security is concerned with the locking down of the user and sensitive data, data privacy is another important component that your SaaS platform should consider. With new regulations, such as GDPR, business is more accountable than ever for ensuring user and data privacy is maintained and with findings from KPMG stating that Data Privacy is the second most important attribute they look for in a cloud provider, privacy an important component to consider when architecting your own SaaS product.
Customisation and Configuration
Whilst you may be able to deliver an out of the box SaaS solution for most consumers that ships with a standard set of features and functionality, the enterprise often expects additional customization to deal with use cases particular to their specific problem domain. Factoring in extensibility to your SaaS architecture is another important component for you to consider. You can do this by shipping a “white label” version of your SaaS product or by implementing a plugin mechanism that allows businesses and/or developers to extend your white label SaaS solution.
Design Considerations for a SaaS Platform
Will your SaaS architecture be able to scale and accommodate hundreds, if not thousands of users simultaneously accessing it over the web? Well-designed SaaS applications need to be able to do this.
You can achieve this by using hardware like Network Load Balancers to evenly distribute incoming traffic across multiple web servers. From a software architecture perspective, you can introduce a separation of concerns by having individual layers to handle data access, business logic and the presentation layers of your application which will help your application scale more easily.
Zero downtime and Service Level Agreements
With internal or on-premise software applications, users are more forgiving on the occasion that software must be taken offline for a given period of time whilst internal IT install new kit or release a version update.
With a product delivered over SaaS architecture, you don’t have such a luxury. Users typically expect the product to be available almost all the time and with no interruption to service. When was the last time you heard that Facebook or Twitter was down?
Take time to consider how you’ll factor upgrades, patches or debugging and troubleshooting production issues into your SaaS applications architecture.
For your software to be delivered as a SaaS product, it must support multi-tenancy. Your product needs to be able to accommodate multiple users whilst at the same time, ensuring that user data, privacy and are all still being observed. Take the time to factor this into the design of your SaaS architecture and ensure that whatever you implement, has a scalable model.
So, there you have it, SaaS Architecture from top to bottom. In this blog post, we’ve introduced SaaS Architecture, some of its key features, capabilities, and components. We’ve also highlighted one example of SaaS architecture in the real world and asked the question – should you adopt this architecture for your software product.
We hope that by reading this you have a better understanding of what SaaS is and if it’s a suitable architecture for you to implement.