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

时间:2016-03-21 10:01:42

标签: amazon-ec2 multi-tenant amazon-rds saas

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

  1. 放下客户端网站。
  2. 拍摄当前RDS实例的快照(如果有任何东西向南)。
  3. 在RDS实例上的每个租户数据库上运行迁移脚本(更改)。
  4. 如果一切顺利,我们会再次让客户端网站上线。
  5. 现在问题是,到目前为止,我们已经拥有 250个租户,而运行更新脚本<​​/ strong>的第3个步骤花费了太多时间,而这反过来又增加了停机时间。有关如何改进此过程的任何建议,或者我们是否想以其他方式进行此过程。在我们这里明显缺乏企业级专业知识,所以任何帮助都将受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

在不了解您的应用程序的情况下,需要考虑以下事项:

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

  1. 确保所有RDS数据库都具有只读副本。
  2. 将您的应用程序设置为“只读”模式(即通过某些应用程序代码)。
  3. 让你的副本追上你的主人
  4. 将您的只读副本宣传为独立数据库。
  5. 针对此数据库副本运行更新。
  6. 将您的应用程序重定向到新主服务器。
  7. 从这个新主人
  8. 创建一个新的只读副本
  9. 删除/存档旧数据库。
  10. 您仍然需要完成所有工作,但仍需要一段时间才能运行,但用户的实际停机时间应该很短。