Déploiement vers l’évaluation et la 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 garantir 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 effectuer le déploiement et les tests dans l’environnement d’évaluation avant de procéder au déploiement vers 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 et 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. Ensuite, deux de vos quatre environnements actifs sont 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 du processus.
Flux de déploiement Pro
Pro est fourni avec un grand environnement d’intégration avec deux branches actives, une branche globale master
, des branches d’évaluation et de production. Lorsque vous créez votre projet, le code est prêt à se branche, à se développer et à effectuer des transmissions pour créer et déployer votre site. Bien que l’environnement d’intégration puisse comporter de nombreuses branches, l’évaluation et la production ne comportent qu’une seule branche pour chaque environnement.
Pour plus d’informations sur le processus, voir Workflow de développement et de déploiement 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 entièrement pousser, fusionner et déployer par le biais des Cloud Console ou des commandes de l’interface de ligne de commande Cloud via une application de terminal.
Déployez du code avec le Cloud Console
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 à déployer vers l’évaluation.
{width="150"}
-
Complétez tous les tests dans l’environnement d’évaluation.
-
Lorsque l’évaluation est prête, sélectionnez l’option Fusionner à déployer 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 à déployer vers l’évaluation.
{width="150"}
-
Complétez tous les tests dans l’environnement d’évaluation.
-
Lorsque l’évaluation est prête, sélectionnez l’option Fusionner à déployer en production (
master
).
Déploiement du code avec la ligne de commande
L’interface de ligne de commande de Cloud fournit des commandes pour déployer le code. Vous avez besoin d’un accès SSH et Git à votre projet.
Étape 1 : déploiement et test de l’environnement d’intégration
-
Après vous être connecté au projet, vérifiez 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.
-
Ajoutez, validez et envoyez 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 : fusionner les modifications dans l’évaluation et le 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 à 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 en production pour 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 des fichiers entre l’environnement local et distant. Adobe recommande également 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 en ligne de commande
Vous pouvez utiliser les commandes d’interface de ligne de commande mount:upload
et mount:download
pour migrer des fichiers entre l’environnement 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 à Adobe Commerce dans l’environnement d’infrastructure cloud. Par exemple, si vous utilisez la commande simple sans option, l’interface de ligne de commande vous invite à sélectionner le montage ou le montage à télé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 pub/media/
local vers le dossier 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
afin d’afficher d’autres options. Par exemple, il existe une option --delete
pour supprimer les fichiers superflus pendant la migration.
Migration des fichiers à l’aide de rsync
Vous pouvez également utiliser l’utilitaire rsync
pour migrer des fichiers.
rsync -azvP <source> <destination>
Cette commande utilise les options suivantes :
a
-archivez
-compresse les fichiers lors de la migrationv
-verboseP
-progression partielle
Voir l’aide rsync .
Pour migrer des fichiers statiques d’environnements distants vers distants directement (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 à un autre environnement distant pour vérifier que les fichiers ont bien été migrés.
Migration de la base de données
Condition préalable requise : Un vidage de base de données (voir Étape 3) doit inclure des déclencheurs de base de données. Pour les jeter, vérifiez que vous disposez du privilège TRIGGER.
Pour les déploiements d’intégration continue, l’Adobe ne recommande pas de migrer les données de l’intégration vers l’évaluation et la production. Vous pouvez transmettre des données de test ou remplacer des données importantes. Toutes les configurations essentielles sont transmises à l’aide de la commande fichier de configuration et setup:upgrade
lors de la création et du déploiement.
Adobe recommande de migrer les données de la production vers l’évaluation afin de tester entièrement votre site et de le stocker dans un environnement de quasi-production avec tous les services et paramètres.
Sauvegarde de la base
Il est recommandé de créer une sauvegarde de la base de données. La procédure suivante utilise les conseils de Sauvegarde de 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.
-
Listez les relations de l'environnement 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 se trouve dans la variable
MAGENTO_CLOUD_RELATIONSHIPS
(généralement identique au nom et au nom d’utilisateur de l’application). -
Créez une sauvegarde de la base. Pour choisir un répertoire cible pour le vidage DB, utilisez l’option
--dump-directory
.Pour les environnements de démarrage et les environnements d’intégration Pro, utilisez
main
comme nom de la base de données :code language-bash php vendor/bin/ece-tools db-dump main
Options de vidage :
--dump-directory=<dir>
: choisissez un répertoire cible pour le vidage de la base de données.--remove-definers
: suppression des instructions DEFINER du vidage de base de données
-
Bien que la méthode CEE-Outils soit préférée, une autre méthode consiste à créer un fichier de vidage de base de données à l’aide de 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 afin d’éviter de le 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 arrêter la connexion SSH.
Déposer et recréer la base de données
Lors de l'import de données, vous devez déposer et créer une base de données.
Pour déposer et recréer la base de données :
-
Créez un tunnel SSH vers l’environnement distant.
-
Connexion 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>'
-
A l'invite
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.
Importation 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>;
Importation 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.