PrivatelyExposed

A Blog dedicated to exploring privacy and technology

Multi-tenancy: It’s not just for databases anymore

Posted by Wayne on October 16, 2009

This week I had the priviledge to participate as a moderator with some of EMC’s smartest innovators at the 3rd Annual EMC Innovation Conference. I got to ask them what their views were on multi-tenancyas it applied to the basis of their work – storage, virtualization of servers, and databases.

For the cloud – multi-tenancy is going to mean all of the above plus networks.

One of the analogies I’ve heard on multi-tenancy  floating around work for a while had to do with the notion of a motel where the rooms are temporarily occupied by a tenant. When the tenant doesn’t need the room anymore the room is cleaned out and then can be used by someone else. The motel analogy is certainly one that is a fair metaphor for server virtualization but seems to fall down with database multi-tenancy.

Database multi-tenancy tends to be a little more complex – not because it is hard to create a good “motel room” for the tenants – but because it is much harder to provide the tenants all the amenities they tend to want. By amenities we’re talking about the trade-offs in granularity, scale, performance, customization, and security/privacy. These trade-offs are tough enough to manage when they are inside your own data center but are much harder when out in the cloud world with external, unknown tenants who bring along a new set of risks for the provider and the tenant.

Network multi-tenancy has been around for years in the form of VLAN’s, NAT’s, and VPN networks which provide segementation and protection of connected tenants – or resource isolation.

Now – what happens when you mash these layers  together and make them all multi-tenant? Isn’t this an attribute of the cloud?

Yes – this is a key attribute and a requirement for much of the cloud (private or public). The design goals of multi-tenancy are pretty straightforward and should resonate with folks who have already embarked on the server virtualization journey or who :

  • Leverage technology – both the hardware and software  by creating shared resources for multiple users or uses (apps) while maintaining isolation. For the cloud this applies to all layers (net, server, etc.)
  • Improve cost structure –  improve repeatability by reducing customizations and sharing resources while maintaining resource isolation.

The challenges of building and supporting this type of architecture with regard to the cloud exposes a couple of  divergent requirements: 

  • Custom vs. Utility – How to provide a “utility” based economic model, support strong resource isolation for the tenants, while allowing “custom” and temporal workloads?
  • Siloed Tenancy – Multi-tenancy is currently silo’d to a layer of the infrastructure (e.g. DB is not related to Network multi-tenancy).

In particular I’m interested in the second one (silo’s) because I think the first one will work itself out as the market makes trade-offs and  incremental improvements. The silo issue is a bigger one – that I think we’ve seen public cloud providers Google App Engine and Amazon Web Servicessupport today (by obfuscation). With the delivery of new capabilities in the hypervisor vendors such as with VMwares VMware vCloud API and vApps which allow applications to run seamlessly across private or public cloud infrastructures – we should begin to see other layers take advantage of these kind of API’s.

One example I can see of this being a good path to go down is so that the role/identity problem that exist’s today within one layer is tough enough. Add in multi-tenancy – role management and resource access (protection) are critical to making sure a database with a shared schema protects the tenants data. Take that notion and expand it to the other layers. Now the identity needs to persists across the network, OS, and database while also allowing the identity to have multiple roles – such as group or department leader who may own managing access rights to a subset of the departments data by other. The department leader may also be a plain user of their own groups information, user of several other groups information, etc. This quickly can become complex and unmanageable (“just give me admin access!”) – so an easy to use and flexible identity management capability is just ONE of the major challenges of a true multi-tenant cloud.

What do you think?

/wayne

 

Some urls and papers worth reading on multi-tenancy:

 Virtualization-based Techniques for Enabling Multi-tenant Management Tools


Architecture Strategies for Catching the Long TailMulti-tenant Data Architecture

 Agrawal, R., Ailamaki, A., Bernstein, P. A., Brewer, E. A., Carey, M. J., Chaudhuri, S., et al. (2009). The Claremont report on database research. Communications of the ACM, 52 (6), 56-65.

 

Aulbach, S., Grust, T., Jacobs, D., Kemper, A., & Rittinger, J. (2008). Multi-tenant databases for software as a service: schema-mapping techniques. 2008 ACM SIGMOD International Conference on Management of Data, Proceedings of the1195-1206.

 

 Aulbach, S., Jacobs, D., Kemper, A., & Seibold, M. (2009). A comparison of flexible schemas for software as a service. Conference on Management of Data, Proceedings of the 35th SIGMOD International881-888.

 

Candan, K. S., Li, W., Phan, T., & Zhou, M. (2009). Frontiers in information and software as services. 2009 IEEE International Conference on Data Engineering, 1761-1768.

 

Kaliski, B. (2008). Multi-tenant cloud computing:  from cruise liners to container ships.  In W. Mao, editor, Third Asia-Pacific Trusted Infrastructure Technologies Conference (APTC) 2008.  IEEE Press, 4.

 
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: