我们正在为数百个而非数千个独立租户构建一个多租户系统,具有高数据安全性要求。目前,计划是:
显然,推出更新需要完全自动化以保持最佳状态,可能使用MS Deploy + PowerShell脚本,并且一次部署一个租户。
我们是否在这条路线上制造维护噩梦?我们应该在这种情况下评估其他可能的配置,这可能会在不牺牲安全方面的情况下最大限度地减少管理开销吗?
谢谢!
答案 0 :(得分:1)
有几种方法可以让租户A关闭租户B的数据。
答案 1 :(得分:1)
您所描述的确实是一种多租户方式,但如上所述,它与多租户不同。有关要考虑的因素,请参阅IBM Developerworks文章http://www.ibm.com/developerworks/cloud/library/cl-multitenantsaas/index.html?ca=drs-。
答案 2 :(得分:1)
你所描述的确实是一种非常安全的做事方式,但似乎会涉及很多开销。需要考虑的一件事是如何处理登录。是否每个用户都需要指定TenantId,UserName和Password?或者您是否可能为每个租户分配一个独特的子域?
就维护而言,处理事情的最佳方法是将多个teneant塞入单个Web服务器/ Web场,并将所有数据推送到单个关系db / db群集中。这样,当您升级一个客户时,每个人都会升级。在某些时候,您将不得不购买另一个Web场/数据库集群来放置更多租户,但您会惊讶地发现1个实例可以走多远。
此规则的例外当然是Google和Facebook这样的网站,他们拥有太多的用户和太多的传统关系数据库数据。但对于95%以上的网站,我相信这种模式可以发挥作用。
就安全性而言,您可以向数据库中的每个表添加一个TenantId,并在每个查询上对其进行过滤。是的,这是非常重要的,但您描述的维护程序也不是。