Customization for SAAS with multiple tenants

Hi, I have a question related to the SAAS model and multi-tenancy.

As far as I know, the multi-tasking SAAS application means common functionality for all clients, with some user interface settings and functionality for Neath.

If I need to do additional client configuration for some clients, how can I achieve it?

I know about SalesForce approach

As for the answer, I thank you for the experience with such - settings at the database level, - the backend architecture as a whole or in - any links for this topic.

+6
source share
1 answer

There are two ways to configure an application with multiple tenants 1. Changes in presentation level. 2. Change of system.

Typical settings that are preferred in web applications in a multi-tenant environment are listed below.

1) user interface and branding,

2) workflow and business rules,

3) data model extensions and

4) access control

In that 1 refers to a change in the level of presentation, and the rest all form a change in the level of the system in an application with several tenants.

MVC is considered as an option to adjust the presentation level, where we have the opportunity to allow the tenant to have their own theme, logo and custom layout, or custom controllers and custom page sections.

There are many ways to achieve this for system settings, however the following are the most common

  • Database Level Configuration
  • Tuning at the middleware level.

The SaaS application has features and implementation. In the case of a later version, a specific tenant configuration will be created that determines which implementation should be called for the tenant in question based on its configuration, and then provides the service. They are achieved using a custom dependency injection engine that is knowledgeable about it, and also require a specific tenant configuration that can be used at run time to facilitate this process.

In case (1), the data in db must be isolated based on the tenant ID so that the configuration or metadata is not shared between tenants in a multi-tenant environment.

So, the main components will be

  • tenant identifier derived from tenant context
  • multi-storey data warehouse
  • Individual Tenant Identification [Signature Signature / Single SignOn, etc.]

IMHO, since your topic is wide, if you can introduce more specific areas to us, we will discuss their implementation.

Hope this answers your request, please post your update.

+9
source

Source: https://habr.com/ru/post/947822/


All Articles