【发布时间】:2016-01-14 06:42:07
【问题描述】:
我是云计算新手。在学习基本概念的同时,如何设计一个可供多个用户同时使用的软件 (SaaS) 的单个实例的系统?
我了解多租户是什么意思,但无法理解如何设计或如何实现这一点。即,如果我用 java 编写了简单的程序(假设)并且我想让它成为多租户,那么需要进行哪些更改和/或配置?
谢谢。
【问题讨论】:
标签: architecture cloud multi-tenant
我是云计算新手。在学习基本概念的同时,如何设计一个可供多个用户同时使用的软件 (SaaS) 的单个实例的系统?
我了解多租户是什么意思,但无法理解如何设计或如何实现这一点。即,如果我用 java 编写了简单的程序(假设)并且我想让它成为多租户,那么需要进行哪些更改和/或配置?
谢谢。
【问题讨论】:
标签: architecture cloud multi-tenant
根据我在创建/迁移应用程序以实现多租户感知方面的经验,以下是通常遵循的步骤。我们可以考虑转换一个CRM [客户模块]
数据库更改
- 为每个核心业务数据表[客户、工单、支持、联系人等]添加租户 ID。
- 将现有的公司数据分组到不同的客户中,这有点痛苦,但可以通过将现有客户映射为 租户的,然后在核心中进行相应的租户ID更新 表格。
- 分区,如果需要,如租户 1 可能属于分区 1 [美国],新加坡的其他一些租户可能会被放入分区中 亚洲,将被设置和数据移动
- 每个客户的自定义设置数据被分组为租户的自定义设置并存储在您的核心元数据数据库中。这也包括 白色标签的东西也是如此。
- 客户特定的自定义字段或扩展数据应存储在具有适当租户 ID 值的数据库中
应用变更
- 在登录之前和之后为租户建立上下文,在登录之前确定租户希望其用户使用的模式 login [一个租户需要 AD,另一个可能需要 Google 等...]
- 始终使用一些基本过滤器隔离访问的数据,该过滤器拦截每个查询并确保租户数据的完整性
- 为每个租户管理数据的各个分区
- 设置代码以适应存储在 db 中的白标内容
- 在服务中进行更改以确保服务包含在任何时候调用的自定义特定业务规则/逻辑 必填。
您想要的功能越复杂,我们就会有更多的讨论。请分享您要关注的任何特定功能,以便进行详细讨论。
HTH
【讨论】:
多租户是相当广泛的术语。
最简单的,你需要照顾
正如您在上面看到的,上面的大部分内容并不限于多租户。
【讨论】: