What is Multi-Tenancy?

10
  • What is Multi-Tenancy?
  • What are the main approaches to implementing it?
asked by anonymous 25.01.2017 / 12:00

2 answers

10
  

What is Multi-Tenancy?

It is the ability of the application to support the execution of several users or groups of users that have some connection and need its operation in a specific way. In general each one will have its data separated, own configurations, work independently, but it is an application only 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 name says, you lease a portion of an infrastructure for you. Other parts of the same infrastructure are available to others in isolation. The isolation comes from the way the application was developed.

The operating system usually works like this, at least in parts. Since everything is not perfect like multitenancy there are solutions like Docker . Databases work like this.

Virtualization, cloud, these things are not usually considered multitenancy because the insulation is too large 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 stands in the way that the application runs totally isolated for many users. If you do totally separate installations, even running on the same machine is not multitenancy.

But obviously it does not even have to be all on the same machine to be multitenancy, as long as the various machines work with more than one user group in isolation. The fact that the application is distributed has nothing to do with the multi-tenancy concept.

In general there are different databases (no matter what that DB is, whether it is SQL, whether they are files and directories, Windows registry, etc.) for each user / group and code knows how to handle it. You can not have anything to do globally on the machine, because the machine is not just a user.

If the application is not designed to work in this way, there will probably be confusion. In general, this requires a bit more complexity in development because everything needs to be configurable according to the "customer" that is leasing without disrupting others, but it facilitates the physical deployment and maintenance of the environment, although upgrades may be more problematic. p>

Maintaining development needs to be done with a little more care because several situations are possible, especially when something incompatible is done. It worsens when "customers" have a lot of flexibility and can over-customize a few things.

  

What are the main approaches to implementing it?

I do not know if I can answer this, except by stating the obvious, that all features need to be accessible as some information that refers to which client is operating at that time. This decision to pick up the data of which place can be taken based on the login effecting, a setting somewhere, a key, the place where the access comes from, or even the internet domain that is 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 owns that row. Or you 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 name. I've cited application examples that many people do not realize is multitenancy, each one has its approach, one who understands how they work should realize how each works.

    
25.01.2017 / 12:06
4

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

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

    
25.01.2017 / 13:34