处理多租户React应用程序

时间:2020-06-03 10:37:56

标签: javascript reactjs redux architecture multi-tenant

基本上我有一个多租户反应应用程序。我目前有15个客户,这些客户已部署到Dev,Stage和Prod Env。无论开发,阶段和产品,我对不同的客户都有不同的要求。维护此体系结构的最佳实践是什么。目前,我正在为特定客户在代码中编写条件,以进行特定更改。

我正在使用React 15.6.1, WebPack, Redux

enter image description here

下面是我的配置文件

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 个答案:

答案 0 :(得分:1)

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

考虑以下选项

  1. 带有扩展字段和动态UI呈现的单个代码库, 帮助每个租户将自定义字段添加到基本实体并查看它们 在用户界面中。

  2. 每个租户都具有模块和许可:在此模型中,您可以构建 应用程序中的各个模块,然后将它们打包,每个租户 将拥有一个许可证,该许可证可以决定该模块是否可以访问 给定的租户。

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

以上选项需要更多的思考过程,并且可能需要重写部分或大部分当前代码库。但是,您可以从中获得很高的灵活性,可伸缩性,金钱收益等方面的好处。

HTH