我已经开发了许多部门客户端-服务器应用程序,现在准备开始着手将其中一个应用程序迁移到 SaaS 模型。我已经完成了一些基本的 Web 开发,但在 SaaS 架构方面我是新手。
当我尝试设计架构时,首先想到的问题之一是单租户与多租户的问题。每种方法的优缺点根据应用程序的类型和所需的规模而有很大差异,因此我想在下面描述我的应用程序和规模需求,并希望其他人可以评论我应该如何开始使用该架构。
客户端-服务器应用程序目前由一个 Firebird 数据库和一个 Windows 应用程序组成。该数据库包含大约 20 个表,其中包含 4 个主表中的数千条记录,以及各种查找和相关表中的数百条记录。尽管记录的数量很少,但大小可能会变大,因为数据库可以包含大 BLOBS。每个客户建立自己的数据库,并在组织内有少数用户连接到它。当我更新 db 架构时,会发布一个新的 Windows 应用程序,它会检查 db 架构,然后根据需要应用更新。
对于 SaaS 应用程序,我每年为 100 个(不是 1000 个或数百万个)新客户进行设计。我的第一个想法是使用多租户模型来简化更新(关闭将更新应用到一个数据库,然后启动)。另一方面,单一租户模型将提供一种向一组客户推出更新的方法,并分散数据损坏的风险 - 即,如果数据库出现问题,它将影响一个客户而不是所有客户。有了这个想法,我想有一个 Web 前端,它会在登录时连接到单个客户数据库。因此,当新客户创建帐户时,将创建一个新数据库(每个客户将拥有自己的数据库,并根据客户的需要拥有多个用户)。
在此模型中,数据库更新将需要一个进程通过每个数据库以应用架构更改,或者在登录时触发以启动类似于当前使用的客户端-服务器模型的架构更新。
谁能指出我已从客户端服务器移植到 SaaS 的类似应用程序的信息?或者提供任何需要考虑的指针?基本上,我正在寻找采用部门应用程序并将其作为自助服务网站提供给多个客户的架构示例。感谢您的任何建议,资源等。