As we know Magento cloud is a flexible ecommerce platform in a cloud hosting environment. It Provides a git-based workflow with automatic build and deployment. But it has an issue with automatic build and deployment.
Takes time to complete automatic deploy
∝
Development time gets increased
∝
Downtime gets increased
ON THIS PAGE
How does Deployment work in Magento Cloud?
- By default, it generates static content during the deployment phase when the site is in maintenance mode
- The site will be Offline until the deployment is complete
- Deploy time depends on
- Size of the site
- Number of changes applied and
- Static content deployment configuration
- During the deployment process, all connections queue for up to 5 minutes
- After deployment the queue released
What happens when a failure occurs during the build phase?
The site will be in Maintenance mode?
or
Site shows an error in frontend?
Answer: Works fine – No downtime because it never begins the deploy phase.
Follow the below simple steps to implement zero downtime with Magento cloud deployment.
Step 1: Upgrade Ece-Tools
Update the metapackage to the latest version with the following command,
composer require “magento/magento-cloud-metapackage”:”>=2.4.3 <2.4.5″ –no-update
composer update magento/magento-cloud-metapackage
Remove deprecated packages with the below commands,
composer remove magento/magento-cloud-configuration
composer remove magento/ece-patches
Update the ece-tools package with the following command,
composer update magento/ece-tools
Add and commit the code changes of the following files,
composer.json
composer.lock
Step 2: Create A System-Specific Configuration:
Connect to SSH( ssh <project-id-integration>@ssh.us.magentosite.cloud
) and run the following command.
php vendor/bin/m2-ece-scd-dump
Download the generated/updated config.php file from the server, add it in local setup and commit this file to the cloud.
Step 3: SCD (Static Content Deployment)
3 types of SCD with Magento cloud: build phase, the deploy phase, or on-demand
stage:
global:
SKIP_HTML_MINIFICATION: true
build:
SKIP_SCD: false
Step 4: Reduce Theme Files:
SCD_MATRIX:
“Magento/backend”:
language:
– en_US
“Smartwave/porto”: []
“Smartwave/porto_rtl”: []
“Smartwave/mossy_graphics”:
language:
– en_US
– fr_FR
“vendor/theme_name”:
language:
– en_US
Step 5: Speed Up Static Content Deployment:
deploy:
SCD_THREADS: 2
Note: Max-value – 4
Here is the final script of .magento.env.yaml file.
stage:
global:
SKIP_HTML_MINIFICATION: true
build:
SKIP_SCD: false
post-deploy:
WARM_UP_PAGES:
– “index.php”
deploy:
SCD_THREADS: 2
SCD_MATRIX:
“Magento/backend”:
language:
– en_US
“Smartwave/porto”: []
“Smartwave/porto_rtl”: []
“Smartwave/mossy_graphics”:
language:
– en_US
“vendor/theme_name”:
language:
– en_US