我喜欢水平缩放Web应用程序,这意味着让它在多个节点上运行,并由负载均衡器来分配负载。就我而言,它是一个Laravel应用程序,提供Laravel迁移以对数据库方案更改进行版本控制。节点上附加了一个数据库实例。
现在,如果我想要零停机时间,我通常的方法是将节点一个接一个地消耗掉,并用运行新应用程序版本的节点替换它们。
何时以及如何应用Laravel迁移,或更普遍的是,为新的应用程序版本更新数据库?
如果新数据库结构是向后兼容的,则运行先前版本的我尚未耗尽的节点应该可以正常运行。但是,如果您的数据库迁移不是向后兼容的,您将如何处理它(或者您只是不了解它,因为毕竟,可靠的自动化流程的目的是不必一直考虑此类问题)
有几篇文章描述了一个实例上具有多个文件夹但没有水平缩放的零停机时间。 例如。 https://laraveldaily.com/how-to-deploy-laravel-projects-to-live-server-the-ultimate-guide/
围绕水平缩放的文章也很多。但是我似乎找不到任何能解释如何处理数据库迁移的信息。