【发布时间】:2021-02-03 12:18:48
【问题描述】:
我认为我的问题很常见,我必须为每个客户托管一个单独的站点,但它是同一个应用程序,我的客户可能会要求特定更新(因为我的应用程序有一定的流程,可以改变) ,但是应用程序已经准备好了,我们正在使用易于更新的配置文件。目前我为每个客户端配置了一台服务器,但很快我就会在更新每台服务器时遇到很多麻烦(想象一下,必须输入 50 台不同的服务器来更新每台服务器,并且还要为每台服务器付费)。
我目前正在为我的服务器使用 Digital Ocean 服务。 我有一个用于后端的 Java Spring 应用程序,一个用于前端的 React JS,我的数据库是一个 postgres SQL。
我的想法是只使用 1、2 或 3 台服务器,从 1 台开始: 我所有的后端、前端和数据库都将在一台服务器内,但将为我拥有的每个站点运行 onde 前端,所有前端都将连接到一个后端,而这个后端将连接到一个数据库(这个数据库将包含所有站点的所有数据),因为我不想为每个人都拥有一个数据库,所以我正在考虑使用 SQL View 来为我的每个客户处理数据。应该是这样的:
使用 2 台服务器: 它基本上是一样的,但我会使用一个用于后端和数据库,另一个将包含我所有的前端,如下所示:
使用 3 台服务器: 基本上是一样的,只是一台服务器用于后端,一台用于数据库,一台用于前端,如下所示:
如果我的客户要求进行特定更改(仅针对他),我可以在我的应用程序中为每个客户创建一个目录,并为他更改配置文件,并且为每个人更新将只是一个 git pull。
我在这方面的知识不多,所以我问这是否可行。如果不是,我如何减少更新每台服务器的工作?我应该寻找其他服务器服务吗?我应该让我的服务器保持原样并寻找脚本吗?
【问题讨论】:
-
您提到的是一个多租户应用程序。我不确定您的解决方案处于哪个阶段。如果它处于开发的后期阶段,那么改变架构将非常困难。然后,您可以查看支持基础设施/团队。单独管理 50 台服务器需要大量支持工作。
-
我的应用程序和服务器已经在为我的客户工作,这应该是一个相当大的改变,但雇用更新服务器的支持不会很有趣
-
我搜索了这个多租户并发现了一个带有租户数据库的多租户,这应该更容易实现,因为我当前的客户已经填满了他们的数据库。
-
虽然数据库设计是多租户的重要组成部分;还有其他考虑因素,例如应用程序的配置等。但是,打折,请参阅:docs.microsoft.com/en-us/azure/azure-sql/database/… 它提供了对多租户注意事项和模式的一个很好的看法。
标签: server digital-ocean