A Guide to the Cloud, Multi-Tenancy, and The One Codebase to Rule Them All

Bil Harmer's picture
Bil
Harmer
Advisory Board Member
September 08, 2015

What is multi-tenancy?

Ever since I started in the SaaS world back in 1999 there has been a continuous discussion on what "multi-tenant” means. Although there are many definitions floating around, experts such as Salesforce, TechTarget, and Gartner agree that a multi-tenant environment must have the following:

  1. Multiple “tenants” that use the same application/set of applications.
  2. A shared architecture across all tenants.
  3. Distinct separation between the instances run for each tenant.

Although this may seem like a simple concept, it has more nuance than this list suggests, and has been clouded by vendors claiming to be “multi-tenant” while running an older hosted deployment.  After all, the cloud did get it’s name from that little puffy icon on network diagrams that summed up everything outside the firewall. And as we continue to see growth in all the aaS’s (SaaS, PaaS, IaaS, etc.), more and more vendors are talking cloud, without building a true cloud application.

The fluffy-but-not-cloud old hosting model.

In the old days, hosted systems were very common. IBM, CGI, and others allocated servers and provisioned software to run systems for customers--meaning one installation of the binary for each customer. Systems were accessed over dedicated connections, and the “server” industry boomed. Now, the public infrastructure (the Internet) is used to access those same systems. The software, in a lot of cases, is legacy on premise software that is being run in the vendor’s data centers and typically uses a VMWare, Xen or other system-level virtualization to manage the deployments. These 20-year-old hosted-style deployments are not only in use today, but are often slapped with the ubiquitous “cloud” moniker.

The true multi-tenant cloud.

If you want the one true “cloud,” here’s a great working definition: a multi-tenant SaaS deployment, which has a single binary or deployment used to serve multiple customers. The unique element of multi-tenant cloud vendors offer is the shared codebase, which is rendered on login and able to interpret configurations to create a unique view for each customer. These unique views apply not only to look-and-feel and user experience; but (more importantly) authentication, roles and responsibilities for each user with respect to the data stored. True cloud applications are purpose-built from scratch as SaaS applications.

“Multi-tenancy in clouds has to go beyond the IaaS layer,
to include the PaaS layer ... and ultimately to the SaaS or
application layer … Only then can tenants can enjoy
the full spectrum of common services from a cloud”
- ComputerWorld

Why do business leaders care?

At this point you may be thinking, “So what?” Why does real, true mult-tenancy matter for SaaS applications? As you may have guessed, the answer, in part, is about security.

Lets take a security patch as an example: When updates need to happen because of a vulnerability like Heartbleed or Shellshock, a multi-tenant cloud provider only has to patch one installation (or at most one per data center).  A hosted, virtualized environment, on the other hand, will have multiple versions of their code running, based on customer preferences.  When it comes time to patch, the vendor will first need to ensure a clean inventory of versions; then write and test patches for each version; and finally deploy the correct patch to each and every instance. There are a multitude of spots where this can fail--either by missing a system, applying the wrong patch, or (worse) finding the system is compromised before the patch is applied.  

Although this is a scary scenario, it actually hints at an unlikely underlying problem--speed. Old, hosted-model supposedly “multi-tenanted” environments promise customers cloud speed and agility, but end up placing them in a queue behind hundreds--or even thousands--of other customers. A true multi-tenant cloud model doesn’t have this problem, since all customers are working from a single codebase. This is the difference been waiting in line outside the box office, and being able to buy movie tickets instantly online.

Anyone can call their product “cloud” if it’s not run on premise for the customer. And yet, a true multi-tenant SaaS offering is where you will find the most bang for the buck.  An application purpose built for both the solution it provides--and the environment it runs in. Just like you wouldn’t bring a box of car parts to a drag race, you need a truly whole multi-tenant SaaS solution to get the job done.

blog 2015 sidebar categories section
blog 2015 sidebar search section
Tweets by @gooddata

AddThis js
Perfect.Let's get started.