Configuration des services
Le fichier services.yaml définit les services pris en charge et utilisés par Adobe Commerce sur les infrastructures cloud, telles que MySQL, Redis ou Valkey, et Elasticsearch ou OpenSearch. Vous n’avez pas besoin de vous abonner à des fournisseurs de services externes.
.magento/services.yaml est géré localement dans le répertoire .magento de votre projet. Lors du déploiement, Adobe Commerce sur l’infrastructure cloud utilise cette configuration pour fournir des services pris en charge pour l’environnement cible. Le répertoire .magento est supprimé du serveur distant après le déploiement ; il n’existe donc services.yaml dans l’environnement déployé.Le script de déploiement utilise les fichiers de configuration du répertoire .magento pour fournir à l’environnement les services configurés. Un service devient disponible pour votre application s’il est inclus dans la propriété relationships du fichier .magento.app.yaml. Le fichier services.yaml contient les valeurs type et disk. Le type de service définit le service nom et version.
La configuration du service dans .magento/services.yaml est distincte des dépendances des packages PHP et Composer définies dans composer.json et verrouillées dans composer.lock.
Lorsque des modifications de service s’appliquent
La modification d’une configuration de service entraîne la mise en service de l’environnement par un déploiement avec les services mis à jour, ce qui affecte les environnements suivants :
- Tous les environnements de démarrage, y compris les
masterde production - Environnements d’intégration Pro
Assistance des services professionnels
Pour demander et effectuer une mise à niveau du service Pro dans les environnements d’évaluation ou de production, procédez comme suit :
-
Pour installer ou mettre à jour les services dans les environnements
StagingetProductionuniquement, envoyez un ticket d’assistance Adobe Commerce.Dans le ticket, spécifiez les changements de service requis, incluez les fichiers
.magento.app.yamlet.magento/services.yamlmis à jour et notez la version PHP cible.La version PHP, les mises à jour du compositeur, les extensions et les paramètres d’environnement sont des changements en libre-service. Adobe peut avoir besoin de mettre à jour l’agent New Relic pour assurer la compatibilité des versions PHP. Voir Paramètres PHP dans Configuration des applications.
note important IMPORTANT Lors de la sélection du champ Environment dans le formulaire de ticket, utilisez la dénomination de l’environnement Adobe. Par exemple, sélectionnez Évaluation même si vous appelez cet environnement Dev en interne. Vous pouvez mentionner votre nom interne dans la description, mais le champ Environment doit utiliser la nomenclature Adobe. -
Confirmez le planning de mise à niveau via le processus en deux parties d’Adobe : vous confirmez d’abord la date et l’heure demandées, puis l’assistance les soumet à l’équipe d’infrastructure pour confirmation finale.
Les changements de production (Pro uniquement) nécessitent un préavis d’au moins deux jours ouvrables, à l’exclusion des week-ends. Par exemple, l’équipe d’infrastructure cloud doit confirmer une mise à niveau du lundi avant le mercredi précédent. Attendez-vous à un délai d’avance supplémentaire pendant les pics de demande. Pour éviter les retards, répondez à la demande initiale au moins 48 heures avant la fenêtre. La mise à niveau n’est pas considérée comme planifiée tant que vous n’avez pas reçu la confirmation finale.
note NOTE Fournissez des fenêtres de maintenance en UTC. Les mises à niveau intermédiaires ne sont pas planifiées à l’avance et sont généralement terminées le même jour que la demande. Après une mise à niveau de RabbitMQ, redéployez l’environnement pour réinitialiser les files d’attente de messages. -
Validez la mise à niveau dans un environnement d’évaluation ou d’intégration avant de la planifier en production.
Les problèmes causés par des modules tiers, du code personnalisé ou la compatibilité des dépendances apparaissent souvent lors du redéploiement qui suit une mise à niveau du service. Pour valider plusieurs mises à niveau de service une par une, un ordre raisonnable est Valkey ou Redis, puis RabbitMQ, puis OpenSearch, puis MariaDB. Cette séquence n’est pas obligatoire. Les mises à niveau de bases de données ont l’impact opérationnel le plus important et méritent la plus grande prudence.
Adobe ne garantit pas à l’avance la durée exacte d’une fenêtre de maintenance de production, car le timing dépend de l’environnement et des services impliqués. Utilisez le temps nécessaire à la mise à niveau intermédiaire comme une estimation pratique lors de la planification de la fenêtre Production.
-
Redéployez l’environnement une fois que Adobe a terminé la mise à niveau du service afin que la modification prenne effet, même si la version de l’application Adobe Commerce ne change pas.
Si la mise à niveau inclut OpenSearch, prévoyez également une réindexation complète. Adobe ne peut pas garantir un temps d’arrêt nul pour une mise à niveau du service. Planifiez donc une fenêtre de maintenance qui laisse le temps de redéployer, de réindexer si nécessaire et de valider le storefront et l’administrateur avant de rouvrir le site.
Disponibilité du client pendant les mises à niveau
Un représentant de votre équipe ou de votre partenaire d’implémentation doit être disponible en ligne pendant toute la durée de la période de mise à niveau de production planifiée. La planification pendant une période de faible trafic ne désactive pas la mise à niveau. Adobe gère la mise à niveau de l’infrastructure cloud, mais ne peut pas valider le comportement de votre application, vos intégrations, votre code personnalisé ou vos workflows métier.
Le représentant disponible doit pouvoir :
- Surveillez le storefront et les transactions commerciales critiques pendant et après la mise à niveau.
- Répondez aux questions de l’assistance Adobe ou de l’équipe chargée de l’infrastructure cloud.
- Confirmez que les intégrations, les extensions, les personnalisations, les tâches cron, les files d’attente et d’autres fonctions spécifiques au client fonctionnent comme prévu.
- Validez les workflows critiques pour l’entreprise, tels que l’extraction, les vues de catalogue, la recherche, la connexion et le traitement des commandes.
- Signaler un comportement inattendu se produit rapidement, alors que le contexte et les journaux de mise à niveau sont toujours disponibles.
Mode de maintenance
Le mode de maintenance ne remplace pas la disponibilité des clients. Le mode de maintenance bloque l’accès au storefront, mais ne valide pas les services d’application, les intégrations, les files d’attente, les tâches cron, le passage en caisse ou d’autres fonctions spécifiques au client.
Si le travail prévu nécessite le mode de maintenance, coordonnez son utilisation avec l’assistance Adobe et suivez les instructions de cette mise à niveau. Ensuite, vérifiez que le storefront et les workflows critiques fonctionnent normalement avant de considérer le travail comme terminé.
Services par défaut et pris en charge
Adobe Commerce sur l’infrastructure cloud prend en charge les services suivants, qui peuvent être configurés pour votre projet :
Affichage des services et des versions configurés
Vous pouvez afficher des exemples de définitions de service et de valeurs de disque dans le fichier de services.yaml de modèle actuel. Les versions de service par défaut et prises en charge dépendent de votre version d’Adobe Commerce et du modèle cloud actuel.
L’exemple suivant illustre les définitions de service dans le fichier de configuration services.yaml :
mysql:
type: mysql:11.8
disk: 5120
cache:
type: valkey:9.0
opensearch:
type: opensearch:3 # minor version not required; uses latest
disk: 1024
rabbitmq:
type: rabbitmq:4.3
disk: 1024
activemq-artemis:
type: activemq-artemis:2.42
disk: 1024
Valeurs de service
Fournissez les type: <name>:<version> de configuration d’ID et de type de service. Si le service utilise le stockage persistant, vous devez fournir une valeur de disque.
Utilisez le format suivant :
<service-id>:
type: <name>:<version>
disk: <value-MB>
service-id
La valeur service-id identifie le service dans le projet. Vous pouvez uniquement utiliser des caractères alphanumériques en minuscules : a à z et 0 à 9, comme valkey.
Cette valeur service-id est utilisée dans la propriété relationships du fichier de configuration .magento.app.yaml :
relationships:
valkey: "valkey:valkey"
Vous pouvez nommer plusieurs instances de chaque type de service. Par exemple, vous pouvez utiliser plusieurs instances Valkey, une pour la session et une pour le cache.
valkey:
type: valkey:<version>
valkey2:
type: valkey:<version>
Renommer un service dans le fichier services.yaml :
- Le service existant avant de créer un service avec le nouveau nom que vous spécifiez.
- Toutes les données existantes pour le service sont supprimées. Adobe vous recommande de sauvegarder votre environnement de démarrage avant de modifier le nom d’un service existant.
type
La valeur type spécifie le nom et la version du service. Par exemple :
mysql:
type: mysql:10.4
disk
La valeur disk spécifie la taille de l’espace de stockage disque persistant (en Mo) à allouer au service. Les services qui utilisent le stockage persistant, tels que MySQL, doivent fournir une valeur de disque. Les services qui utilisent la mémoire au lieu du stockage persistant, tels que Valkey, ne nécessitent pas de valeur de disque.
mysql:
type: mysql:10.4
disk: 5120
La quantité de stockage par défaut actuelle par projet est de 5 Go, soit 5 120 Mo. Vous pouvez répartir ce montant entre votre application et chacun de ses services.
Relations de service
Dans Adobe Commerce sur les projets d’infrastructure cloud, les services relations configurés dans le fichier .magento.app.yaml déterminent les services disponibles pour votre application.
Vous pouvez récupérer les données de configuration pour toutes les relations de service à partir de la variable d’environnement $MAGENTO_CLOUD_RELATIONSHIPS. Les données de configuration incluent le nom, le type et la version du service, ainsi que tous les détails de connexion requis tels que le numéro de port et les informations d’identification.
Vérifier les relations à partir de votre environnement de développement local
-
Dans votre environnement de développement local, affichez les relations pour l’environnement actif.
code language-bash magento-cloud relationships -
Confirmez les
serviceettypeà partir de la réponse. La réponse fournit des informations de connexion, telles que l’adresse IP et le numéro de port.Exemple de réponse abrégée
code language-yaml valkey: - ... type: 'valkey:8.0' port: 6379 opensearch: - ... type: 'opensearch:3' port: 9200 database: - ... type: 'mysql:11.8' port: 3306
Vérifier les relations dans les environnements distants
-
Utilisez SSH pour vous connecter à l’environnement distant.
-
Répertorier les données de configuration des relations pour tous les services configurés dans l’environnement.
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_ppou utilisez la commande
ece-toolssuivante pour afficher les relations :code language-bash php ./vendor/bin/ece-tools env:config:show services -
Confirmez les
serviceettypeà partir de la réponse. La réponse fournit des informations de connexion, telles que l’adresse IP, le numéro de port, le nom d’utilisateur et le mot de passe requis.
Versions des services
Les versions déployées et testées sur l’infrastructure cloud déterminent la prise en charge de la version du service et de la compatibilité pour Adobe Commerce sur l’infrastructure cloud, qui diffère parfois des versions prises en charge par les déploiements sur site d’Adobe Commerce. Consultez Configuration requise dans le guide Installation pour obtenir une liste des dépendances logicielles tierces qu’Adobe a testées avec des versions spécifiques d’Adobe Commerce et de Magento Open Source.
Vérifications de fin de vie du logiciel
Pendant le processus de déploiement, le package ece-tools vérifie les versions de service installées par rapport aux dates de fin de vie (EOL) de chaque service.
- Si une version de service est en cours depuis moins de trois mois, une notification s’affiche dans le journal de déploiement.
- Si la date de fin de vie est passée, une notification d’avertissement s’affiche.
Pour maintenir la sécurité du magasin, mettez à jour les versions logicielles installées avant qu’elles n’atteignent leur fin de vie. Vous pouvez consulter les dates de fin de vie dans le fichier eol.yaml de ece-tools.
Migrer vers OpenSearch
Pour Adobe Commerce version 2.4.4 et ultérieure, voir Configuration du service OpenSearch.
Modifier la version du service
Vous pouvez mettre à niveau la version de service installée pour des raisons de compatibilité avec la version d’Adobe Commerce déployée dans votre environnement cloud.
Vous ne pouvez pas rétrograder directement la version du service pour un service installé. Cependant, vous pouvez créer un service avec la version requise. Voir Version du service de rétrogradation.
Mettre à niveau la version du service installé
Vous pouvez mettre à niveau la version du service installée en mettant à jour la configuration du service dans le fichier services.yaml.
-
Modifiez la valeur
typepour le service dans le fichier.magento/services.yaml:Définition du service d’origine
code language-yaml mysql: type: mysql:11.8 disk: 2048Définition du service mise à jour
code language-yaml mysql: type: mysql:12.3 disk: 5120 -
Ajouter, valider et transmettre vos modifications de code.
code language-bash git add .magento/services.yamlcode language-bash git commit -m "Upgrade MySQL from MariaDB 11.8 to 12.3."code language-bash git push origin <branch-name>
Version de rétrogradation
Vous ne pouvez pas rétrograder directement un service installé. Vous disposez de deux options :
-
Renommez un service existant avec la nouvelle version, ce qui supprime le service et les données existants et en ajoute une nouvelle.
-
Créez un service et enregistrez les données du service existant.
Lorsque vous modifiez la version du service, vous devez mettre à jour la configuration du service dans le fichier services.yaml et mettre à jour les relations dans le fichier .magento.app.yaml.
Rétrograder une version de service en renommant un service existant
-
Renommez le service existant dans le fichier
.magento/services.yamlet modifiez la version.note warning WARNING Renommer un service existant le remplace et supprime toutes les données. Si vous devez conserver les données, créez un service au lieu de renommer le service existant. Par exemple, pour rétrograder la version MariaDB du service mysql de la version 10.4 à la version 10.3, modifiez la configuration service-id et type existante.
Définition de l’
services.yamld’originecode language-yaml mysql: type: mysql:10.4 disk: 5120Nouvelle définition de
services.yamlcode language-yaml mysql2: type: mysql:10.3 disk: 5120 -
Mettez à jour les relations dans le fichier
.magento.app.yaml.Configuration d’origine du
.magento.app.yamlcode language-yaml relationships: database: "mysql:mysql"Mise à jour de la configuration
.magento.app.yamlcode language-yaml relationships: database: "mysql2:mysql" -
Ajouter, valider et transmettre vos modifications de code.
Rétrograder un service en créant un service
-
Ajoutez une définition de service au fichier
services.yamlpour votre projet avec la spécification de version rétrogradée. Voir mysql2 dans l’exemple suivant :services.yaml
code language-yaml mysql: type: mysql:10.4 disk: 5120 mysql2: type: mysql:10.3 disk: 5120 -
Pour utiliser le nouveau service, modifiez la configuration des relations dans le fichier
.magento.app.yaml.Configuration d’origine du
.magento.app.yamlcode language-yaml relationships: database: "mysql:mysql"Nouvelle configuration
.magento.app.yamlcode language-yaml relationships: database: "mysql2:mysql" -
Ajouter, valider et transmettre vos modifications de code.