The concept of multitenancy actually dates back to the 1960s, when companies rented time on mainframes, which were rare and expensive. Back then it was called time sharing. Multiple customers could access the same apps at the same time, a feat only mainframes could do.
Starting in the 1990s, application service providers (ASPs) hosted applications on behalf of their customers and like mainframes, the same apps were made available to multiple customers.
In the modern era, multitenancy is part and parcel of software-as-a-service models like Salesforce, Office 365, Zoho, Box, Zendesk, Slack, and many more applications on demand.
As mentioned above, cloud providers do offer multitenancy, in a technique of shared use of computing resources. However, this shared use of resources should not be confused with virtualization, a closely related concept. In a multitenancy environment, multiple customers share the same application, in the same operating environment, on the same hardware, and with the same storage mechanism. In virtualization, every application runs on a separate virtual machine with its own OS.
Single-Tenant vs. Multi-Tenant
Single-tenancy is largely seen as the "deluxe" option, in that a client operates in a solely dedicated environment. In a multi-tenant environment, each customer shares the software application along with a single database, so multiple people from the same company can access the database. Still, even in multi-tenant, each tenant is isolated from other tenants.
Advantages of Single-Tenant Hosting
Single-tenant hosting gives clients more control because there is no sharing of resources. This manifests in a number of ways:
- Greater customization: Since they have only clients, single tenants can customize the software for their needs, whereas multi-tenant tends to be one-size-fits-all.
- Greater isolation from security risks: You control the environment and (hopefully) what goes in and out of it.
- Faster recovery: Restoring one client is faster and easier than
- Better control: Single-tenant can be choosier about accepting software changes and updates and decide what add-ons they want to use.
- Avoiding “noisy neighbor” syndrome: Since you are sharing resources in multi-tenant scenarios, someone else who is really heavily using the system might slow you down.
Disadvantages of Single-Tenant Hosting
Though some companies prefer it, there are downsides to single-tenancy.
- Cost: There is no cost sharing for things like balancing, services, system monitoring, and
- Client Responsibility: Clients are responsible for software updates, patches, backup, restore, and disaster
- Less efficient: Single-tenant systems can be less efficient if they don’t run at full capacity or if they are over-provisioned.
Advantages of Multi-Tenant Hosting
The chief advantage of multi-tenant hosting is that it is less expensive. Resource pooling greatly reduces the cost since you only pay for what you need. And since multi-tenant is part of a SaaS provider, you are not paying for on-premises hardware. Functions like system monitoring and servicing the deployment become shared among all of the customers, which makes it less expensive as the cost is spread around.
There are other advantages as well.
- Simplified hosting: It’s not your hardware to manage anymore, reducing a lot of time and
- Better protection of systems: With less interaction with the outside world, exposure to malicious software is reduced.
- Upgrading software is no longer your problem: You always get the latest version of software pushed out to you by the provider.
Disadvantages of Multi-Tenant Hosting
Despite its cost advantage, multi-tenant environments have some downsides.
- They have their own security risks: For starters, you need strict authentication and access controls to make sure the right people get access. Second, data corruption could possibly spread from one user to all, though precautions guard against
- Downtime: Outages can be nationwide, and often make the news when they happen. SaaS providers tend to build enough redundancy into the system to minimize
- Noisy neighbors: As mentioned earlier, someone else on your CPU might be consuming cycles and slowing you down. Capacity is supposed to be elastic and expand as needed but that’s not always the case.