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.

NOTE
Le fichier .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 master de 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 :

  1. Pour installer ou mettre à jour les services dans les environnements Staging et Production uniquement, envoyez un ticket d’assistance Adobe Commerce.

    Dans le ticket, spécifiez les changements de service requis, incluez les fichiers .magento.app.yaml et .magento/services.yaml mis à 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.
  2. 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.
  3. 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.

  4. 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.
TIP
Pour les projets Pro, les mises à niveau de service en production nécessitent également une planification préalable et un processus de confirmation en deux parties avec l’assistance d’Adobe. Voir Assistance des services Pro.

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 :

NOTE
Mettez à niveau RabbitMQ de manière séquentielle entre les versions disponibles. Par exemple, ne mettez pas directement à niveau la version 3.9 vers la version 4.1.
Pour vous assurer que vos files d’attente de messages personnalisées sont recréées dans RabbitMQ après la mise à niveau vers une nouvelle version, déclenchez un déploiement complet.

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

  1. Dans votre environnement de développement local, affichez les relations pour l’environnement actif.

    code language-bash
    magento-cloud relationships
    
  2. Confirmez les service et type à 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

  1. Utilisez SSH pour vous connecter à l’environnement distant.

  2. 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_pp
    

    ou utilisez la commande ece-tools suivante pour afficher les relations :

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Confirmez les service et type à 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

WARNING
Elasticsearch 7 et versions ultérieures ne sont pas prises en charge pour Adobe Commerce sur les infrastructures cloud. Adobe Commerce 2.4.4 et versions ultérieures prennent en charge le service 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.

  1. Modifiez la valeur type pour le service dans le fichier .magento/services.yaml :

    Définition du service d’origine

    code language-yaml
    mysql:
        type: mysql:11.8
        disk: 2048
    

    Définition du service mise à jour

    code language-yaml
    mysql:
        type: mysql:12.3
        disk: 5120
    
  2. Ajouter, valider et transmettre vos modifications de code.

    code language-bash
    git add .magento/services.yaml
    
    code 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 :

  1. Renommez un service existant avec la nouvelle version, ce qui supprime le service et les données existants et en ajoute une nouvelle.

  2. 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

  1. Renommez le service existant dans le fichier .magento/services.yaml et 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.yaml d’origine

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    

    Nouvelle définition de services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Mettez à jour les relations dans le fichier .magento.app.yaml.

    Configuration d’origine du .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Mise à jour de la configuration .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Ajouter, valider et transmettre vos modifications de code.

Rétrograder un service en créant un service

  1. Ajoutez une définition de service au fichier services.yaml pour 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
    
  2. Pour utiliser le nouveau service, modifiez la configuration des relations dans le fichier .magento.app.yaml.

    Configuration d’origine du .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Nouvelle configuration .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Ajouter, valider et transmettre vos modifications de code.

recommendation-more-help
commerce-on-cloud-help-cloud-guide