基本上,我有一个多租户反应应用程序。我目前有15个客户,这些客户已部署到Dev,Stage和Prod Env's。无论开发,阶段和产品如何,我对不同的客户都有不同的要求。维护此体系结构的最佳实践是什么。目前,我正在为特定客户在代码中编写条件,以进行特定更改。
我正在使用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',
},
};
恕我直言,在代码中标识承租人并根据承租人参数呈现内容的想法不是非常灵活和可扩展的选项。
考虑以下选项
具有扩展字段和动态UI呈现的单个代码库,此 帮助每个租户将自定义字段添加到基本实体并查看它们 在用户界面中。
具有每个租户的模块和许可:在此模型中,您可以构建 应用程序中的各个模块,然后将它们打包,每个租户 将拥有一个许可证,该许可证可以决定该模块是否可以访问 给定的租户。
这对您build new features, bill your tenants, track the usage and lots of benefits
很有帮助。
上述选项需要更多的思考过程,并且可能需要重写部分或大部分当前代码库。但是,您可以从中获得很高的灵活性,可伸缩性,金钱收益等方面的好处...
HTH