Saas部署架构

问题描述 投票:0回答:1

我目前正在开发一个 Web 应用程序,我想知道如何为客户部署它。 这是我正在考虑的所有选项。

1-我正在考虑 Docker/Kubernetes。每个客户都有一个包含应用程序和数据库的容器。

2- 每个客户都有一个容器,但数据库将位于所有客户全局的单独存储中。

3-或者每个人都访问同一个容器的 Web 应用程序,我将随着时间的推移创建更多容器,kubernetes 将管理它们之间的负载平衡。该数据库对于所有客户来说都是全球性的。

第三个选项将更容易扩展/管理和更新。

感谢您对这个主题的了解!我很乐意获取有关此主题的所有信息。

目前我只有多个带有 docker 的容器和带有 kubernetes 的负载平衡。每个客户都有自己的数据库。

kubernetes deployment architecture saas
1个回答
0
投票

AWS 提供了很好的入门文档:https://aws.amazon.com/blogs/apn/building-a-multi-tenant-saas-solution-using-aws-serverless-services/

我的简单理解:

  • (3) 对于简单的 SAAS,尤其是 MVP,将所有租户保留在一台服务器上 并在 1 个数据库中。只需使应用程序可靠,以便稍后可以 改变实施。随着应用程序的增长,您可以 为数据库、缓存、文件服务器引入单独的服务器/容器, 等等。甚至将租户拆分到不同的容器中。

  • (1) 对于风险较高的大型申请,如果 1 个租户将 查看/更改另一个租户的数据——单独的容器。 特别是如果客户需要迁移到自托管的权利 申请。

  • 对于第(2)个变体,我宁愿使用填充租户数据库的视图:

    CREATE VIEW `CommonDatabase`.`example` AS SELECT * FROM `Tenant1Database`.`TableName`;
    
© www.soinside.com 2019 - 2024. All rights reserved.