Multi-tenant clouds are environments in which multiple users, or “tenants,” can reside on one or multiple applications, running on the same cloud, with data isolation that ensures the privacy of each tenant’s data. Tenants share a common access with specific privileges to the software or application and can be a single individual, an entire department, or a customer. Gartner points out that, though these tenant environments are completely isolated at a software level, the degree of separation at a hardware level will vary widely depending on the practices at your organization.
In a multi-tenant cloud, each tenant can use and modify resources within limits set by a cloud owner; this supports customization by the tenant which drives flexibility and efficiency in the environment.
Multi-Tenant Public Clouds
Most public clouds and many private clouds today support multi-tenancy, including OpenStack. By these definitions, an environment is often defined as an entire cloud, which can often span regions and data centers depending on the cloud’s size. In a public cloud, these tenants are usually defined by who’s paying – each customer gets their own tenant or tenants.
Multi-Tenant Private Clouds
In a private cloud (like OpenStack often is), an organization might have dozens or hundreds of users accessing resources independently within the same cloud. While these users typically don’t pay for their resources, it’s often helpful to understand consumption for departmental or end-user purposes. You’ll often find that tenants are referred to as “projects” within the OpenStack community, in an effort to skirt the confusion between public and private use cases.
Benefits of Multi-Tenant Clouds
There are numerous advantages to multi-tenancy:
- Economies of scale drive significant cost savings. Because there is no need for separate environments for different departments/customers, development and maintenance costs as well as storage and network bandwidth can be shared across multiple tenants, with usage metered and billed accordingly. Much like tenants in an apartment building, tenants of a multi-tenant cloud enjoy the flexibility to customize their own “space,” with the cost savings that come with shared resources.
- One instance of an application serving multiple tenants supports streamlined and efficient release management and overall maintenance.
- Multi-tenant environments allow developers to work on the same platform that their product will ultimately run on. This ability to mirror production environments drives development efforts that more effectively address real-world usage.
On the flip side, there are inherent disadvantages and risks that come with multi-tenant environments. While there is a demand for significant development efforts to support customization by tenants, there is a degree of customization that is not possible in an environment where resources are shared between tenants. There is also an ongoing concern about data security and privacy between tenants, and the impact of a breach, hack, or user error within and across tenants.
If you’d like to know more, there are countless resources available on multi-tenancy. OpenStack.org is a great place to get started, with presentations and technical articles pertaining to multi-tenancy in OpenStack.