Imagine your Office building is a 10-story high-rise on a Central Avenue in a city. Your office has 80-100 employees, so you require a space of one and a half floors in the building. You apply for the space in the building and after negotiation with building management over pricing, rules and regulations; both parties agree to sign an agreement. As per the terms, building management gives you access to one and a half floors as per your requirements.
Now you are one tenant in the building along-with multiple tenants that are already operating in the building and using it. There are some interesting facts to note here:
You are allowed to use the Building facilities like electricity, water supplies, security and parking etc. You are allowed to use the one and a half floor area allocated for your Office. Of course there are some limits to this usage, like you cannot break the walls and change the windows. But you are allowed to build wooden walls and rooms inside it according to your needs and decorate the office environment as you want.
You are also allowed to restrict access to your office area or some areas out of it. You are allowed to set some authorization rules for identification of people trying to access your office. Interestingly, even the building management will require your consent now to access your allocated area. Similarly, other tenants in the building also won’t be allowed to access your office.
Inside your allocated office area; you can setup multiple departments and multiple access levels. There can be a public area if you are dealing with public affairs (like a bank). The access permissions are set according to a person’s role. After the authorized identification check at the office entrance, a person will be allowed to access different areas according to the privileges and permissions assigned.
You are one TENANT in the building. And your office building serves multiple tenants (offices). Now, keeping this example in mind, let’s understand Multi-tenancy in Tango+.
IMG: An Image showing the concept of multi-tenancy in a High-rise building. Image rights reserved | Elixir Technologies
Multi-tenancy is an architecture in which a single instance of a software application serves multiple customers. Each customer is called a tenant.
If you have understood the office building analogy correctly, you can correctly relate it to a Tango+ server, considering it the same as office building premises. A Tango+ server is one physical server installation, with its common hardware resources, storage and database. It represents an office building with its associated facilities. One Tango+ server installation can serve multiple companies (customers) at a time just like multiple companies running their offices in one building. Each tenant has its own set of users, roles, sites/environments, workflows and content/resource repositories. Users, contents and data cannot be shared among tenants. Resources for all the tenants reside on one server/storage in complete logical separation. Database sharing is used to completely separate the data of different tenants on a single server.
Keeping this analogy in mind, you can go through the five interesting facts here;
- Each tenant shares the same physical server hardware & software resources.
- Each tenant is allowed to create multiple environments/sites, users, and roles inside their separate tenant space, according to its allocated quota.
- Each tenant’s users are separate and users need to log-in into their separate space to access the system. Even the default tenant user, which creates other tenants, cannot log-in to other tenants with their respective login credentials.
- One tenant’s users cannot access any of the other tenants.
- A tenant can create multiple environments (sites) within it and define users and roles to manage access permissions to different sites and site pages.
Production data and resources are sensitive and many customers (tenants) want their production resources kept physically separated from others. Logical separation on a single storage or database is not acceptable for them. For this purpose, Tango+ provides very flexible configurations. If a tenant requires, its production server can be a separate physical server complete with separate storage and databases. For more security, Tango+ also provides the option to setup a production server as an on-premise deployment. Remaining on a single application server, multiple production servers can be configured to serve single or multiple tenants’ production.
The flexible configuration capabilities of Tango+ along-with high availability and scalability provide a powerful feature-set and support of multiple deployment models to suite a variety of requirements from different customers.