Multi-tenancy vs Single-tenancy software architecture
Published: 2023-02-01 13:03:13

## Terminologies
**Tenant:** An instance of the software that can be used by a client/customer.

---

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/svnbacc3rw3574bgqwmg.png)

---

## What is multi-tenancy?

Multi-tenancy is a software architecture that let a single software deployment serve multiple tenants. Software resources are shared among all tenants however, each tenant has guaranteed data isolation and privacy.

### Pros and cons of multi-tenancy architecture

#### Pros:

##### 1. Applications are easy to deploy
The application can be deployed and managed as one instance of software application. One instance of application could serve all customers.

##### 2. Lower hardware cost
Multi-tenancy architectures allow for efficient usage of compute and hardware resources as they all being shared which reduces overall cost.

##### 3. Single software instance is much easier to maintain, secure, and optimize.
The multi-tenant application architecture is designed in such a way that it makes it much more efficient to manage.

##### 4. Fast Scaling
Adding new customers should be effortless and achievable within a software application. It does require extra configuration or spinning new containers.

#### Cons:

##### 1. High Development Cost
Design & development of a multi-tenant application may be challenging as it requires considering data segregation for a single entity and cross tenant access where some tables may need to be accessed by multiple customers or separate database needs to be maintained.

##### 2. Higher Security Risk
In case of a data breach or security vulnerability, all customer data can be affected.

##### 3. Downtime for all customers
If the application is down all the customer will be affected.

---

## What is single-tenancy?

Single tenancy is an architecture that enables one tenant per instance of the software. Every new tenant will need new instance of application hosted on a dedicated hardware for the client.

#### Pros:

##### 1. Easy to restore & backups
In the single-tenant system, the tenant can manage updates by downloading and upgrading local applications. When configuring backups and recovery options, this model allows for better overall control. This lets manage client individual backups more efficiently as each backup can be done separately.

##### 2. Improved Security
As single-tenant application lives in an isolated environment it is more secure and independent therefore, it increases customer's data protection.

##### 3. Individual Upgrades/Updates
The application can be upgraded/Updated separately without affecting other customers.

##### 4. Self-Hosted migration
Tenant will have the option to migrate an application or change hosting provider. Software instances could be migrated from the cloud to on-premises if requested.


#### Cons:

##### 1. Resource underutilized
Often underutilized resources are a common issue when running multiple instances as each tenant needs a new software instance with allocated resources.

##### 2. More effort to deploy
Single-tenant applications take more time to deploy, as each customer gets a separate instance running.

##### 3. Higher hardware costs
The cost of ownership and maintenance is a lot higher.

##### 4. Number of instances grows quickly
Adding a new customer requires adding a new instance, which means more resources and more costs.

##### 5. Difficult to manage
Maintaining, securing, and optimizing multiple software instances is difficult, and requires a much bigger team.