The Unbearable Lightness of Multitenancy in the Cloud

If y’all are not in the mood to listen to a (well reasoned, researched, educated and well-timed) rant, move along.  This is me ranting about vendors trying to confuse users when it comes to cloud topics.

If you are interested in why multitenancy should not be an item of discussion, then read on.

Consider y’all warned.

Last week (and into the weekend) the Enterprise Irregulars community got lit up.

These are rare occurrences these days, as we have probably dealt with most issues in many different ways and we are used to — well, just about anything.  However, this one was an interesting discussion.  SAP announced last week that it would move their SAP Business One offer to the cloud.  Part of the announcement was that there would be multiple instances of the solution available (SAP Business One is a partner-provided solution; each partner runs a different instance which they customize, add to, and manage).  As Dennis Howlett astutely points out, nowhere in the announcement talked about multitenancy, so the speculation among the EI started on whether  each instance will be multitenant and how.  Someone (and I cannot find the right reference to where it began) called it “megatenency” – as in multiple instances of multitenancy managed with systems management as a single one.  Just thinking about that makes my brain hurt in a bad way.

This brought the discussion, as it always does these days when a vendor announces their own spin of cloud and multitenancy, of whether it was real cloud and how they can call it cloud if it does not support multitenancy.  This is usually the spot where I bite my lip, work through the pain and try to ignore the discussions.  Unfortunately, I cannot bite much longer – pretty sore and bloody…

There is a commonly held belief among people in this world that nothing can be cloud without being multitenant.

A horribly wrong belief.

Multitenancy is a leftover from hosted applications times.  Back then (when applications were massive and complex, not distributed, and basically just offered a web-interface to a client-server or similar solution running in the data center) there were few ways to make sure a vendor offered the same  version of the solution to each person who worked in the hosted model: offer multiple interfaces to a single instance of an application and take appropriate precautions so each person using the application would see a personalized (to a certain extent, not everything can be personalized in a hosted application) version of the same application.  This made administration of the application easier (can you imagine having to apply a patch or a new parameter to 1,000s of replicas of the same application?) for the vendor (also far cheaper as they did not have to pay for multiple instances) and guaranteed the user would always be running the latest and greatest version of the application without even thinking about it.  Along the way, and as we progressed to trued cloud solutions, multitenancy became the crying battle for what cloud applications should be and how all vendors should be judged as being “true cloud” or not.

You are probablly sitting there and nodding your head, saying “yes, that is what I know to be certain”.  Except that it is not.

True cloud computing does not care about multitenancy.  To paraphrase a popular line from the movie “The Matrix” — once you are in cloud computing, you won’t care if it is multitenant or single-tenancy; there is no “spoon”.

To see cloud computing in better perspective, don’t think of large applications – think of your smart phone (I almost said Android instead of iPhone when referring to smart phones, but did not want to start that war between toy and phone – know what I mean? different rant, different day).

In the cloud, all applications SHOULD be like your smart phone apps: small, single-function, easy to build and deploy, and easy to manage (via App stores or marketplaces).  If you think of the cloud that way, you quickly begin to realize that multitenancy does not matter in the cloud: regardless of where the app is, it is not hard to keep always the latest-and-greatest one deployed (my Android updates all my apps automatically, sans a few — but that is a human-introduced issue with DRM and pseudo-privacy, not a cloud problem).  I don’t worry about my data being shared or not (one of the many, also wrong, complaints of those that don’t care for multi-tenancy) since I store it where I want to, use it as I want to, and control it as I want to.  The brunt of the application, the work to be done, happens in platforms across the world – platforms that perform commands in coordination with an Infrastructure layer and a Software (which should actually be called presentation) layer.  By definition, you can replicate  infrastructure, platforms and software ad-nausea in the cloud and never have to worry about tenency (systems management, another issue – far more complex and one to which Microsoft made no favors by introducing their SMS product in the late 1990s – what a flop and improper use of the term; slightly better today, but damage was done).

Hope you can see the difference between hosted applications and a true distributed architecture like cloud computing (especially when it comes to multitenancy).  I hope you can see why multitenancy is something that, once you are in the cloud, it does not matter — unless you deploy hosted applications, called them cloud, and want your customers to discuss something that is remote from what they should be discussing and educating themselves about: true cloud computing architecture and how to deploy that in their organization.

Multitenancy discussions when talking about true cloud computing just distract from the issue and I wish the vendors would get smarter and stop using that legerdemain to hide that their solutions are not really, truly, cloud-compliant.

Of course, that is just me — the cloud purist.

What do you think?

(BTW, as I was getting ready to push this out Dennis wrote another interesting post, check it out – he says that the discussion on multitenancy matters)

Disclaimer: SAP is a client, but it does not matter for this post as I only mention them in passing and make no statement either in favor or against their actions.  Just sayin’