Monday, August 18, 2014

Multitenancy

Multitenancy refers to the practice where only a single instance of software is running and caters to the needs of many tenants (clients).

For a software as a service environment on the cloud, the mort important design paradigm is multi-tenancy. 

Because there is one code base and all customers access it on the cloud, it is important to separate the data of individual customers. 
With multi tenancy each customer's private data is stored in a separate container and is isolated from Data of other customers. 

This is usually relatively easy to achieve since database creation and deployment can easily be automated.

I guess this originates from the fact that the cloud resources can be consumed on demand, be it CPU or storage space. This has a lot of parallels with  virtualization on which the cloud computing is based upon. In virtualization too, the customer gets his own machine, but it is a virtual machine, which is separate for each customer.
Any specific requirement of one customer also gets implemented in the same piece of code and all customers get it.. As a software developer my life is much easier when I have to maintain a single code base instead of multiple versions of the code, one per customer. One can ofcourse hide the specific requirement from other customers based on diversity.