Loading...

Multi-tenancy: What you need to know

Multi-tenancy: What you need to know

WikiPedia defines multi-tenancy as “a software architecture in which a single instance of software runs on a server and serves multiple tenants”.

A tenant is a group of users who shares common access with specific privileges to the software instance.

Yellowfin’s term for multi-tenancy is Client Organisations. Basically it will allow you to set up a single instance of Yellowfin to be used by multiple organisational units or customers. Each of these tenants has its own set of data sources, views, reports and dashboards. Each tenant can also customize its own user interface.

Yellowfin provides us with a two-tier structure: The top tier being the primary organisation and the bottom tier (or organisational level). The top tier can contain common data sources, views, reports and dashboards that can be shared by all tenants. The content created in the bottom tier or client organisational level will only be visible by that tenant.

Client Organisation Structure

Here are a few points to consider when deciding to implement Client Organisations. Hopefully this will help you with your decision.

Content

As mentioned above, Client Organisations will allow you to share your content across multiple clients or tenants. This means that you can develop a report in the primary organisation (top tier) and the client organisations will be able to access and run this report. The data in this report can be specific to the client organisation. Yellowfin will remove the other organisations’ data and only show the client their own data. This can be achieved using Access Filters or Data Source Substitution.

It is possible to create content specific to the client organisation – all content created in the client organisation, will only be visible by that client.

If you make changes to a client’s content, it will be limited to that client. In other words, you will not affect the other clients if you accidentally break a report or data source.

If you choose to install a separate instance of Yellowfin for each of your clients or tenants, you don’t have the option to create common content that can be shared with all of the tenants. In other words, if your tenants have the same reporting requirements, you will have to develop the report in a development environment and load the same report in each tenants’ Yellowfin instance.

Data Segregation

In a multi-tenancy environment, you can have separate instances of your data source for different clients, each with the same reporting schema. Yellowfin can then be configured to automatically switch data sources based on the user that logs in (Data Source Substitution) and you only need to define the views and develop the reports once. This means that all of the clients can run the same report that is created in the primary organisation and Yellowfin will automatically switch the data source based on the user or client accessing the report.

If all your clients’ data is in a single database, access filters can be applied to only show the data relevant to the current user or client organisation.

User Maintenance

When a new user is created in Yellowfin, they are automatically assigned access to the Client Organisation where they were created in. If the users were created before the Client Organisations functionality were enabled, you will manually have to assign them to at least one Client Organisation. An user can be assigned to more than one client organisation.

Access

An user can only log into one Client Organisation at a time.
When logging into Yellowfin, the user will automatically be logged into the Client Organisation that is assigned to him. If the user belongs to more than one Client Organisation, they will be prompted to select a Client Organisation.

Administration and Custom styling

Each client's environment can be configured separately. This allows for different settings across the different Client Organisations.

Each client can also be styled differently. You will have a generic login page and Yellowfin will only change the styling once a user is logged in.
If you have separate instance for each client, the login page can also be styled for that client.

License management

If you have 10 clients deployed in a multi-tenant environment, each requiring 5 named users, Yellowfin will issue you with one license file limiting the total number of users to 50 (10 x 5). It is not possible to limit or control the number of users that can login for a specific client – meaning any one of the clients can theoretically have 50 users logged in.

A separate license will be issued by Yellowfin for each of your clients if you deploy in separate instances. This will give you more control. For example, each client will be limited to only 5 users.

Server maintenance and scaling

Both deployment options will allow you to scale but there might be more maintenance involved when deploying on separate instances. For example, installing new Yellowfin updates, allocating resources and the allocation of port numbers.

Performance

There should be no difference in performance between deploying in a single instance (client organisations) or separate instances. A single instance will have one big memory pool for all of the clients. If you choose separate instances, each instance will have its own memory settings.

Integration (Embedding Yellowfin into your application)

Currently the reports at the Client Organisation level are not supported when using the JavaScript API for embedding your reports into external webpages.