Browse DevX
Sign up for e-mail newsletters from DevX


Implementing a Multi-Tenancy Architecture, Tier by Tier

Go step by step through the tiers of a typical software stack, exploring the options for implementing multi-tenancy on each.


A typical software stack consists of two tiers (an application tier and a database tier) and three layers (the application layer, the middleware layer and the infrastructure layer). In this second installment of my implementing a multi-tenant cloud architecture series, I go step by step through the application layers and tiers, exploring the options for implementing multi-tenancy on each. The first installment explored the common strategies for implementing a multi-tenant architecture.

Multi-Tenancy for All Layers of the Application Tier

I begin with the multi-tenancy options for the three layers of the application tier. Figure 1 below provides a reference for our discussion, where T refers to tier, MW refers to middleware, and VT refers to virtualized tenant.

Multi-tenant cloud architecture
Figure 1. Multi-Tenancy for Application Layer of the Application Tier

Multi-Tenancy for the Application Layer

Here are the multi-tenancy options at each application layer:

  1. Enable a complete multi-tenancy application that serves multiple tenants, T1 to T3. The application itself resides on MW. This is a typical consideration for applications and services that are either built from scratch or re-engineered. In such a scenario, the application has all the capabilities required to serve multiple tenants at the same time.

  2. Enable multi-tenancy with virtualized tenants through a smart feature of the underlying MW1. If the application is not enabled with multi-tenancy, but the MW has capabilities to deploy it virtually in a multi-tenancy fashion, this might provide the application multi-tenancy capabilities.

  3. Instantiate an application instance and a corresponding MW instance per tenant. This might not be the only option if neither the application nor the capabilities in the MW allow multi-tenancy, as in options 1 and 2. In this case, multi-tenancy capabilities can be achieved on only the MW layer or the infrastructure layer.

Multi-Tenancy for the Middleware Layer

Each MW instance requires its own OS environment (see Figure 3 below). The OS is capable of serving multiple instances of the MW, which requires process-level and address space-level separation capabilities. The OS has virtualized OS capabilities with the instances vOS1 to vOS3. Each MW runs on its own virtualized OS environment.

Multi-tenant cloud architecture
Figure 2. Multi-Tenancy for Middleware Layer of the Application Tier

Multi-Tenancy for the Infrastructure Layer

For infrastructure layer, you have only two options:

  1. A single OS instance per hardware instance

  2. Multiple OS instances (OS1 to OS3) per hardware instance

Thanks for your registration, follow us on our social networks to keep up-to-date