You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Multi-tenancy targets to share the same Blueriq solution among multiple tenants. You would typically use this when you create a Software-as-a-Service solution, where you as a service provider are in control over the infrastructure and the model.

One very important aspect in a multi-tenant is data separation. Persistent data for one tenant should under no circumstances be shared with other tenants. The image below lists strategies on how a multi-tenant system can be set up. Blueriq doesn't support the third strategy. When you are creating the solution architecture for your multi-tenant solution, you should consider the trade-offs that each strategy has.

Multi-tenancy Degrees

(minus) Onboarding a new tenant means setting up a new system(plus) Only one runtime to manageNot currently supported by Blueriq

(minus) Each system needs maintenance separately(plus) Only one Blueriq software stack to maintain
(plus) Maintenance can be performed without other tenants noticing(minus) Maintenance on the runtime affects all tenants
(plus) Easier to scale a single tenant(minus) When the system needs to scale, you need to scale the entire system
(plus) Resources can be allocated per tenant. Easier to prevent noisy neighbors.(minus) If the system experiences a sudden burst in activity, all tenants will notice this.
(plus) Least chance for mixing up data(minus) Tenant data ends up in the same system, so there's a chance data gets mixed up

We expect the solution architect to consider the characteristics of each strategy and choose what suits best. For example, if you run on a container platform, the first solution may be more feasible, while when you run on VMs, the second strategy may be easier. Aspects that you may want to consider are operating costs, maintainability, data separation, availability, elasticity, flexibility and scalability.

Why use multi-tenancy?

When you want to offer a SaaS service to multiple companies, you need a multi-tenant setup.

The benefits of multi-tenancy are, amongst others:

  • Resource sharing: you can be more cost efficient by sharing resources between tenants
  • Build once, sell multiple times

What do you need to have in place when using multi-tenancy?

Scaling strategy and availability

When having a multi-tenant service, the tenants will demand the service to be available, according to the SLA that was agreed on in the contract. This means that when your service becomes more popular, or when it has peak usage windows, it will require more processing power. Hence, you need to be able to scale your system to fit the service's demands

Tenant onboarding

When a new tenant will use your service, you will need a procedure that describes what needs to be done to add that tenant.

When not to use multi-tenancy?

When your service differs in a substantial way for each tenant, multi-tenancy might not be suitable for your solution: more diversity between tenants leads to higher costs in development and maintenance.

In Blueriq terms, if you need to make exceptions based on tenant in your model, or if you need a different model for each tenant, we strongly advise against using multi-tenancy.

System requirements

Generally, a multi-tenant system can accommodate the same amount of simultaneous users as the same system that is single tenant.

Note that because the system has to manage data sources for each tenant, this will cause some overhead that is not present on a single tenant system. It is a good practice to monitor your system's performance and scale as needed.

  • No labels