我最近在工作中遇到了以下架构问题,我不确定这里的最佳行动方案。
我们为学校提供多租户SAAS应用程序,其架构与中央主数据库一起工作,包含配置和共享数据,以及每个学校组的特定数据库'。这些群体通常是地理性质的,schhools一起工作并为他们的团队获得软件许可证。
这在过去提供了问题,因为有时学校会改变群体。我们通过创建一个迁移工具解决了这个问题,该工具从一个数据库中提取学校数据并将其合并到其他组数据库中。
最近我们遇到了以下要求:大多数学校都是从一个非盈利组织运营(与我们使用的分组不同),现在那些非营利组织要求为他们提供申请访问权限他们所有的学校。例如,一个组织拥有150多所学校,其数据存储在25个以上的不同数据库中。
平均数据库大小约为6-7GB,我们有大约350个。
提供此访问权限的最佳方法是什么?将所有数据库合并为一个并从单个数据库运行是否可行,是否应该为新数据库创建某种类型或同步算法?我们的目标是根据需要改变我们的架构和基础设施,以提供这种新的方法。
我无法帮助,但觉得这个案例有某种标准的解决方案,并且有标准的架构,但我不知道这个名字。如果你把这个案例抽象化,应该有一个好的'它的解决方案?
摘要:
实体可以获得软件许可,实体组可以获取软件许可,实体可以更改组,管理组可以获得许可(稍后)与已经许可为单一或组许可的实体。应该可以在所有三个级别访问数据,并为每个用户正确安全地分离数据。
请提供我的具体问题的答案或抽象问题的解决方案。
答案 0 :(得分:0)
的可能解决方案之一
抽象问题
是Cloud,更具体 - 应用程序模型。我看到它是远程服务器的服务(由大型用户组使用)联网以允许集中数据存储。我认为 SaaS多租户数据库架构是您正在寻找的。 answer of this question非常有帮助。
此外,对于您的情况,我认为一个很好的选择是共享数据库,但是单独的模式。它允许在同一个DB中容纳多个租户。哪个租户有自己的架构。你可以找到这个和其他solutions in this presentation。