Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Service Fabric multi-tenant

We are planning to use Azure Service Fabric for a data-oriented multi-tenant application. Typically 100+ customers each with 5 - 100 users.

Looking at the documentation, I concluded that the best approach is to use an Application instance for each customer, rather than trying to use Profiles to achieve multi-tenancy.

Is this the best way to go ?

like image 820
John Wilkie Avatar asked Jan 05 '16 16:01

John Wilkie


1 Answers

An application instance for each customer is a good way to handle multi-tenant situations on a single cluster, yes. There are Service Fabric applications that do this today (Azure DB is a notable one).

Here are some things you get with this approach:

  • Each application instance gets its own process, which means you have process-level isolation per tenant.
  • Each application instance is composed of one or more services, which means you can use a "microservices" architectural style for the application.
  • Each application instance can be created with unique parameters, so you can have various setups for each tenant. For example, you can do things like offer higher availability to certain tenants by using higher replica set size settings for the services in their application instance, or you can offer higher data capacity by using a higher partition count setting for the services in their application instance.

These are generally good things for data-oriented multi-tenant situations but whether or not its the best way to go of course depends on your specific requirements.

like image 190
Vaclav Turecek Avatar answered Oct 11 '22 14:10

Vaclav Turecek