(我不确定这是否是发布此问题的最佳位置。如果没有,请将我重定向到相应的堆栈交换网站。)
我希望为多个客户端部署Web应用程序。
这个想法是每个客户只能访问他或她自己的数据。让我们说客户端是应用程序安装的所有者。每个安装都可以有多个用户。
我希望所有安装都在我自己的托管中,以便我可以更好地控制代码和业务模型(客户端实际上将为服务的使用付费)。
我正在寻找执行此类部署的技术选项。
这样做的简单选择是:
(我不要求用户与多个客户端/安装相同)。
但是,这种解决方案有一些缺点:
所以我更愿意选择一种可以隔离数据的替代方案。
我正在考虑的另一种选择是:
例如,如果用户访问http://very-nice-app.com/client-3/,则代码知道它必须连接到database-name-for-client-3。这可能是通过某种独立于主代码加载的配置文件来实现的。
这解决了潜在的数据泄漏问题,但需要我维护多个数据库(如果数据库表发生变化,则必须在多个安装中完成)。这可能会以某种方式自动化。
我的问题是什么是这种部署的更好的替代方案。
感谢。
答案 0 :(得分:1)
由于这不是一个非常受欢迎的主题,我会留下一些自发布问题以来我找到的链接:
Best practices for creating multiple web app instance
我还在DBA Stack Exchange中提出了这个问题,该帖子有评论和回复,引起了一个简短的讨论:
简而言之,"它取决于" :)