多租户中的假“多”:当 SaaS 租户模型在大规模应用时适得其反

主要观点:许多所谓的“多租户”SaaS 架构实际上是单租户应用,存在诸多问题,如虚假的多租户系统导致技术债务、破坏扩展模型、增加成本、引发安全漏洞等,应从标志(flags)转向真正的架构来解决这些问题。
关键信息:

  • 实际的多租户实施中,不同客户得到的是相同代码基包裹在不同逻辑中的版本,导致配置复杂且难以维护。
  • 虚假的多租户通过条件逻辑实现,而非架构编码,增加了系统的不确定性和维护成本。
  • 虚假多租户会导致成本模型、监控、扩展等方面的问题,如重复服务、监控混乱、冷启动延迟等。
  • 安全方面,共享表、权限检查不当等会导致数据泄露等问题,影响安全态势。
  • 修复多租户问题需要从定义边界、采用租户感知路由等方面进行重构,而不是简单的切换。
    重要细节:
  • 以具体的代码示例展示虚假多租户的实现方式,如.env 文件、bash 脚本等。
  • 列举 Terraform、Fluentd 等配置中因虚假多租户导致的重复资源和配置问题。
  • 给出安全方面的 SQL 错误示例和 Python 权限处理不当的代码。
  • 强调修复多租户需要逐步进行,通过静态分析工具找出纠缠点,从配置到路由等逐步重构。
阅读 17
0 条评论