When the Open Cloud Manifesto was unveiled recently by IBM et al I wrote "The (Cloud) Bastards say, Welcome"
And I invited several cloud pioneers who have been at it - delivering cloud based products and services or helping evaluate and nurture them for several years - to discuss the manifesto and what they have learned in Cloud Computing over the last few years.
This time it is Bob Warfield, EVP of products at Helpstream, which delivers SaaS community-based customer service solutions, Bob has been with SaaS companies for the last 8 years and blogs extensively about cloud computing, SaaS, Web 2.0 and other software topics on the Helpstream and SmoothSpan blogs. Here he writes about a fundamental building block of SaaS: Multi-Tenancy
“Every philosophy has some bedrock principles. The way I was raised, multi-tenancy is that principle in SaaS. Recently, I have seen industry discussions on single-tenancy - tenancy – just virtualize and get the same benefits. Heresy if you ask me. Or at least sub-optimal to SaaS economics. Why make it less compelling?
But before I get away with my passion about what most readers may not even have heard about…Multi-tenancy is a software architecture that allows multiple tenants to be hosted on a single box (or cluster of boxes) just as easily and economically as a single tenant could be hosted on the same configuration.
If a single box has enough horsepower to run multiple customers for your app, the argument for single-tenant is completely (pardon my near-pun) untenable.
Salesforce runs 55,000 customers on 1,000 commodity servers. You just aren’t going to be able to do that with a single tenant architecture no matter how much virtualization you choose to run. If nothing else, virtualization runs afoul of a fixed cost/variable cost phenomenon very quickly. A lot of the basic system software allocates fixed overhead, whether we’re talking about your DB server, your app server, your web server, or whatever. Virtualization does not share the resources required for the fixed overhead, only the the variable costs. Multitenant shares the fixed overhead too. Those variable costs put an upper limit on the number of tenants you can shove onto a single box, no matter how small the tenant’s needs may be.
Some argue that the “Cloud” fixes all this through the magic of elasticity. Really? That’s hogwash. The Cloud at best and if you really architected your app to take full advantage of elasticity may help a little bit. But most of the problem is database, and elasticity and databases so far remain a very hard technical problem to solve. Try dynamically varying your partitioning and/or federation scheme to really scale up and down in real time in the Cloud. It’s hard enough to get apps to scale to arbitrary Enterprise needs at all. Try doing that in real time so you get multitenant cost savings? Good luck!
So if you can’t run an average of 55 customers on each of 1000 servers like Salesforce, how many can you run without multitenant? 3? 5? 10? What does that do to your cost versus true multitenant? What does that do to the overhead of maintaining the servers? What does that do to your cost of delivering the service and to the resultant cost model you have to saddle you customers with?
Others talk about the advantages of being able to customize these multiple instances. Frankly, that scares me too, because the whole SaaS model really starts to break apart there when you decide to radically customize each instance. It may be a value add, but it is a radically different value add than SaaS. In fact, at that point, it’s a hosted ASP model, not SaaS. Useful for some organizations, but there is a reason that model never achieved broad market appeal.
BTW, the multi-tenancy imperative gets stronger constantly as we approach the limits to Moore’s Law. We may no longer get faster cpus (i.e. faster clock speeds) every 18 months. Instead, we will get twice as many cores. The easiest way to take advantage of more cores? You guessed it: stack more tenants into the same box.
For more, read Michael Dunham’s excellent post over on Haut Tec. In the meantime, call me a SaaS purist, a heretic. I prefer to be called in Vinnie’s words, a SaaS pioneer. Keep the faith.”