0

这看起来像是一系列问题,但都与我们一直在构建的基于 SaaS 和 PHP 的应用程序有关。我们意识到我们的应用程序架构并对其进行研究,以便我们确保在投入生产之前遇到所有基本技术并且不会面临任何失败。!

为了支持 SaaS,我们决定让我们的数据库多租户,每个客户都有自己的数据库。我的思绪在进一步以下问题列表中令人难以置信。

  • 如何提供定制 SaaS 多租户应用程序以满足个别租户需求的能力?

  • 如何保证每个租户数据库的安全,使他们不会意外访问对方的数据?

  • 什么是集群,如果数量增加,我们如何向它们添加新的应用程序和数据库实例。的客户?

  • 我们如何确保 SaaS 网站的性能和可扩展性?

  • 我们如何处理 SaaS 应用程序的故障,尤其是当我们推出新版本和更新时(持续集成)?

  • 在 SaaS 应用程序中处理订阅者/客户以及激活和停用模块的权限是否有任何特殊解决方案?

我附上了我们决定使用的 DB 框图

4

1 回答 1

0

我写了一篇很好的文章,其中包含了我们在使用 PHP 开发 SaaS 应用程序时需要考虑的许多项目。在 Zend Framework 中检查使用 PHP 的 SaaS 应用程序开发

您的一些问题的答案如下:

如何提供定制 SaaS 多租户应用程序以满足个别租户需求的能力?

它就像一个正常的网站开发。假设您有资源 A 到 Z,那么您需要将到达租户的已分配或可访问资源保留在数据库中。然后在访问时您可以简单地检查权限。

如何保证每个租户数据库的安全,使他们不会意外访问对方的数据?

SaaS 应用程序上的数据库设计是 Stack Overflow 上多次讨论的话题。您可以为每个租户使用单一数据库或唯一数据库。对于大项目,第二个是合适的。

如果您使用单一数据库,只需将租户 ID 存储在所有表中。然后在对租户进行身份验证时,根据请求来自的子域将租户 ID 保留在 SESSION 中。然后在所有数据库操作中传递此 ID,因此不会意外影响任何其他租户的数据。

于 2012-05-31T13:58:33.743 回答