Configurar servicios

El archivo services.yaml define los servicios admitidos y utilizados por Adobe Commerce en la infraestructura de la nube, como MySQL, Redis o Valkey, y Elasticsearch o OpenSearch. No es necesario suscribirse a proveedores de servicios externos.

NOTE
El archivo .magento/services.yaml se administra localmente en el directorio .magento del proyecto. Durante la implementación, Adobe Commerce en la infraestructura de la nube utiliza esta configuración para proporcionar servicios compatibles con el entorno de destino. El directorio .magento se quita del servidor remoto después de la implementación, por lo que services.yaml no existe en el entorno implementado.

El script de implementación utiliza los archivos de configuración del directorio .magento para aprovisionar el entorno con los servicios configurados. Hay un servicio disponible para su aplicación si está incluido en la propiedad relationships del archivo .magento.app.yaml. El archivo services.yaml contiene los valores type y disk. El tipo de servicio define el servicio name y version.

La configuración del servicio en .magento/services.yaml es independiente de las dependencias del paquete PHP y Composer definidas en composer.json y bloqueadas en composer.lock.

Dónde se aplican los cambios del servicio

Al cambiar una configuración de servicio, una implementación aprovisiona el entorno con los servicios actualizados, lo que afecta a los siguientes entornos:

  • Todos los entornos iniciales, incluida la producción master
  • Entornos de integración Pro

Asistencia de servicios Pro

Para solicitar y completar una actualización del servicio Pro en Ensayo o Producción, siga estos pasos:

  1. Para instalar o actualizar servicios solo en Staging y Production entornos, envía un ticket de soporte de Adobe Commerce.

    En el ticket, especifique los cambios de servicio requeridos, incluya los archivos .magento.app.yaml y .magento/services.yaml actualizados y anote la versión de PHP de destino.

    La versión de PHP, las actualizaciones de Compositor, las extensiones y la configuración del entorno son cambios de autoservicio. Es posible que Adobe tenga que actualizar el agente de New Relic para comprobar la compatibilidad con la versión de PHP. Ver configuración de PHP en Configuración de la aplicación.

    note important
    IMPORTANT
    Al seleccionar el campo Environment en el formulario de solicitud, utilice el nombre de entorno de Adobe. Por ejemplo, seleccione Ensayo aunque llame internamente a ese entorno Dev. Puede mencionar su nombre interno en la descripción, pero el campo Environment debe utilizar la nomenclatura de Adobe.
  2. Confirme la programación de actualización a través del proceso en dos partes de Adobe: primero confirme la fecha y la hora solicitadas y después el equipo de asistencia la envía al equipo de infraestructura para que la confirme definitivamente.

    Los cambios de producción (solo Pro) requieren al menos dos días hábiles de antelación, excepto los fines de semana. Por ejemplo, el equipo de Infraestructura en la nube debe confirmar una actualización el lunes antes del miércoles anterior. Se espera un tiempo de espera adicional durante la demanda máxima. Para evitar demoras, responda a la solicitud inicial al menos 48 horas antes de la ventana. La actualización no se considera programada hasta que reciba la confirmación final.

    note
    NOTE
    Proporcionar ventanas de mantenimiento en UTC. Las actualizaciones de ensayo no se programan con antelación y suelen completarse el mismo día que la solicitud.
    Después de una actualización de RabbitMQ, vuelva a implementar el entorno para reiniciar las colas de mensajes.
  3. Valide la actualización en un entorno de ensayo o integración antes de programarla en producción.

    Los problemas causados por módulos de terceros, código personalizado o compatibilidad de dependencias a menudo aparecen durante la reimplementación que sigue a una actualización de servicio. Para validar varias actualizaciones de servicio de una en una, un pedido razonable es Valkey o Redis, luego RabbitMQ, luego OpenSearch y luego MariaDB. Esta secuencia no es obligatoria. Las actualizaciones de bases de datos tienen el mayor impacto operativo y merecen la mayor precaución.

    Adobe no garantiza la duración exacta de una ventana de mantenimiento de producción con antelación, ya que el tiempo depende del entorno y los servicios implicados. Utilice el tiempo que tarda la actualización de ensayo como estimación práctica al planificar la ventana Producción.

  4. Vuelva a implementar el entorno después de que Adobe complete la actualización del servicio para que el cambio surta efecto, incluso si la versión de la aplicación de Adobe Commerce no cambia.

    Si la actualización incluye OpenSearch, planifique también una reindexación completa. Adobe no puede garantizar que no haya tiempo de inactividad durante una actualización de servicio, por lo que debe planificar una ventana de mantenimiento que permita volver a implementar, reindexar si es necesario y validar la tienda y el administrador antes de volver a abrir el sitio.

Disponibilidad del cliente durante las actualizaciones

Un representante de su equipo o asociado de implementación debe estar disponible en línea durante la ventana de actualización de producción programada. La programación durante un período de poco tráfico no impide la actualización. Adobe administra la actualización de la infraestructura en la nube, pero no puede validar el comportamiento de la aplicación, las integraciones, el código personalizado o los flujos de trabajo empresariales.

El representante disponible deberá poder:

  • Supervisar la tienda y las transacciones comerciales críticas durante y después de la actualización.
  • Responda a preguntas del equipo de soporte técnico de Adobe o del equipo de infraestructura de nube.
  • Confirme que las integraciones, extensiones, personalizaciones, trabajos cron, colas y otras funciones específicas del cliente funcionan según lo esperado.
  • Validar flujos de trabajo críticos para la empresa, como cierre de compra, vistas de catálogo, búsqueda, inicio de sesión y procesamiento de pedidos.
  • Informar de un comportamiento inesperado rápidamente, mientras el contexto de actualización y los registros siguen disponibles.
TIP
Para los proyectos Pro, las actualizaciones de servicios en Producción también requieren una programación avanzada y un proceso de confirmación en dos partes con el Soporte de Adobe. Ver Soporte de servicios Pro.

Modo de mantenimiento

El modo de mantenimiento no reemplaza la disponibilidad del cliente. El modo de mantenimiento bloquea el acceso a la tienda, pero no valida los servicios de aplicaciones, las integraciones, las colas, los trabajos cron, el cierre de compra u otras funciones específicas del cliente.

Si el trabajo planificado requiere un modo de mantenimiento, coordine su uso con el Soporte de Adobe y siga las instrucciones para esa actualización. Después, confirme que la tienda y los flujos de trabajo críticos funcionan normalmente antes de considerar que el trabajo se ha completado.

Servicios predeterminados y admitidos

Adobe Commerce en la infraestructura en la nube admite los siguientes servicios, que se pueden configurar para su proyecto:

NOTE
Actualizar RabbitMQ secuencialmente entre versiones disponibles. Por ejemplo, no actualice directamente de 3.9 a 4.1.
Para asegurarse de que las colas de mensajes personalizadas se vuelvan a crear en RabbitMQ después de actualizar a una nueva versión, déclencheur una implementación completa.

Ver servicios y versiones configurados

Puede ver ejemplos de definiciones de servicios y valores de disco en el archivo de plantilla actual services.yaml. Las versiones reales del servicio predeterminado y admitido dependen de la versión de Adobe Commerce y de la plantilla de nube actual.

El ejemplo siguiente muestra definiciones de servicio en el archivo de configuración 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

Valores de servicio

Proporcione la ID de servicio y la configuración del tipo de servicio type: <name>:<version>. Si el servicio utiliza almacenamiento persistente, debe proporcionar un valor de disco.

Utilice el siguiente formato:

<service-id>:
    type: <name>:<version>
    disk: <value-MB>

service-id

El valor service-id identifica el servicio en el proyecto. Solo puede utilizar caracteres alfanuméricos en minúsculas: a a z y 0 a 9, como valkey.

Este valor de service-id se usa en la propiedad relationships del archivo de configuración .magento.app.yaml:

relationships:
    valkey: "valkey:valkey"

Puede asignar nombres a varias instancias de cada tipo de servicio. Por ejemplo, puede utilizar varias instancias de Valkey, una para la sesión y otra para la caché.

valkey:
    type: valkey:<version>

valkey2:
    type: valkey:<version>

Cambiando el nombre de un servicio en el archivo services.yaml:

type

El valor type especifica el nombre y la versión del servicio. Por ejemplo:

mysql:
    type: mysql:10.4

disk

El valor disk especifica el tamaño del almacenamiento en disco persistente (en MB) que se va a asignar al servicio. Los servicios que utilizan almacenamiento persistente, como MySQL, deben proporcionar un valor de disco. Los servicios que utilizan memoria en lugar de almacenamiento persistente, como Valkey, no requieren un valor de disco.

mysql:
    type: mysql:10.4
    disk: 5120

La cantidad de almacenamiento predeterminada actual por proyecto es de 5 GB o 5120 MB. Puede distribuir esta cantidad entre su aplicación y cada uno de sus servicios.

Relaciones de servicio

En Adobe Commerce en proyectos de infraestructura en la nube, las relaciones del servicio configuradas en el archivo .magento.app.yaml determinan qué servicios están disponibles para su aplicación.

Puede recuperar los datos de configuración de todas las relaciones de servicio desde la variable de entorno $MAGENTO_CLOUD_RELATIONSHIPS. Los datos de configuración incluyen el nombre, el tipo y la versión del servicio junto con los detalles de conexión necesarios, como el número de puerto y las credenciales de inicio de sesión.

Compruebe las relaciones desde el entorno de desarrollo local

  1. En el entorno de desarrollo local, muestre las relaciones del entorno activo.

    code language-bash
    magento-cloud relationships
    
  2. Confirme service y type de la respuesta. La respuesta proporciona información de conexión, como la dirección IP y el número de puerto.

    Respuesta de muestra abreviada

    code language-yaml
    valkey:
        -
    ...
            type: 'valkey:8.0'
            port: 6379
    opensearch:
        -
    ...
            type: 'opensearch:3'
            port: 9200
    database:
        -
    ...
            type: 'mysql:11.8'
            port: 3306
    

Verificar relaciones en entornos remotos

  1. Utilice SSH para iniciar sesión en el entorno remoto.

  2. Enumerar los datos de configuración de relaciones para todos los servicios configurados en el entorno.

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    o bien, use el siguiente comando ece-tools para ver las relaciones:

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Confirme service y type de la respuesta. La respuesta proporciona información de conexión, como la dirección IP, el número de puerto y las credenciales de nombre de usuario y contraseña requeridas.

Versiones de servicio

Las versiones implementadas y probadas en la infraestructura en la nube determinan la versión del servicio y la compatibilidad con Adobe Commerce en dicha infraestructura, que a veces difieren de las versiones admitidas en las implementaciones locales de Adobe Commerce. Consulte Requisitos del sistema en la guía Instalación para obtener una lista de dependencias de software de terceros que Adobe ha probado con versiones específicas de Adobe Commerce y Magento Open Source.

Comprobaciones de EOL de software

Durante el proceso de implementación, el paquete ece-tools comprueba las versiones de servicio instaladas con las fechas de fin de vida útil (EOL) de cada servicio.

  • Si la versión de un servicio se encuentra en los tres meses siguientes a la fecha límite, se muestra una notificación en el registro de implementación.
  • Si la fecha límite se sitúa en el pasado, aparece una notificación de advertencia.

Para mantener la seguridad de la tienda, actualice las versiones de software instaladas antes de que lleguen a EOL. Puede revisar las fechas límite en el archivo eol.yaml de ece-tools.

Migrar a OpenSearch

WARNING
Elasticsearch 7 y versiones posteriores no son compatibles con Adobe Commerce en infraestructuras en la nube. Adobe Commerce 2.4.4 y versiones posteriores admiten el servicio OpenSearch.

Para la versión 2.4.4 y posterior de Adobe Commerce, consulte Configuración del servicio OpenSearch.

Cambiar la versión del servicio

Puede actualizar la versión del servicio instalado para que sea compatible con la versión de Adobe Commerce implementada en su entorno de nube.

No puede actualizar directamente la versión del servicio para un servicio instalado. Sin embargo, puede crear un servicio con la versión requerida. Consulte Versión del servicio de downgrade.

Actualizar la versión del servicio instalado

Puede actualizar la versión del servicio instalado actualizando la configuración del servicio en el archivo services.yaml.

  1. Cambiar el valor type para el servicio en el archivo .magento/services.yaml:

    Definición del servicio original

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

    Definición de servicio actualizada

    code language-yaml
    mysql:
        type: mysql:12.3
        disk: 5120
    
  2. Agregue, confirme e inserte los cambios de código.

    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>
    

Versión de downgrade

No puede reducir un servicio instalado directamente. Tiene dos opciones:

  1. Cambie el nombre de un servicio existente con la nueva versión, que elimina el servicio y los datos existentes, y agrega uno nuevo.

  2. Cree un servicio de y guarde los datos del servicio existente.

Cuando cambie la versión del servicio, debe actualizar la configuración del servicio en el archivo services.yaml y actualizar las relaciones en el archivo .magento.app.yaml.

Cambiar la versión de un servicio cambiando el nombre de un servicio existente

  1. Cambie el nombre del servicio existente en el archivo .magento/services.yaml y cambie la versión.

    note warning
    WARNING
    Al cambiar el nombre de un servicio existente, se sustituye y se eliminan todos los datos. Si necesita conservar los datos, cree un servicio en lugar de cambiar el nombre del servicio existente.

    Por ejemplo, para reducir la versión de MariaDB para el servicio mysql de la versión 10.4 a la 10.3, cambie la configuración existente de service-id y type.

    Definición de services.yaml original

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

    Nueva definición de services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Actualice las relaciones en el archivo .magento.app.yaml.

    Configuración original de .magento.app.yaml

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

    Se actualizó la configuración de .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Agregue, confirme e inserte los cambios de código.

Degradación de un servicio creando un servicio

  1. Agregue una definición de servicio al archivo services.yaml para su proyecto con la especificación de versión degradada. Consulte mysql2 en el siguiente ejemplo:

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. Para usar el nuevo servicio, cambie la configuración de relaciones en el archivo .magento.app.yaml.

    Configuración original de .magento.app.yaml

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

    Nueva configuración de .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Agregue, confirme e inserte los cambios de código.

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