Configuration Aspects in Multi-Tenancy


In Multi-tenancy, the following are some of the aspects that are linked to the configuration of the application that needs to be delivered as a SaaS application.

Custom configuration

1.1 User Based Configuration

In case you are planning to allow the user’s to custom configure the application, they have to be maintained on a per-user basis and in case of one user having access to different companies [tenants in Multi-Tenancy], you will also have to isolate the data by tenant and user combination

There are various levels like flipping switches by a user that turns on and off of a functionality to even licensing the product at a user level. The former will require a user based discretion alone. However, the latter one may require a workflow like a model where a user can raise a request for a feature from his admin and the admin approves the same and then the user gets to access the newly requested feature

1.2 Tenancy Based Configuration

In case of a tenancy based model of customization, there will be multiple levels like having a company [tenant] to subscribe to plans to gain access to the various application features.

Additionally, the tenant will have to configure the company workspace like providing the credit card details for payment, email configuration for the company specific emails etc. This also involves the flipping of ON / OFF switches which in turn make the functionality work more dynamically

  • Regarding the several applications you have plans for, they do require SSO and also the flow of the configuration and company specific data across the applications. There can be company [tenant] specific database which needs to be stored and maintained for which the Azure Shard Map or similar ones can be used.
  • There is a code base scaling which can be configured on-demand by your PaaS provider like Azure. However, the application needs to be developed in a fashion so that it can support database partitioning and scaling. This will have to take into account the factors like data-isolation etc.

There are various PaaS providers which needs to be decided based on your exising and future / predicted user base and then the same can be decided and opted for.

Microsoft has some nice articles for Multi-Tenancy given below

https://msdn.microsoft.com/en-us/library/aa479086.aspx

https://msdn.microsoft.com/en-us/library/dd430340.aspx