Whether you are the cloud consumer or the cloud provider, the issue of multitenancy is bound to enter the equation at some point in the deployment process.
But considering that it is such a crucial aspect of the cloud experience, it’s surprising that there is so little discussion of what it is and how it affects performance. Simply put, multitenancy is the ability to share a single software instance with multiple users (tenants). However, once you get into the actual implementation of clouds and cloud services, it becomes clear that there are multiple ways to implement multitenancy, and some approaches may be more suited to certain IT goals than others.
As BMC Software’s Giuseppe Nardiello pointed out recently, multitenancy is not a black-and-white world. There are many gray areas when it comes to management, customization and the role(s) that a particular data environment is expected to play. For instance, administration can be either monolithic across all tenant instances, or there can be degrees of flexibility for users to devise their own admin regimes. If it is the latter, will management features be apportioned manually or through an automated system? As can be imagined, the configuration of multitenant clouds will depend largely on its size, growth potential, how frequently workloads or even tenants themselves come and go, and a range of other factors.
Think of the multitenant cloud like a condominium where residents occupy their own living areas but share common infrastructure like stairways, hallways and a swimming pool. The main difference, says Apprenda’s Toddy Mladenov, is that in the cloud, tenants can choose to share resources in many different ways. There could be multitenancy strictly on the infrastructure level, or it could extend to part or all of the OS. It can also reach right into the application level, although this is costly and begins to erode the standardization of services that makes the cloud such a compelling alternative to the traditional data center.
The complexities involved in multitenancy are leading to a watershed of new software systems aimed at smoothing out many of the rough spots. Companies like Waratek are devising open-source APIs that enable Java Virtualization solutions for legacy applications. The Waratek Java Virtualization Interface (JVI) provides a rapidly deployable framework to enable seamless customization of apps so they can function more appropriately in cloudy, multitenant environments. Most importantly, the system does not require any code changes in the application itself, a tremendous boon for enterprises looking to leverage their existing application portfolios in the private cloud.
The danger of multitenancy, naturally, is overdoing it. As tech blogger David Hill points out, all it would take is a few tenants to experience a data spike simultaneously and contention for resources could quickly start to hamper performance for all users. To combat this “noisy neighbor” problem, providers like CloudSigma are boosting their infrastructure with solid-state storage and other upgrades. In this way, the company is able to provide stability for subscription tenants while enabling rapid burst capacity for casual users.
The very nature of the cloud is to distribute resources to as wide a user base as possible, thereby reaping the rewards of broad resource utilization and high data flexibility. So it only stands to reason that one client’s resource footprint will butt up against another’s on a fairly regular basis.
With advanced management platforms and a clear notion of what levels of performance are acceptable and unacceptable in the cloud, enterprises and service providers should be able to manage their tenants relatively easily. To do that, though, they will have to resist the temptation to drive resource efficiency to the point that there is no room for a sudden influx of data.