Amazon ec2 使用单独的数据库模型web应用程序最大限度地减少SaaS多租户中的停机时间

Amazon ec2 使用单独的数据库模型web应用程序最大限度地减少SaaS多租户中的停机时间,amazon-ec2,multi-tenant,amazon-rds,saas,Amazon Ec2,Multi Tenant,Amazon Rds,Saas,我们为每个租户提供了单独的数据库,这在我们在云上部署更改时造成了大量停机时间。当我们必须在云上部署更改时,我们将遵循以下步骤(简而言之): 放下客户端站点 拍摄当前RDS实例的快照(以防出现任何问题) 在RDS实例上的每个租户数据库上运行迁移脚本(更改) 如果一切顺利,那么我们将使客户端站点重新启动 现在的问题是,到目前为止,我们有大约250个租户,而运行更新脚本的第三步占用了太多时间,从而增加了停机时间。关于如何改进这一过程或我们是否打算以其他方式这样做的任何建议。我们这边显然缺乏企业级的专业

我们为每个租户提供了单独的数据库,这在我们在云上部署更改时造成了大量停机时间。当我们必须在云上部署更改时,我们将遵循以下步骤(简而言之):

  • 放下客户端站点
  • 拍摄当前RDS实例的快照(以防出现任何问题)
  • 在RDS实例上的每个租户数据库上运行迁移脚本(更改)
  • 如果一切顺利,那么我们将使客户端站点重新启动
    现在的问题是,到目前为止,我们有大约250个租户,而运行更新脚本的第三步占用了太多时间,从而增加了停机时间。关于如何改进这一过程或我们是否打算以其他方式这样做的任何建议。我们这边显然缺乏企业级的专业知识,因此我们非常感谢您的帮助。谢谢

    在不了解您的应用程序的情况下,以下是一些需要思考的问题:

    如果应用程序在“只读”模式下运行时仍有一些价值,则可以通过执行以下操作来限制实际停机时间

  • 确保所有RDS数据库都有一个读取副本
  • 将应用程序设置为“只读”模式(即通过某些应用程序代码)
  • 让你的阅读副本赶上你的主人
  • 将读取副本升级到独立数据库
  • 对数据库的此副本运行更新
  • 将应用程序重定向到新主机
  • 从此新主机创建新的读取副本
  • 删除/归档旧数据库

  • 您仍然需要完成所有的工作,运行还需要一段时间,但用户的实际停机时间应该是最小的。

    感谢您的回复,我发现在更新时限制写操作可以最大限度地减少停机时间,并将查看我们的CRM是否有这样的实施范围,但我仍然想知道,像Facebook、Instagram这样的巨头是如何做到这一点的,没有任何明显的停机时间,也没有写限制。他们可能使用什么样的模式来实现这一点?