Multi-tenant applications are extremely popular in the SaaS (Software as a Service) world. Almost all SaaS delivered CRM (Customer Relationship Manager) and SFA (Sales Force Automation) applications are necessarily multi-tenant. These applications use a meta-data driven model to enable the customization of applications on a per customer basis. This allows the provider to deploy a single application to scale vertically, supporting a wide variety of industries with a single code base.

In order to scale horizontally, however, it is necessary to deploy multiple instances of that single code base. To enable a scalable architecture to properly support (hopefully) thousands of users, a load balancer (application delivery controller) is often employed.

The load balancer provides the ability to scale and ensures availability for all customers of a multi-tenant application. By "upgrading" from traditional load balancing to application delivery, providers can offer additional customized services on a per-application (customer) basis. Because application delivery controllers provide both traditional (layer 4) load balancing and modern (layer 7) load balancing, they can apply application policies on a per domain, per customer, and even per user basis. Additional features such as compression, caching, application security, and optimization features can be applied through policies based on a wide variety of parameters such as domain, application, or current network/application conditions.

The adaptable nature of application delivery controllers makes them ideally suited to the task of supporting and enhancing multi-tenant applications because they themselves are, in practice, essentially multi-tenant devices. The same core "code base" provides load balancing functionality to all instances (Virtual IPs, or VIPs), but those VIPs can be "customized" through the application of meta-data (policies). Administrative domains provide granular administrative control over the application delivery controller and its delivery policies while standards-based control interfaces provide easy integration into workflow applications such as the provisioning process.

And just as SaaS applications like those from Salesforce.com offer an advanced platform for additional customization and the extension of functionality, a modern application delivery controller provides a similar platform for extending functionality and further customizing individual instances of an application in a multi-tenant architecture.

Application delivery controllers (ADC) and multi-tenant applications go hand in hand because both follow the same basic principles of design and deployment: meta-data driven customization applied to a common code-base provides a highly flexible, scalable infrastructure through which the needs of multiple industries and organizations can be met, all at lower implementation cost.

Imbibing: Coffee