迁移到云和多租户数据库

时间:2019-02-14 09:30:35

标签: java cloud pentaho multi-tenant

我们有一个基于Web的Java应用程序,我们计划将其迁移到云中,以使多个客户端将在基于SaaS的环境中使用它。该应用程序的当前体系结构本质上是非常异步的。有4个不同的模块,每个模块都有自己的数据库。当需要在模块之间交换数据时,我们使用Pentaho推送数据,并利用目录结构存储临时数据文件,然后由另一个模块提取该临时数据文件以填充其数据库。鉴于我们应用程序的性质,这种异步通信对我们非常重要。

现在,在将该应用程序迁移到云时,我们面临着两个挑战:

  1. 我们计划在数据库服务器上使用多租户,但是我们如何确保用于在不同模块之间传输数据的平面文件也被引导到数据库中各自的租户。

  2. 由于我们计划将其托管在云中,因此从数据安全的角度来看,如果将文本文件保存在云服务器上会很安全。

3 个答案:

答案 0 :(得分:0)

  1. 在不了解更多信息的情况下,我无法现实地提出任何具体建议 关于您的系统。但是,根据我的经验,我会 建议切换到消息队列,例如Kafka 工作很好。

  2. 是的,云提供商为静态文件存储提供了足够的安全性。您可以 限制访问,但是您认为合适,例如使用AWS S3。

答案 1 :(得分:0)

1-多租户在传输文件时可能会产生一些问题。但是,从您提供的信息中,跨应用程序进行平面文件移动的过程不会受到影响。仍然可以考虑使用MQ模式来传递数据。

2-从数据安全性角度来看,AWS在访问级别,MFA等方面提供了许多功能。如果需要高度保护,我建议您获得AWS Private Cloud,其中任何级别的任何人都不会共享。

答案 2 :(得分:0)

云中的文件存储是安全的,您可以使用控制IAM角色设置来控制文件的权限。诸如Google( Cloud storage ),Amazon( AWS S3 )之类的云提供商提供了安全且可扩展的基础架构来维护云中的文件。

在常规设置中,云存储为您提供带有全局唯一标识标签的存储桶。对于多租户设置,您可以为单个租户创建多个存储桶,并在其中存储必要的数据供稿。接下来,您可以使用水壶(Pentaho)根据唯一的存储桶定义将作业批处理或流式处理作业推送到正确的数据库。

或者,您也可以将(与其他答案类似的 )推送到具有用户特定主题的流式设置(如ActiveMQ,Kafka等),并获得流式服务(使用Java或pentaho ),以根据主题将数据提取到相应的数据库中。

希望这会有所帮助:)