译者|朱钢评论|SunShujuan基于云的SaaS解决方案,以及大多数其他解决方案,都需要实现多租户。让我们快速回顾一下多租户是什么,我们可以从中得到什么,以及如何通过两个简单的层轻松实现它!1、什么是多租户多租户本质上是让服务的每一部分(即每一个微服务)服务于多个客户,而不需要为每个客户单独部署一个实例。为了使SaaS解决方案能够以可承受的价格进行扩展、满足客户需求并具有弹性(即在云资源中具有成本效益),它必须支持多租户。多租户架构提供了许多重要的基本功能:允许应用程序同时为多个客户提供服务,同时共享底层基础设施和服务;安全合规的访问隔离;负载平衡和缩放。2.多租户的两个层次一旦你理解了多租户,就很容易了。基本上只需要两件事:“应用程序级访问控制”和“管理数据模式”。让我们把它分成两层:数据层,这是关于你如何传输、存储和管理彼此隔离的数据(即底层基础设施如何避免混淆来自不同租户的数据)。数据层面的多租户通常通过数据层的分区来实现,例如数据存储架构(如何存储在数据库中)、主题(例如,kafka主题)、标签、域、套接字和数据端口在途中。基于列的简单租户分离的数据库表示例应用层,如何在逻辑层实现不同租户的接收上下文和访问,即让相同的代码适用于不同的租户。授权是在应用层面实现多租户的必备组件。使用Permit.io的SDK路由实施多租户的示例应用程序3.实现多租户授权层,这是从单租户应用程序安全升级到多租户应用程序的最快、最可靠的方法。此外,授权层可以通过在所有相关服务上应用策略而不更改服务本身来实现分离。选择正确的策略模型可以进一步简化这个转换过程。使用RBAC+Tenancy、ReBAC+Hierarchy(租户成为根级关系)或普通ABAC(租约作为属性)等经典模型。我们不需要自己去实现多租户授权,我们可以享受现成的开源工具和服务来实现。4、使用OPA+OPAL实现多租户(开源)使用开源工具是开始实现多租户授权层的绝佳选择。虽然有多种选择,但最常用的是OpenPolicyAgent(OPA)。OPA充当授权微服务,我们可以将其添加到我们的应用程序中,并使用以其专有Rego语言编写的规则强制执行访问。将OPA与OPAL(开放策略层)相结合,使我们能够大规模管理授权层,使用Pub/Sub主题使我们的代理保持最新的策略(Rego代码)和数据(JSON文档)。例如,主题可以是我们的租户名称或租户ID,允许我们将代理与每个租户的更改同步。5、使用Permit.io实现多租户(服务)应用授权方案,如Permit.io。Permit建立在OPA和OPAL之上,增加了一个管理界面,包括租户列表、租户资源管理和每个租户的用户管理。在Permit.io的仪表板中切换租户6.总结多租户允许我们的应用程序满足多个客户的需求,而无需为每个客户部署单独的实例。gist中的多租户方案由两层组成:数据层和应用层。实现多租户的最佳方法之一是创建一个授权层,在不更改服务本身的情况下实现分离。虽然您可以构建自己的授权层,但也有开源项目(例如OPA+OPAL)和服务(例如Permit.io)允许您在应用程序中实现单访问多租户授权层。原文链接:https://dev.to/permit_io/how-to-implement-multitenancy-in-cloud-computing-4pif译者介绍朱刚,社区编辑,2021IT影响力专家博主,阿里云专家博主,Top202019年CSDN博客之星,2020年腾讯云+社区优秀作者,11年一线开发经验,参与猎头服务网站架构设计、企业智能客服及大型电子政务系统开发,领导内部某大型央企电子文档安全监控系统的防漏与建设,目前在北京途家健康从事医疗软件的研发。
