https://github.com/zepgram/module-zero-downtime-deployment
Disable native change detection from Magento2 to allow Zero Downtime Deployment Strategy.
https://github.com/zepgram/module-zero-downtime-deployment
deployment-strategy downtime-deployment green-pods magento2 magento2-devops magento2-module no-maintenance pods zdd zero-downtime
Last synced: 12 months ago
JSON representation
Disable native change detection from Magento2 to allow Zero Downtime Deployment Strategy.
- Host: GitHub
- URL: https://github.com/zepgram/module-zero-downtime-deployment
- Owner: zepgram
- License: mit
- Created: 2020-05-18T16:53:21.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-05-17T16:20:58.000Z (about 4 years ago)
- Last Synced: 2025-06-07T07:04:24.430Z (about 1 year ago)
- Topics: deployment-strategy, downtime-deployment, green-pods, magento2, magento2-devops, magento2-module, no-maintenance, pods, zdd, zero-downtime
- Language: PHP
- Homepage:
- Size: 18.6 KB
- Stars: 23
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Zero Downtime Deployment #
## Magento 2.4.4 - @deprecated
On version 2.4.4, Magento is able to handle blue/green deployment, making this module no more required.
To enable blue/green deployment you can add the deployment config `deployment/blue_green/enabled` in file app/etc/env.php:
```php
'deployment' => [
'blue_green' => [
'enabled' => true
]
]
```
magento/framework/Module/Plugin/DbStatusValidator.php

magento/module-deploy/Model/Plugin/ConfigChangeDetector.php

Related commit is here: https://github.com/magento/magento2/commit/c241e11adf59baeca9d9e66cdbd726e4b0b88b21
⚠ Consequently, this module is now deprecated.
## Purpose
Disable native change detection from Magento2 to allow Zero Downtime Deployment (ZDD).
Normal behavior:

With this module installed:

## Installation
```
composer require zepgram/module-zero-downtime-deployment
bin/magento module:enable Zepgram_ZeroDowntimeDeployment
bin/magento setup:upgrade
```
## Configuration
By default, Zero Downtime is enabled on production mode and disabled on Magento's developer and default modes.
However, you can enable it for those modes from configuration path: `dev/zero_downtime_deployment/is_always_enabled`

> This section is only visible on developer mode from back-office
For example, it can be useful to display errors when you roll-back your code while your database is ahead.
## Server
ZDD enables you to deploy your website without any downtime.
However, this module contains only necessary changes to make it possible on Magento2.
To be able to perform a complete ZDD you'll need a
blue/green deployment strategy.
Which depends on your hosting provider.
For example:
- AWS: https://aws.amazon.com/fr/quickstart/architecture/blue-green-deployment/
- Kubernetes: https://kubernetes.io/blog/2018/04/30/zero-downtime-deployment-kubernetes-jenkins/
The mainly steps to reach the ZDD with Magento2:
1. Start the deployment: green pods are the old one, for now they must stay active while creating blue pods.
1. You must set your blue pods to a dedicated redis database and keep the green pods on their own redis db (avoiding cache corrupting).
1. Run `bin/magento setup:upgrade --keep-generated` to upgrade your database.
1. Upgrading is done: now green pods must be killed and replaced by blue pods based on health check statement.
You can find a lot of articles detailling the procedure:
- https://inviqa.com/blog/how-achieve-zero-downtime-deployments-magento-2
- https://elogic.co/blog/how-to-achieve-zero-downtime-deployment-with-magento