Déploiement dans les environnements d’évaluation et de production
Le processus de déploiement et de mise en production commence par le développement, se poursuit par l’évaluation et se termine par la mise en production. Adobe fournit une solution d’environnement de bout en bout pour assurer des configurations cohérentes. Chaque environnement prend en charge l’accès URL direct au storefront et l’accès Admin et SSH pour les commandes d’interface de ligne de commande.
Lorsque vous êtes prêt à déployer votre magasin, vous devez terminer le déploiement et les tests sur l’environnement d’évaluation avant le déploiement en production. Cette section fournit des instructions et des informations détaillées sur le processus de création et de déploiement, la migration des données et du contenu, ainsi que les tests.
En outre, vous pouvez activer le suivi des déploiements avec New Relic pour surveiller les événements de déploiement et vous aider à analyser les performances entre les déploiements.
Flux de déploiement de démarrage
Adobe recommande de créer une branche staging
à partir de la branche master
pour prendre en charge au mieux le développement et le déploiement de votre plan de démarrage. Deux de vos quatre environnements actifs sont alors prêts : master
pour la production et staging
pour l’évaluation.
Pour plus d’informations sur le processus, voir Démarrer le développement et le déploiement d’un workflow.
Flux de déploiement Pro
Pro est fourni avec un vaste environnement d’intégration comprenant deux branches actives, une branche de master
globale, des branches d’évaluation et de production. Lorsque vous créez votre projet, le code est prêt à être embranché, développé et envoyé pour la création et le déploiement de votre site. Bien que l’environnement d’intégration puisse comporter de nombreuses branches, l’évaluation et la production ne disposent que d’une seule branche pour chaque environnement.
Pour plus d’informations sur le processus, voir Développement et déploiement de workflow Pro.
Déploiement du code vers l’évaluation
L’environnement d’évaluation fournit un environnement de quasi-production qui comprend une base de données, un serveur web et tous les services, y compris Fastly et New Relic. Vous pouvez effectuer une notification push, une fusion et un déploiement complets via les commandes Cloud Console ou Cloud CLI via une application de terminal.
Déployer le code avec le Cloud Console
Le Cloud Console fournit des fonctionnalités pour créer, gérer et déployer du code dans les environnements d’intégration, d’évaluation et de production pour les plans Starter et Pro.
Pour les projets Pro, déployez la branche d’intégration vers l’évaluation :
-
Connectez-vous à votre projet.
-
Sélectionnez la branche
integration
. -
Sélectionnez l’option Fusionner pour effectuer un déploiement dans l’environnement intermédiaire.
-
Effectuez tous les tests dans l’environnement d’évaluation.
-
Lorsque l’évaluation est prête, sélectionnez l’option Fusionner pour effectuer le déploiement en production.
Pour commencer, déployez la branche de développement vers l’évaluation :
-
Connectez-vous à votre projet.
-
Sélectionnez la branche de code préparée.
-
Sélectionnez l’option Fusionner pour effectuer un déploiement dans l’environnement intermédiaire.
-
Effectuez tous les tests dans l’environnement d’évaluation.
-
Lorsque l’évaluation est prête, sélectionnez l’option Fusionner pour déployer en production (
master
).
Déployer le code avec la ligne de commande
L’interface de ligne de commande Cloud fournit des commandes pour déployer le code. Vous avez besoin d’un accès SSH et Git à votre projet.
Étape 1 : déployer et tester l’environnement d’intégration
-
Après vous être connecté au projet, consultez l’environnement d’intégration :
code language-bash magento-cloud environment:checkout <environment-ID>
-
Synchronisez votre environnement d’intégration local avec l’environnement distant :
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Créez un instantané de l’environnement en tant que sauvegarde :
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Mettez à jour le code dans votre branche locale si nécessaire.
-
Ajouter, valider et transmettre les modifications à l’environnement.
code language-bash git add -A && git commit -m "Commit message" && git push origin <environment-ID>
-
Effectuez les tests du site.
Étape 2 : fusion des modifications apportées à l’évaluation et au déploiement
-
Consultez l’environnement d’évaluation :
code language-bash magento-cloud environment:checkout <environment-ID>
-
Synchronisez votre environnement d’évaluation local avec l’environnement distant :
code language-bash magento-cloud environment:synchronize <environment-ID>
-
Créez un instantané de l’environnement en tant que sauvegarde :
code language-bash magento-cloud snapshot: create -e <environment-ID>
-
Fusionnez l’environnement d’intégration avec l’environnement d’évaluation pour déployer :
code language-bash magento-cloud environment:merge <integration-ID>
-
Effectuez les tests du site.
Étape 3 : déploiement en production
-
Extrayez, synchronisez et créez un instantané de votre environnement de production local.
-
Fusionnez l’environnement d’évaluation avec l’environnement de production à déployer :
code language-bash magento-cloud environment:merge <staging-ID>
-
Effectuez les tests du site.
Migration de fichiers statiques
Les fichiers statiques sont stockés dans mounts
. Il existe deux méthodes pour migrer des fichiers d’un emplacement de montage source, tel que votre environnement local, vers un emplacement de montage de destination. Les deux méthodes utilisent l’utilitaire rsync
, mais Adobe recommande d’utiliser l’interface de ligne de commande magento-cloud
pour déplacer les fichiers entre l’environnement local et l’environnement distant. Et Adobe recommande d’utiliser la méthode rsync
lors du déplacement de fichiers d’une source distante vers un autre emplacement distant.
Migration de fichiers à l’aide de l’interface de ligne de commande
Vous pouvez utiliser les commandes d’interface de ligne de commande mount:upload
et mount:download
pour migrer des fichiers entre les environnements local et distant. Les deux commandes utilisent l’utilitaire rsync
, mais les commandes de l’interface de ligne de commande fournissent des options et des invites adaptées à l’environnement Adobe Commerce sur le cloud. Par exemple, si vous utilisez la commande simple sans options, l’interface de ligne de commande vous invite à sélectionner le ou les montages à charger ou à télécharger.
magento-cloud mount:download
Exemple de réponse :
Enter a number to choose a mount to download from:
[0] app/etc
[1] pub/static
[2] var
[3] pub/media
[4] All mounts
> 3
Target directory: ~/pub/media/
Downloading files from the remote mount pub/media to pub/media
Are you sure you want to continue? [Y/n] Y
Pour charger des fichiers d’un dossier de pub/media/
local vers le dossier de pub/media/
distant pour l’environnement actuel :
magento-cloud mount:upload --source /path/to/project/pub/media/ --mount pub/media/
Exemple de réponse :
Uploading files from pub/media to the remote mount pub/media
Are you sure you want to continue? [Y/n] Y
building file list ... done
./
sample-file.jpeg
sent 8.43K bytes received 48 bytes 3.39K bytes/sec
total size is 154.57K speedup is 18.23
Utilisez l’option --help
pour les commandes mount:upload
et mount:download
pour afficher plus d’options. Par exemple, il existe une option --delete
pour supprimer les fichiers superflus lors de la migration.
Migrer des fichiers à l’aide de rsync
Vous pouvez également utiliser l’utilitaire rsync
pour migrer les fichiers.
rsync -azvP <source> <destination>
Cette commande utilise les options suivantes :
a
-archivez
-compresser les fichiers pendant la migrationv
-verboseP
partielle
Voir l’aide de rsync.
Pour migrer directement des fichiers statiques d’environnements distants à distants (approche rapide) :
-
Utilisez SSH pour vous connecter à l’environnement source. N’utilisez pas l’interface de ligne de commande
magento-cloud
. L’utilisation de l’option-A
est importante, car elle permet le transfert de la connexion de l’agent d’authentification.note tip TIP Pour trouver le lien Accès SSH dans votre Cloud Console, sélectionnez l’environnement et cliquez sur Accéder au site. code language-bash ssh -A <environment_ssh_link@ssh.region.magento.cloud>
-
Utilisez la commande
rsync
pour copier le répertoirepub/media
de votre environnement source vers un autre environnement distant.code language-bash rsync -azvP pub/media/ <destination_environment_ssh_link@ssh.region.magento.cloud>:pub/media/
-
Connectez-vous à l’autre environnement distant pour vérifier que les fichiers ont bien été migrés.
Migrer la base de données
Prérequis : un vidage de base de données (voir Étape 3) doit inclure des déclencheurs de base de données. Pour les vider, vérifiez que vous disposez de l’autorisation TRIGGER.
Pour les déploiements d’intégration continue, l’Adobe déconseille de migrer les données de l’intégration vers les environnements d’évaluation et de production. Vous pouvez transmettre des données de test ou remplacer des données importantes. Toutes les configurations essentielles sont transmises à l’aide du fichier de configuration et de la commande setup:upgrade
lors de la génération et du déploiement.
L’Adobe recommande de migrer les données de la production vers l’évaluation pour tester entièrement votre site et le stocker dans un environnement de quasi-production avec tous les services et paramètres.
Sauvegarde de la base de données
Il est recommandé de créer une sauvegarde de la base de données. La procédure suivante utilise les conseils de la section Sauvegarder la base de données.
Pour vider la base de données :
-
Utilisez SSH pour vous connecter à l’environnement distant qui contient la base de données à copier.
-
Répertoriez les relations entre les environnements et notez les informations de connexion à la base de données.
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"]))->database);'
Pour Pro Staging et Production, le nom de la base de données est dans la variable
MAGENTO_CLOUD_RELATIONSHIPS
(généralement identique au nom de l'application et au nom d'utilisateur). -
Créez une sauvegarde de la base de données. Pour choisir un répertoire cible pour l’image mémoire de la base de données, utilisez l’option
--dump-directory
.Pour les environnements de démarrage et les environnements d’intégration Pro, utilisez
main
comme nom de base de données :code language-bash php vendor/bin/ece-tools db-dump main
Options de vidage :
--dump-directory=<dir>
: sélectionnez un répertoire cible pour l'image mémoire de la base de données--remove-definers
: supprimer les instructions DEFINER de l'image mémoire de la base de données
-
Bien que la méthode ECE-Tools soit préférée, une autre méthode consiste à créer un fichier de vidage de base de données en utilisant MySQL natif au format GZIP.
code language-bash mysqldump -h <database-host> --user=<database-username> --password=<password> --single-transaction --triggers <database-name> | gzip - > /tmp/database.sql.gz
Si vous avez configuré l’authentification à deux facteurs sur l’environnement cible, il est préférable d’exclure les tables 2FA associées pour éviter de la reconfigurer après la migration de la base de données :
code language-bash mysqldump -h <database-host> --user=<database-username> --password=<password> --single-transaction --triggers --ignore-table=<database-name>.tfa_user_config --ignore-table=<database-name>.tfa_country_codes <database-name> | gzip - > /tmp/database.sql.gz
-
Saisissez
logout
pour mettre fin à la connexion SSH.
Déposer et recréer la base de données
Lors de l’import de données, vous devez supprimer et créer une base de données.
Pour supprimer et recréer la base de données :
-
Établissez un tunnel SSH vers l’environnement distant.
-
Connectez-vous au service de base de données.
code language-bash mysql --host=127.0.0.1 --user='<database-username>' --pass='<user-password>' --database='<name>' --port='<port>'
-
À l’invite de
MariaDB [main]>
, déposez la base de données.Pour l’intégration de Starter et Pro :
code language-shell drop database main;
Pour la production :
code language-shell drop database <cluster-id>;
Pour l’évaluation :
code language-shell drop database <cluster-ID_stg>;
-
Recréez la base de données.
Pour l’intégration de Starter et Pro :
code language-shell create database main;
-
Importez la base de données.
Importer pour production :
code language-shell zcat <cluster-ID>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <database-username> <database-name>;
Importer pour l’évaluation :
code language-shell zcat <cluster-ID_stg>.sql.gz | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' | mysql -h 127.0.0.1 -p -u <database-username> <database-name>;
Ces commandes décompressent le fichier de vidage de la base de données, suppriment les instructions
DEFINER
et importent la base de données à l'aide des informations d'identification spécifiées.