Giter VIP home page Giter VIP logo

module-zero-downtime-deployment's Introduction

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:

'deployment' => [
    'blue_green' => [
        'enabled' => true
    ]
]

magento/framework/Module/Plugin/DbStatusValidator.php image magento/module-deploy/Model/Plugin/ConfigChangeDetector.php image

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:
zdd

With this module installed:
zdd_module

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
418

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:

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.
  2. You must set your blue pods to a dedicated redis database and keep the green pods on their own redis db (avoiding cache corrupting).
  3. Run bin/magento setup:upgrade --keep-generated to upgrade your database.
  4. 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:

module-zero-downtime-deployment's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

module-zero-downtime-deployment's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.