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.
.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:
-
Para instalar o actualizar servicios solo en
StagingyProductionentornos, envía un ticket de soporte de Adobe Commerce.En el ticket, especifique los cambios de servicio requeridos, incluya los archivos
.magento.app.yamly.magento/services.yamlactualizados 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. -
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. -
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.
-
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.
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:
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:
- El servicio existente antes de crear un servicio con el nuevo nombre especificado.
- Se eliminarán todos los datos existentes del servicio. Adobe recomienda realizar una copia de seguridad del entorno de inicio antes de cambiar el nombre de un servicio existente.
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
-
En el entorno de desarrollo local, muestre las relaciones del entorno activo.
code language-bash magento-cloud relationships -
Confirme
serviceytypede 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
-
Utilice SSH para iniciar sesión en el entorno remoto.
-
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_ppo bien, use el siguiente comando
ece-toolspara ver las relaciones:code language-bash php ./vendor/bin/ece-tools env:config:show services -
Confirme
serviceytypede 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
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.
-
Cambiar el valor
typepara el servicio en el archivo.magento/services.yaml:Definición del servicio original
code language-yaml mysql: type: mysql:11.8 disk: 2048Definición de servicio actualizada
code language-yaml mysql: type: mysql:12.3 disk: 5120 -
Agregue, confirme e inserte los cambios de código.
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>
Versión de downgrade
No puede reducir un servicio instalado directamente. Tiene dos opciones:
-
Cambie el nombre de un servicio existente con la nueva versión, que elimina el servicio y los datos existentes, y agrega uno nuevo.
-
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
-
Cambie el nombre del servicio existente en el archivo
.magento/services.yamly 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.yamloriginalcode language-yaml mysql: type: mysql:10.4 disk: 5120Nueva definición de
services.yamlcode language-yaml mysql2: type: mysql:10.3 disk: 5120 -
Actualice las relaciones en el archivo
.magento.app.yaml.Configuración original de
.magento.app.yamlcode language-yaml relationships: database: "mysql:mysql"Se actualizó la configuración de
.magento.app.yamlcode language-yaml relationships: database: "mysql2:mysql" -
Agregue, confirme e inserte los cambios de código.
Degradación de un servicio creando un servicio
-
Agregue una definición de servicio al archivo
services.yamlpara 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 -
Para usar el nuevo servicio, cambie la configuración de relaciones en el archivo
.magento.app.yaml.Configuración original de
.magento.app.yamlcode language-yaml relationships: database: "mysql:mysql"Nueva configuración de
.magento.app.yamlcode language-yaml relationships: database: "mysql2:mysql" -
Agregue, confirme e inserte los cambios de código.