We are becoming more and more familiar with the key benefits of SaaS:
- Richer user experience and user productivity
- Rapid IT implementation and optional higher quality deployment
- More frequent cycles of innovation
- Minimal upgrade hassles
- Access to the “always-on” SaaS tools regardless of location
- Subscription pricing
- Anytime scalability and dynamic capacity Source: Altimeter Group October 2009 Customer Bill of Rights: Software-as-a-Service.
To deliver these benefits, should a SaaS provider use a multi-tenant architecture? What are the pros and cons of this architecture? Multi-tenancy, if done correctly, can drastically reduce the costs for the SaaS provider. If an application can service multiple customers on ONE piece of hardware, with ONE OS license and ONE database license it is far less expensive to operate than a multi-instance architecture. In addition, the cost of resiliency investments like server clustering can be kept much lower. All in all, the provider can keep his costs lower... and pass these savings on to his customers. (One hopes!) The ultimate expression of this model is Google. They have driven the cost to zero for email and personal productivity applications. They leverage a massively multi-tenant architecture that is free to users. Talk about a value proposition. We can all see what’s in it for the customers... the very best price going! But as we all know, Google is providing a ‘commodity as a service’ which implies a very different business model from other software/service vendors. What about supply chain applications deployed to meet a particular company’s needs? What value does a multi-tenant architecture bring to them? Well if supply chain services were free, the case would be simple. However, there may be factors at play that are more important than cost: security, availability, performance and scalability to name a few. How does multi-tenancy improve value to the customer in these areas? SECURITY: There is always the possibility of a ‘leak’ in the security model for a multi-tenant model that could be exploited by a creative individual. Data is living in physical proximity, in the same database. Multi-instance architecture by contrast is more secure by its insular nature. AVAILABILITY: A reputable SaaS provider takes great care to meet the Service Level Agreement in the contract with its customers. It’s an axiomatic part of the operations of a SaaS company. Customers can depend on it. How does multi-tenancy help deliver value to customers here? Other than the risk of a massive hit to the reputation when hundreds or thousands of customers are without service, there’s nothing inherent in a multi-tenant architecture that delivers better availability. High availability is all about great design, great equipment and great process. (As I write this I just got notified that our Salesforce.com service is down- ouch.) PERFORMANCE: All multi-tenant architectures are built to govern and limit read/write access to prevent resource over-utilization. This type of design can restrict flexibility whenever user extensions to standard applications are built. This is a clear limitation for customers in the multi-tenant model. Also, there are application areas that don’t lend themselves to this type of ‘governed’ model. Multi-instance might be the only alternative that can deliver satisfactory performance without the risk of compromising another customer’s performance. SCALABILITY: Does multi-tenancy deliver scalability? It’s obvious that an application built for hundreds of customers using it simultaneously must be scalable. But, in which dimensions is it built to scale? Users, data size, transaction volume? Again, by nature the multi-tenant model does not deliver this scalability- the application whether multi-tenant or multi-instance must be designed to scale in these dimensions... with the cpu, network cycles, and memory space to back it all up. UPSHOT: It is clear that well designed multi-tenancy is essential for delivering software service on a large scale where profit margins are thin. However, by its inherent nature, multi-tenancy does not have a customer value delivery advantage in many respects. On the contrary, for delivering a single customer software service, like a supply chain solution or even a social media solution, a great single instance design and operating environment might just be superior, with better security and dedicated resources allowing consistent performance, inherent in the model. WHAT DO YOU THINK?? When is multi-tenancy an ‘anti-feature’? Are you willing to pay more for features or benefits that are only available in the multi-instance model?