在多租户多数据库环境中为多个租户提供集中访问的最佳方法是什么?

时间:2014-10-07 07:39:36

标签: architecture migration multi-tenant

我最近在工作中遇到了以下架构问题,我不确定这里的最佳行动方案。

我们为学校提供多租户SAAS应用程序,其架构与中央主数据库一起工作,包含配置和共享数​​据,以及每个学校组的特定数据库'。这些群体通常是地理性质的,schhools一起工作并为他们的团队获得软件许可证。

这在过去提供了问题,因为有时学校会改变群体。我们通过创建一个迁移工具解决了这个问题,该工具从一个数据库中提取学校数据并将其合并到其他组数据库中。

最近我们遇到了以下要求:大多数学校都是从一个非盈利组织运营(与我们使用的分组不同),现在那些非营利组织要求为他们提供申请访问权限他们所有的学校。例如,一个组织拥有150多所学校,其数据存储在25个以上的不同数据库中。

平均数据库大小约为6-7GB,我们有大约350个。

提供此访问权限的最佳方法是什么?将所有数据库合并为一个并从单个数据库运行是否可行,是否应该为新数据库创建某种类型或同步算法?我们的目标是根据需要改变我们的架构和基础设施,以提供这种新的方法。

我无法帮助,但觉得这个案例有某种标准的解决方案,并且有标准的架构,但我不知道这个名字。如果你把这个案例抽象化,应该有一个好的'它的解决方案?

摘要:

实体可以获得软件许可,实体组可以获取软件许可,实体可以更改组,管理组可以获得许可(稍后)与已经许可为单一或组许可的实体。应该可以在所有三个级别访问数据,并为每个用户正确安全地分离数据。

请提供我的具体问题的答案或抽象问题的解决方案。

1 个答案:

答案 0 :(得分:0)

的可能解决方案之一
  

抽象问题

Cloud,更具体 - 应用程序模型。我看到它是远程服务器的服务(由大型用户组使用)联网以允许集中数据存储。我认为 SaaS多租户数据库架构是您正在寻找的。 answer of this question非常有帮助。

此外,对于您的情况,我认为一个很好的选择是共享数据库,但是单独的模式。它允许在同一个DB中容纳多个租户。哪个租户有自己的架构。你可以找到这个和其他solutions in this presentation