Architecture 多租户还是多实例?
我正在尝试构建一个基于web的SaaS解决方案,但我遇到了一个问题,我不确定是否要使用多租户或多实例。我将试着描述我试图实现的目标,以及每种方法的优缺点(根据我所读的内容,我的观点)。请提供您的建议,以防我在一种方法中遗漏了任何内容 正如我所提到的,我试图构建的应用程序是一个SaaS解决方案,公司可以在其中创建自己的帐户,每个帐户/公司都有自己的用户、客户、产品、服务……等等。每个用户;谁是公司员工;与一个账户/公司相关的信息只能访问其公司客户、产品和服务。公司可以拥有无限数量的客户、产品和服务,因此每个公司都应该有自己的数据中心 为此,我决定创建一个共享数据库(保存所有用户凭据以供登录)和多个数据库共享模式(每个帐户/公司的数据库)。基本上,多租户 然后有人建议使用多实例,每个公司都有自己的应用程序实例(即代码、库、数据库、框架等),与其他公司完全分离。这听起来更好,因为我不需要额外考虑一层,我需要确保每个租户的用户只能访问他们公司的数据。我想最好提到我依靠它来实现这种方法(我以前从未使用过),但我认为它缺少我将来需要的功能(稍后会有更多的功能)(至少我没有通过一点搜索找到它们) 然而,每种方法都有利弊,所以我无法决定采用哪种方法。这里有一个列表,但请耐心听我说,因为我对这两种方法都缺乏了解,所以可能有一些我不知道的东西,或者是我在网上没有找到的问题的解决方案:[每种方法都有一个有序的列表,我会逐一比较] 多租户:Architecture 多租户还是多实例?,architecture,docker,multi-tenant,saas,Architecture,Docker,Multi Tenant,Saas,我正在尝试构建一个基于web的SaaS解决方案,但我遇到了一个问题,我不确定是否要使用多租户或多实例。我将试着描述我试图实现的目标,以及每种方法的优缺点(根据我所读的内容,我的观点)。请提供您的建议,以防我在一种方法中遗漏了任何内容 正如我所提到的,我试图构建的应用程序是一个SaaS解决方案,公司可以在其中创建自己的帐户,每个帐户/公司都有自己的用户、客户、产品、服务……等等。每个用户;谁是公司员工;与一个账户/公司相关的信息只能访问其公司客户、产品和服务。公司可以拥有无限数量的客户、产品和服务
如果这有帮助的话(也许?),我们将使用它作为后端的主要框架(都是RESTfull)。其他人以前也有过这些问题。外面有一种东西叫。我认为大多数成功的模型首先是从功能开始的,其次是平台。因此,我将首先使用每个客户的一个实例策略。不管怎样,一开始会有多少客户?是因为客户不喜欢该功能,还是因为您使用的多个实例当然会带来ops开销,所以失败的可能性更大 =>首先关注产品/功能。因此,瞄准第1级,稍后关注其他级别 对于Docker(至少从我个人的角度来看,这并没有做太多):您开发的工件是一个可运行的容器映像。当此工件发布到存储库时,更新所有实例以使用此新工件应该非常容易。因此,通过编写一点脚本或者类似的东西,将大量实例移动到新版本应该是可行的。所以我认为像Docker这样的新开发确实使多实例设置更加可行 我还在为我们公司做SaaS产品。对于我们来说,由于业务问题,它也是多实例的:
和往常一样,我在这里给出我的观点和经验。这实际上取决于您的用例—SaaS有很多种类。如果每个客户都想要共享模式,您不需要为他们提供不同的数据库。大多数SaaS软件是多租户的,并以这种方式工作,这是一个带有应用程序逻辑的公共数据库,以确保用户只能访问他们应该被允许访问的内容。例如,Facebook没有数十亿个数据库,每个用户一个,以确保我们看不到对方的非公开照片 还有,你正在尝试的问题