Multi-tenant architecture uses a single instance of a software application to serve multiple customer organizations, called tenants. Tenants are a group of users who share a common access point to the software. The systems that operate this way share the software, database(s), user interface and other properties (like help portals, forums and training software.) Multi-tenant typically refers to SaaS applications, although not all SaaS applications are multi-tenant, and not all multi-tenant applications operate on a SaaS model.
By comparison, in a single-tenant environment, a single instance of the application is dedicated to each customer organization.
There are multiple benefits to a multi-tenant architecture, such as:
- Costs: Multi-tenant operation has a lower cost per user due to resources being shared.
- Efficiency: Since the environment is the same for each customer, onboarding new customers is a faster process.
- Maintenance: Updates to a multi-tenant system include all customers, so system upgrades and maintenance can be managed by the software provider rather than the individual customers. This leads to fewer issues with multiple versions of the application running for different customers.
There are also limitations to multi-tenant architectures:
- Vulnerability: A multi-tenant environment allows multiple access points for users, which can increase the threat of a security breach.
- Complexity: Serving multiple clients in one instance of an application/database adds an extra level of complexity to the codebase and database maintenance.
- Backup: A multi-tenant environment makes backup and restoration more complex, so not all providers offer reliable restoration services.
- Less customization: A multi-tenant environment offers fewer customizations, so users have less control over the quality. There can be pressure to add customizations for individual tenants, especially if they are large organizations.
- Global problems: If a technical problem occurs on the provider’s end, it can lead to issues for all users. This may apply to uptime, system upgrades and other global processes.