zepgram / module-zero-downtime-deployment
禁用 Magento2 的原生更改检测以允许零停机部署 (ZDD)
Requires
- magento/framework: ^0
- magento/module-deploy: ^0
This package is auto-updated.
Last update: 2022-05-17 16:21:02 UTC
README
Magento 2.4.4 - @deprecated
在版本 2.4.4 中,Magento 能够处理蓝绿部署,因此此模块不再需要。
要启用 蓝绿 部署,您可以在文件 app/etc/env.php 中添加部署配置 deployment/blue_green/enabled
'deployment' => [ 'blue_green' => [ 'enabled' => true ] ]
magento/framework/Module/Plugin/DbStatusValidator.php magento/module-deploy/Model/Plugin/ConfigChangeDetector.php
相关提交在这里: https://github.com/magento/magento2/commit/c241e11adf59baeca9d9e66cdbd726e4b0b88b21
⚠ 因此,此模块现在已废弃。
目的
禁用 Magento2 的原生更改检测以允许零停机部署 (ZDD)。
安装
composer require zepgram/module-zero-downtime-deployment
bin/magento module:enable Zepgram_ZeroDowntimeDeployment
bin/magento setup:upgrade
配置
默认情况下,零停机在生产模式下已启用,在 Magento 的开发者和默认模式下已禁用。
但是,您可以从配置路径 dev/zero_downtime_deployment/is_always_enabled
启用它。
此部分仅在后台管理中开发模式下可见
例如,当您的数据库领先时回滚代码时显示错误可能很有用。
服务器
ZDD 使您能够在没有任何停机时间的情况下部署您的网站。然而,此模块仅包含使它在 Magento2 上成为可能所必需的更改。
要执行完整的 ZDD,您需要一个 蓝绿部署策略。这取决于您的托管提供商。
例如
- AWS: https://aws.amazon.com/fr/quickstart/architecture/blue-green-deployment/
- Kubernetes: https://kubernetes.ac.cn/blog/2018/04/30/zero-downtime-deployment-kubernetes-jenkins/
使用 Magento2 实现零停机部署的主要步骤
- 开始部署:绿色 pod 是旧的,目前它们必须保持活动状态,同时创建蓝色 pod。
- 您必须将蓝色 pod 设置为专用 redis 数据库,并将绿色 pod 保持在其自己的 redis db 上(避免缓存损坏)。
- 运行
bin/magento setup:upgrade --keep-generated
以升级您的数据库。 - 升级完成:现在必须杀死绿色 pod,并根据健康检查语句用基于蓝色 pod 的 pod 替换。
您可以在很多文章中找到详细的步骤说明