Architecture 为云应用程序中的每个客户端创建自定义域

Architecture 为云应用程序中的每个客户端创建自定义域,architecture,cloud,Architecture,Cloud,我正在开发一个个人可以注册自己的云应用程序。但我对如何为每个人创建单独的区域感到困惑。我一直在寻找一种方法,比如为每个人创建一个子域,并为他们创建单独的DB 请帮忙 提前感谢我想你说的是SaaS(软件即服务)类型的应用程序。通常的答案是,它取决于应用程序类型。它可以为所有用户使用1个数据库(或一组数据库),也可以为每个用户使用单独的数据库 但是,一般来说,出于几个原因,单独的数据库/应用程序是更好的解决方案。例如,假设用户想要备份他的数据。将所有数据放在中央数据库中,很难单独进行备份。表现也可能

我正在开发一个个人可以注册自己的云应用程序。但我对如何为每个人创建单独的区域感到困惑。我一直在寻找一种方法,比如为每个人创建一个子域,并为他们创建单独的DB

请帮忙


提前感谢

我想你说的是SaaS(软件即服务)类型的应用程序。通常的答案是,它取决于应用程序类型。它可以为所有用户使用1个数据库(或一组数据库),也可以为每个用户使用单独的数据库

但是,一般来说,出于几个原因,单独的数据库/应用程序是更好的解决方案。例如,假设用户想要备份他的数据。将所有数据放在中央数据库中,很难单独进行备份。表现也可能是另一个原因

另一点是,不同的用户可能需要不同的计算能力。假设您正在开发一个应用程序,该应用程序正由一家同时有20000名用户的公司使用,这样一个客户机所需的CPU/内存与一家有5名用户的公司不同。因此,如果您的应用程序能够为每个客户端单独部署,那么它们可以相应地设置其环境。他们还可以停止其计算服务(虚拟机、Docker容器等),并在不使用系统的情况下避免云计算成本


话虽如此,但这并不是万能的,在某些类型的应用程序中,中央应用程序/数据库工作得更好。如果您提供更多关于该应用程序的详细信息,那么就更容易判断更好的架构。

Hi@akazemis,很抱歉回复太晚。但基本上是针对企业的产品。你可以说这是一种类似ERP的系统。嗨@Shubham,我想说,对于这样一个系统,每个客户端都有单独的DB和应用程序实例肯定更好。正如我所说,您可能需要为每个客户分别扩大或缩小规模。使用单个数据库和应用程序实例会造成很多限制,并使应用程序设计更加复杂。只需隔离客户端应用程序并保持简单。感谢您的回复,目前我们采用的是单一应用程序和DB/租户。但我们面临的问题是,如何将数据库更改部署到每个租户。那么,解决这个问题的最好办法是什么呢?不客气。这样做有不同的策略。金丝雀部署策略就是其中之一。谷歌你会发现一些文章。以下是Martin Fowler的短文: