What is a Multi-tenancy?

Asked

Viewed 8,121 times

18

  • What is Multi-tenancy?
  • What main approaches to implementing it?

2 answers

20


What is Multi-tenancy?

It is the ability of the application to support the execution of several users or groups of users who have some connection and need to run it in a specific way. In general each one will have its own data, own settings, work independently, but it is an application just running. In general this group of users may be a company that has hired an application service. But it can be your browser that allows multiple users to use it independently without the use of one affecting the other.

As the English name says, you leasehold a part of an infrastructure for you. Other parts of the same infrastructure are available to other people in isolation. Isolation is due to the way the application has been developed.

The operating system usually works like this, at least in parts. As not everything is perfect like multitenancy there are solutions like the Docker. That’s how databases work.

Virtualization, cloud, these things aren’t usually considered multitenancy because the insulation is too big is almost like running on separate machines. But mainly there are separate instances, the isolation is not done by the application in question but by an external tool.

It is opposed to the application running in a totally isolated way for several users. If you do totally separate installations, even running on the same machine is not multitenancy.

But obviously it doesn’t all have to be on the same machine to be multitenancy, provided that the various machines work with more than one group of users alone. The fact that the application is distributed has nothing to do with the concept of multi lease.

In general there are different databases (no matter what this DB is, if it is SQL, if it is files and directories, Windows registry, etc.) for each user/group and code knows how to handle it. There can’t be anything you do globally on the machine, because the machine is not just a user.

If the application is not designed to work that way there is likely to be confusion. In general this requires a little more complexity in the development because everything needs to be configurable according to the "client" who is renting without disturbing the others, but facilitates the implementation and physical maintenance of the environment, although updates may be more problematic.

Development maintenance needs to be done with a little more care because various situations are possible, especially when something incompatible is done. It gets worse when "customers" have a lot of flexibility and can customize some things too much.

What main approaches to implementing it?

I don’t know if I can answer that unless I state the obvious, that all resources need to be able to be accessed according to some information that refers to which client is operating at that time. This decision to take the data from which place can be taken based on login effecting, a configuration somewhere, a key, the place where the access comes from, or even the internet domain you are accessing, just to name a few.

If you are going to use a traditional database, it may be that all "clients" are in the same database and have a key to differentiate who that line belongs to. Or it can have different databases and completely isolated, which can give more possibilities of personalization of each one.

The approaches are so many and some so specific to the type of application that it would be difficult to quote. I’ve cited examples of application that many people don’t realize is multitenancy, each one has his approach, who understands the functioning of them must understand how each one works.

The system that uses this is multi-tenant.

10

Summarized multi-tenancy is when you have a system that accepts several users, where each user uses the system in isolation.

An example is the wordpress with. where each user has their blog independent and isolated from other blogs. Different from Facebook, where all users coexist in the same environment.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.