Multitenancy and Pay-as-you-go Terms in SaaS
Whenever we talk about SaaS the terminologies I often hear is:
- Pay-as-you-go models
This looks good - especially if you are comparing to the C++ code that was written to process data files from one format to the other. But I am not sure the terminologies are entirely correct and reflect the true picture when comparing with enterprise software.
Multitenancy refers to a situation where a single instance of software can cater to multiple customers. A strong support for multitenancy akin to IaaS concept has existed since mainframes. But you can only share the infrastructure with other customers, the programs that run on them are your own. More recently, Siebel CRM also has its weak support for multitenancy. Achieved through the multi-org concept that primarily introduces strong visibility rules for data, this has been molded by some to enforce separation of process as well. All this comes at a cost though, and maintenance complexity exponentially increases with the customizations.
Another factor in the mix is virtualization, which enables a pseudo separation of software instances that can in turn be enabled for multiple customers. Virtualization is more resource intensive as compared to the software multitenancy, but guarantees separation of process and data regardless of production functionality and an occasional bug. As virtualization gets further optimized and hardware costs head south, it will be harder to say whether simple multitenancy provides a significant advantage.
To lay emphasis on what the cloud solution can actually do in this space, there is a need to outline the true use of multitenancy and how it helps the customer. SaaS products are built with strong multitenancy support that is easy to maintain, change and scale. The benefits get passed on to the customer in lower operational costs and higher frequency of improvements to the product capabilities. The support for layered multitenancy that can apply at hardware, operating system or at the software level, and the ability to deploy those in alignment with security and resource requirements of the organization, can be really good selling points of a well-architected SaaS product.
Most of today’s SaaS players support pay-models that can be tagged to individual users, or to the entire enterprise. Well, so does Oracle for its traditional enterprise software like Siebel. Siebel can be licensed for named users, concurrent users, registered users (select Siebel products), or per CPU/per instance/under applications unlimited program. A big enterprise is most likely to have specific plans, strategy and budget for software including no. of users. If the no. of users do go down unexpectedly there is a possibility of a re-price (where there is a risk of same discounts not getting applied), or renegotiation of the next year’s fees. The flexibility to respond linearly to the change in number of users is a good point for SaaS, but may not be applicable to all customers. The SaaS companies I know of provide discounted fees for bulk deals and:
- Provide per user rates based on 12 month subscription
- Provide per user rates based on minimum x no. of users
Yes, pay-as-you-go model is well possible and a good marketing advantage, but bigger enterprises do not realize a lot of benefits from that aspect. Also, termination of agreement prematurely for reasons not recognized by the contract (e.g. we don’t like the product anymore) may not relieve the customer of paying the due amount for rest of the contracted period.
The benefits of SaaS are outlined fairly by showcasing a flexible pay-as-you-go model where upfront costs are minimized to a significant extent. The customers are free to select a plan that provides them immediate benefit if there is a drop in number of users, but will get discounted rates for assured business over a longer term.
Do you have any other point of view? Do you see any significant advantage of multitenancy or pay-on-the-go models over traditional enterprise software that are represented by simply stating those terms?