Search
Lori MacVittie - Two Different Socks
You are here: DevCentral > Weblogs

posted on Monday, August 09, 2010 3:25 AM

Multi-tenancy encompasses the management of heterogeneous business, technical, delivery, and security models.

Last week, during what was certainly an invigorating if not agonizingly redundant debate regarding the value of public versus private cloud computing , it was suggested that perhaps if we’d just refer to “private cloud” computing as “single-tenant cloud” all would be well.

I could point out that we’ve been over this before, and that the value proposition of shared infrastructure internal to an “organization” is the sharing of resources across projects, departments, and lines of business all of which are endowed with their very own budgets. There are “customer” level distinctions to be made internal to an organization, particularly a large one, that may perhaps be lost on those who’ve never been (un)fortunate enough to work within the trenches of an actual enterprise IT organization.

The problem is larger than that, however, and goes far beyond the simplistic equating of “line of business” with “company”. Both still assume that tenant is analogous to business (customer in the eyes of a public cloud provider) and that’s simply not always the case.

THE TYPE of CLOUD DETERMINES the NATURE of the TENANT 

Certainly in certain types of clouds, specifically a SaaS (Software as a Service) offering, the heterogeneity of the tenancy is at the customer level. But as you dive down the cloud “stack” from SaaS –> PaaS –> IaaS you’ll find that the “tenant” being managed changes. In a SaaS, of course, the analogy holds true – to an extent. It is business unit and financial obligation that defines a “tenant”, but primarily because SaaS focuses on delivering one application and “customer” at that point becomes the only real way to distinguish one from another. An organization that is deploying a similar on-premise SaaS may in fact be multi-tenant simply by virtue of supporting multiple lines of business, all of whom have individual financial responsibility and in many cases may be financially independent from the “mothership.”

Tenancy becomes more granular and, at the very bottom layer, at IaaS, you’ll find that the tenant is actually an application and that each one has its own unique set of operational and infrastructure needs. Two applications, even though deployed by the same organization, may have a completely different – and sometimes image conflicting – set of parameters under which it must be deployed, secured, delivered, and managed.

A truly “multi-tenant” cloud (or any other multi-tenant architecture) recognizes this. Any such implementation must be able to differentiate between applications either by applying the appropriate policy or by routing through the appropriate infrastructure such that the appropriate policies are automatically applied by virtue of having traversed the component. The underlying implementation is not what defines an architecture as multi-tenant or not, it’s how it behaves.

When you consider a high-level architectural view of a public cloud versus an on-premise cloud, it should be fairly clear that the only thing that really changes between the two is who is getting billed. The same requirements regarding isolation, services, and delivery on a per-application basis remain.

THE FUTURE VALUE of CLOUD is in RECOGNIZING APPLICATIONS as INDIVIDUAL ENTITIES

This will become infinitely more important as infrastructure services begin to provide differentiation for cloud providers. As different services are able to be leveraged in a public cloud computing environment, each application will become more and more its own entity with its own infrastructure and thus metering and ultimately billing. This is ultimately the way cloud providers will be able to grow their offerings and differentiate from their competitors – their value-added services in the infrastructure that delivers applications powered by on-demand compute capacity.

The tenants are the applications, not necessarily the organization, because the infrastructure itself must support the ability to isolate each application from every other application. Certainly a centralized management and billing framework may allow customers to manage all their applications from one console, but in execution the infrastructure – from the servers to the network to the application delivery network – must be able to differentiate and treat each individual application as its own, unique “customer”. And there’s no reason an organization with multiple internal “customers” can’t – or won’t – build out an infrastructure that is ultimately a smaller version of a public cloud computing environment that supports such a business model. In fact, they will – and they’ll likely be able to travel the path to maturity faster because they have a smaller set of “customers” for which they are responsible.

And this, ultimately, is why the application of the term “single-tenant” to an enterprise deployed cloud computing environment is simply wrong. It ignores that differentiation in a public IaaS cloud is (or should be) at the same level of the hierarchy as an internal IaaS cloud.

CLOUD COMPUTING is ULTIMATELY a DEPLOYMENT and DELIVERY MODEL

Dismissing on-premise cloud as somehow less sophisticated because its customers (who are billed in most organizations) are more granular is naive or ignorant, perhaps both. It misses the fact that public cloud only bills by customer, its actual delivery model is per-application, just as it would be in the enterprise. And it is certainly insulting to presume that organizations building out their own on-premise cloud don’t face the same challenges and obstacles as cloud providers. In most cases the challenges are the same, simply on a smaller scale. For the largest of enterprises – the Fortune 50, for example – the challenges are actually more demanding because they, unlike public cloud providers, have myriad regulations with which they must comply while simultaneously building out essentially the same architecture.

Anyone who has worked inside a large enterprise IT shop knows that most inter-organizational challenges are also intra-organizational challenges. IT even talks in terms of customers; their customers may be internal to the organization but they are treated much the same as any provider-customer relationship. And when it comes to technology, if you think IT doesn’t have the same supply-chain management issues, the same integration challenges, the same management and reporting issues as a provider then you haven’t been paying attention.

Dividing up a cloud by people makes little sense because the reality is that the architectural model divides resources up by application. Ultimately that’s because cloud computing is used by applications, not people or businesses.


Related Posts

Follow me on Twitter    View Lori's profile on SlideShare  friendfeed icon_facebook

AddThis Feed Button Bookmark and Share

 



Feedback

8/9/2010 5:34 AM
Gravatar Lori, while I think what you said is true for IaaS clouds. As you say it is less so in SaaS environments. But what about PaaS? I think PaaS fits somewhere in between the other two. But if PaaS is to become the dominant form of cloud (it is isn't it ;-)) then what does that mean in terms of what you say here?
alan shimel
8/9/2010 6:16 AM
Gravatar Lori,

As always a great article and spot on. Having run an ASP back in the day we were always challenged to find ways to drive more information and control to the tenants. With public and private cloud this is going to continue to be one of the key challenges.

The evolution in the datacenter from a virtualized environment that is controlled by traditional "Ops" teams will indeed have to shift to a provisioning infrastructure that allows a tenant to build an environment and get "charged" for it. Over time we've seen system admin's become VM admins who manage more than just servers.

Even today this doesn't go far enough as it requires the DBA or MS wizard to wait for VM admins to provision the OS and then storage before these folks can start their work. A cloud (pub or private) should allow these folks to build environments as needed via a tenant in control model that allows them to (within boundaries) build the environment, put growth/expansion policies in place, and fire up their application, monitor it, leverage backup/DR services, etc.. This is just an example of COTS software deployment and this only helps make what they do today more efficient.

The next phase (or concurrently in some shops) will need to be even more abstracted as IT employs new tools that allows developers to get these resources without worrying about the underlying infrastructure. To do this we'll need development environments that are aware of underlying IaaS policies and resource limitations and capabilties. This will require the advanced orchestration capabilties that you've written about before e.g. app dev tools are orchestration aware.

A final note on the pub/private thing, I think it will end up being muted by the fact that companies will have some proportion of each over time. It will boil down to the same determinates we live by today - the economics and risk profiles. Companies will have internal outliers jump into the public cloud without thinking things through, startups/small companies that have high risk thresholds, and others who will go mostly private at first. Eventually each company will have to inventory their applications and make a determination of what works where best based on the costs and risks.

/wayne

Wayne Pauley
8/9/2010 6:41 AM
Gravatar @Alan

PaaS is the weird in between case, agreed. It's both IaaS and SaaS in one big network box. I think some services offered - messaging, workflow, etc... - fall into the same category as infrastructure/network services while others - data, specifically - end up falling into the SaaS-style category.

Thus PaaS has to somehow marry both. Not an easy task and I unfortunately don't have a technical architecture ready to deal with that one, but it will likely need to (for production/publishing anyway) treat the entire stack more like IaaS than SaaS to handle the distinction. Or perhaps it'll end up a combination, with an "application" being coupled to a customer for purposes of billing/application of policies.

Lori
macvittie
5/4/2011 2:45 AM
Gravatar If a Network Can
Lori MacVittie

Let Me Know What You Think


Please use the form below if you have any comments, questions, or suggestions.

Title:
 
Name:
 
Email: (so we can show your gravatar)
Website:
Comment: Allowed tags: blockquote, a, strong, em, p, u, strike, super, sub, code
 
Please add 1 and 1 and type the answer here:

Blog Stats

Posts:979
Comments:1685
Stories:0
Trackbacks:583
  

Image Galleries

  

Application Delivery

  

Cloud Computing

  

Random

  

Security

  

Chat Catcher

82,243 Members in 102 Countries and Growing!

Join DevCentral Today!

About DevCentral

DevCentral has been a successful, thriving community for many years. We have always strived to bring you the best technical documentation, discussion forums, blogs, media and much more that we can.

So dive in, get familiar with DevCentral. We hope you like it, we hope it makes your job easier, and lets you get that much more power out of the community. To learn more, make sure to check out the Getting Started section. And if you have any problems, or think something could be easier to use, drop us a line to let us know.

Got It !

We've received your comment and transmitted it directly to DevCentral HQ.

Thanks for taking time to let us know what's on your mind. At DevCentral | Community Matters!

Get In Touch With Us

Have questions, suggestions or just want to get something off your chest?

Use our handy form below to Direct Connect with DevCentral Mission Control.

Send Us Feedback       or