RSS
Vaibhav Jain

Introduction to SaaS Architecture

Wed, Dec 2, 2009

Vaibhav Jain

In our previous blog we discussed about SaaS and how SaaS is different from Cloud Computing or ASP. In this blog we’ll discuss about SaaS architecture.

There are three key differentiators that separate a well-designed SaaS application from a poorly designed one. A well-designed SaaS application is scalable, multi-tenant-efficient, and configurable.

Scalable: Scaling the application means maximizing concurrency and using application resources more efficiently—for example, optimizing locking duration, sharing pooled resources such as threads and network connections, caching reference data, and partitioning large databases.

Multi-tenant-efficient: When a user at one company accesses customer information by using a CRM application service, the application instance that the user connects to may be accommodating users from dozens, or even hundreds, of other companies—all completely unknown to any of the users. This requires an architecture that maximizes the sharing of resources across tenants, but that is still able to differentiate data belonging to different customers.

Configurable: If a single application instance on a single server has to accommodate users from several different companies at once, you can’t simply write custom code to customize the end-user experience—anything you do to customize the application for one customer will change the application for other customers as well. Instead of customizing the application in the traditional sense, then, each customer uses metadata to configure the way the application appears and behaves for its users. The challenge for the SaaS architect is to ensure that the task of configuring applications is simple and easy for the customers, without incurring extra development or operation costs for each configuration.

Software as a Service Maturity Model:

SaaS architecture has four maturity levels, whose key attributes are configurability, multi-tenant-efficiency, and scalability.  Followings are the four maturity levels:

Level 1 – Ad-Hoc/Custom: At the first level of maturity, each customer has its own customized version of the hosted application and runs its own instance of the application on the host’s server. Migrating a traditional non-networked or client-server application to this level of SaaS typically requires the least development effort and reduces operating cost by consolidating server hardware and administration.

Level 2- Configurable: The second maturity level provides greater flexibility through configurable metadata, so that many customers can use separate instance of the same application code. This allows the vendor to meet the different needs of each customer through detailed configuration options, while simplifying maintenance and updating of a common code base.

Level 3- Configurable, Multi-Tenant-Efficiency: The third maturity level adds multi-tenancy to the second level, so that a single program instance serves all customers. This approach enables more efficient use of server resources without any apparent difference to the end user. But ultimately comes up against limits in scalability.

Level 4- Scalable, Configurable, Multi-Tenant-Efficiency: The fourth and final SaaS maturity level adds scalability through a multitier architecture supporting a load-balanced farm of identical application instances, running on a variable number of servers. The provider can increase or decrease the system’s capacity to match demand by adding or removing servers, without the need for any further alteration of application software architecture. 

Popularity: 89% [?]

3 Comments For This Post

  1. pankaj.gurumukhi Says:

    Thanks for sharing. The SaaS Maturity Model puts things in perspective.

  2. Architects Seekan Says:

    This is a very good web site on Architecture i am really lucky to come across such a content rich site.

  3. Saas Says:

    Good post, I am wondering about the scalability of your level 3? Is scalability really a problem?

Leave a Reply