您是否可以使用magento2实现零停机时间部署?


15

如果您有一个新模块,则需要运行 setup:upgrade那么我看不到可以使停机时间为零的方法。因为您需要升级数据库,所以它通常会降低10到20秒。还是我错过了什么?

即使您要部署到另一个文件夹,然后在生成所有文件时,也将实时环境符号链接到该文件夹​​,您仍然必须照顾数据库。

Answers:


2

我想知道您在什么环境下工作需要10到20秒,甚至几分钟的停机时间,这将是一个大问题。自然,这并不理想,但是我必须想象这是一个很小的代价,特别是如果您在非高峰时间部署。

M2开发人员文档:将Magento部署到生产中。在撰写本文时,文档是稀疏的,并且链接到外部GitHub问题进行讨论。但是,这些官方文档是一个值得关注的好地方。

我的团队正在研究使用Capistrano部署M2。我们尚未确定最终的流程,但是简单的Google搜索(“ capistrano magento 2”)显示许多人正在尝试相同的方法。

最后,还有各种方案,例如蓝绿色部署,它们也试图最大程度地减少停机时间。特别是蓝绿色就像拥有一个过渡服务器,但是在关键时刻,您将DNS更新为从蓝色指向绿色,从而使绿色变为活动状态,而蓝色变为“过渡”。对于下一次部署,蓝色将再次变为活动状态。从理论上讲,这种停机时间为零,并且更改随着DNS更改的传播而迅速发生。


感谢您的有用链接。我认为DNS传播得不够快。我会坚持使用符号链接文件夹。在非高峰时间进行部署存在风险。非高峰时间基本上是清晨或深夜。如果您是一家小公司,则可能没有足够的员工。
Claudiu Creanga '16

1
我真的不了解蓝绿色在不要求进行各种数据库同步的情况下如何工作,这似乎很冒险。问题在于模块安装需要完成数据库更新。
Rich S

@RichS就软件而言,同步不是问题。但是是的,避免丢失订单或其他客户数据可能会很棘手-请参阅我链接的来源。它建议实际上使用相同的数据库。再一次,回到问题的前提,什么时候停机10分钟才真正成为问题?在引入不必要的复杂性之前,我将首先寻求一种非技术性的解决方案,例如在凌晨2点进行部署。
nshiff
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.