DevTeam.Space Product Development Blog

Explore our in-depth product development tutorials and new technology announcements published by our software development experts

All articles

SAAS (Software as a Service) Platform Architecture

An illustration of SaaS, PaaS, and IaaS models and their uses

Introduction

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, computing power and network infrastructure continued to grow in the 90s and as web technology improved, the complexity and functionality of websites continue to advance and we saw more advanced services being developed 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?

A visual representation of how the SaaS model operates

Before we dive into the 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 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.

With an explanation of SaaS out of the way, let’s look at why you might want to use this a software product that’s architected like this.

Why Use a SaaS Architecture?

An infographio showing what SaaS, PaaS, and IaaS are and what they're used for

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”?

Consumers

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:

  • Netflix
  • Microsoft Office 365
  • Amazon Prime
  • Twitter
  • Facebook
  • 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.

Business

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 in at the minute 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

A person holding a cloud in their hands on which The Benefits of SaaS is written

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.

Simplicity

Software applications architected as SaaS solution are typically accessed over the web through various types of device. Advancements in client-side programming languages such as JavaScript have resulted in more intuitive web interfaces and as such, makes using applications delivered over the internet easy to use like their desktop counterparts.

Economical

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

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!

Compatibility

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

An illustration with different interconnected IT icons on a blue background

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

I think you’ll agree, there aren’t many constraints when it comes to capabilities of a software product developed as a SaaS platform!

Disadvantages of a SaaS Platform

A list of cloud computing disadvantages

We’ve introduced Software as a Service, explored some of its key features and 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.

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.

Limited ecosystem

It can’t be denied, SaaS is a growing trend as a software distribution channel, that said, there are still many applications that don’t offer a hosted version.

Performance

An in-house, thick client or on-premise application will always run quicker than a product being delivered over the internet.

Data Concerns

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 description of the main benefits and 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.

Security

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.

Privacy

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

An illustration showing how a SaaS platform works

Scalability

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 of Facebook or Twitter not being available?

Take time to consider how you’ll factor upgrades, patches or debugging and troubleshooting production issues into your SaaS applications architecture.

Multi-tenancy

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.

Summary

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.