处理多租户 React 应用程序

Handle Multi-Tenant React application

基本上我有一个多租户 React 应用程序。我目前有 15 个客户,部署到 Dev、Stage 和 Prod Env。无论开发、阶段和生产如何,我对不同的客户都有不同的要求。维护此架构的最佳做法是什么。目前我有条件在我的代码中写入特定客户进行特定更改。

我正在使用React 15.6.1, WebPack, Redux

下面是我的配置文件

appConfig = {
    localhost: {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer1': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer2': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer3': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer4': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
    'Customer5': {
      param1: 'customer-det',
      param2: 'customer-det',
      param3: 'customer-det',
    },
  };

恕我直言,在代码中识别租户并根据租户参数呈现内容的概念不是一个非常灵活和可扩展的选项。

考虑以下选项

  1. Single code base with Extension fields and dynamic UI rendering, this helps each tenant to add custom fields to a base entity and see them in the UI.

  2. Having modules and licensing per tenant: In this model, you can build various modules in the application and then package them, each tenant will have a license that decides whether the module is accessible to a given tenant.

这对您 build new features, bill your tenants, track the usage and lots of benefits 很有帮助。

上述选项需要更多思考过程,并且可能需要重写部分或大部分当前代码库。但是,在灵活性、可扩展性、货币收益等方面,您可以获得的好处会很大...

HTH