Traditionally, different instances of the same software are run on different servers for different clients. The hardware is different, the software instance is different and so are the database schemas. The infrastructure could be in-house or outsourced.
In software architecture, when a single instance of software runs on a server and is used by multiple clients, it is termed as multi-tenancy. The hardware, operating system, data-storage and software application are same for all clients. But clients cannot share or access each other’s data.
There are minor differences as compared to virtualization where each customer’s application appears to run on a separate physical machine. Security is more robust in virtualization as compared to multi-tenancy.
The key advantages of multi-tenancy are:
IT resources, both hardware and software, are utilized fully with multiple customers accessing the same resources.
Since there is a single database schema, data is collected from a single source. This simplifies data mining and analysis. Performance tuning of the database also becomes easier for the administrator.
Release management becomes simpler since there is only single instance of the application. The upgrades done to the software or hardware are common for all customers. Administration and maintenance of the infrastructure becomes easier as there is only a single platform and hardware to maintain.
When a new hardware is added to the platform, the capacity and procession power of the whole environment increases. This makes scaling up easier for all customers.
Economies of scale lead to cost savings for customers since the licensing costs of underlying software, maintenance costs of hardware, etc are all shared. This is beneficial to small and medium enterprises which need IT resources but cannot afford to invest on the infrastructure.
Multi-tenancy model has some pitfalls as well as compared to traditional single-tenancy model.
- Since per tenant metadata needs to be stored and maintained, the multi-tenant applications need more efforts to maintain. The environment also becomes complex.
- In a single-tenant environment, if there is any problem only one client is impacted, whereas in a multi-tenant environment, all clients are impacted simultaneously in case of problem.
- Downtime during new releases or updates impact more than one client. Even if an update is for one customer, the downtime during release impacts all.
- There are security concerns also since competing enterprises might be sharing the same infrastructure.
The service providers must put in extra efforts to ensure business continuity, performance and address security concerns of their customers.
Extract from forum posting by Uma Avantsa, Contributing Editor, TradeBriefs