Uno de los componentes más críticos en la migración de SAP Commerce al Cloud de SAP es mover los datos existentes sin problemas desde el entorno local a SAP CCV2. Este proceso implica dos tareas principales: migrar la base de datos y los archivos multimedia. Este artículo se centrará en los archivos multimedia y proporcionará una guía detallada sobre cómo migrarlos de manera eficiente a SAP Commerce Cloud.

Estrategias de Almacenamiento Multimedia de SAP Commerce

SAP Commerce ofrece diferentes estrategias para el almacenamiento multimedia. En un entorno local, la estrategia predeterminada es localFileMediaStorageStrategy, implementada por de.hybris.platform.media.storage.impl.LocalFileMediaStorageStrategy. Esta estrategia almacena los archivos multimedia en una carpeta local en el sistema donde se ejecuta SAP Commerce. Se utiliza un directorio compartido en un entorno en clúster, al que pueden acceder todos los nodos de SAP Commerce a través de NFS (Network File System o sistema de archivos de red).

Por el contrario, la estrategia recomendada para SAP Commerce Cloud es windowsAzureBlobStorageStrategy, implementada por de.hybris.platform.azure.media.storage.WindowsAzureBlobStorageStrategy de la extensión azurecloud. Esta estrategia almacena archivos multimedia en contenedores de Azure Blob Storage, aprovechando la infraestructura nativa de la nube para lograr escalabilidad y rendimiento.

SAP Commerce Cloud proporciona una cuenta de almacenamiento de Azure para cada entorno. Si bien esta cuenta de almacenamiento se utiliza principalmente para conectar sistemas externos con los procesos de importación y exportación de datos de SAP Commerce, como las carpetas activas, también se puede aprovechar para almacenar todos los archivos multimedia de su instancia de SAP Commerce. Esta flexibilidad hace que el almacenamiento de Azure sea óptimo para una migración fluida de datos multimedia.

Estas estrategias de almacenamiento multimedia se pueden configurar de manera global para todo el sistema o específicamente para carpetas multimedia individuales.

  • La configuración global para Azure Blob Storage se ve así:
  • media.default.storage.strategy=windowsAzureBlobStorageStrategy
  • media.globalSettings.windowsAzureBlobStorageStrategy.connection= DefaultEndpointsProtocol=http;AccountName=yourAccountName;AccountKey=yourAccountKey
  • Para configurar carpetas multimedia específicas, puedes usar estas propiedades:

  • media.folder..storage.strategy=windowsAzureBlobStorageStrategy
  • media.folder..connection=DefaultEndpointsProtocol=http;AccountName=yourAccountName;AccountKey=
    yourAccountKey
estrategias de almacenamiento de medias

Migración de Archivos Multimedia desde On-Premise al cloud

migración multimedia de on premise a ccv2

Para migrar archivos multimedia desde un sistema local a la nube, vamos a asumir que estamos migrando de localFileMediaStorageStrategy a windowsAzureBlobStorageStrategy a nivel global. El proceso implica transferir todos los archivos multimedia desde un sistema de archivos local a Azure Blob Storage, y lo vamos a detallar paso a paso.

Cómo se Determinan las Localizaciones de los Medios

Al migrar medias, es fundamental comprender cómo se calculan las ubicaciones de los archivos para cada estrategia.

Para el localFileMediaStorageStrategy:

  • Ruta de archivo: <media-folder>/sys_master/<location>

  • media-folder: Ruta raíz para los archivos multimedia (definida por media.replication.dirs, que tiene como valor predeterminado ${HYBRIS_DATA_DIR}/media).
  • sys_master: Una subruta estándar agregada por LocalFileMediaStorageStrategy, donde master corresponde al ID del tenant.
  • location: El atributo de ubicación de los medios.

Para el windowsAzureBlobStorageStrategy:

  • Localización blob: https://<storage-account-name>.blob.core.windows.net/<container-name>/<location>
  • storage-account-name: El nombre de la cuenta de Azure.
  • container-name: El nombre del contenedor de Azure donde se almacenan los blobs, creado como sys-master-[folder-qualifier], donde sys-master es un prefijo estándar basado en el ID del tenant y [folder-qualifier] es el atributo calificador de MediaFolder
  • location: El atributo de ubicación de los medios.

Puedes mapear medios desde el almacenamiento local al contenedor de almacenamiento de Azure correcto mediante la carpeta de medios y la información de ubicación.

Consideraciones importantes al migrar archivos multimedia

Si planeas mover todos los archivos en una carpeta multimedia específica, es importante tener en cuenta cómo se crea el atributo location mediante la localFileMediaStorageStrategy. Esto ayudará a identificar los archivos que se copiarán del sistema de archivos local.

La estrategia de location se estructura de la siguiente forma:

location = folder-path/hxx/hxx/PK.file-extension

Donde:

  • es el atributo path del MediaFolder.
  • hxx/hxx es una estructura de ruta de 2 niveles de profundidad generada automáticamente.
  • PK es la clave principal (Primary Kery) del medio.
  • file-extension se deriva del tipo MIME del medio.

Este desglose permite crear una estrategia integral para migrar cada MediaFolder desde el almacenamiento local al contenedor de Azure correspondiente.

Proceso de Migración de Medias paso a paso

Media Migration Steps

1. Consulta de Carpetas de Medios

El primer paso es consultar todas las carpetas de medios existentes en el sistema SAP Commerce local on-premise. Utiliza la siguiente consulta para recuperar las carpetas de medios y sus rutas:

Copiar al portapapeles

Resultados de ejemplo:

 

Identificador Ruta
root NULL
images images
backofficethemes backoffice/themes

2. Preparar el Entorno de Almacenamiento de Azure

SAP Commerce Cloud proporciona una Cuenta de Almacenamiento de Azure para cada entorno. Puedes acceder a esta cuenta de almacenamiento mediante nombre y clave, disponibles a través del portal de SAP Cloud.

Usa Microsoft Azure Storage Explorer para conectarte y crear un SAS Token (Shared Access Signature o Firma de Acceso Compartido) con permisos de escritura. Para cada carpeta de medios, crea un contenedor de Azure correspondiente con la siguiente convención de nomenclatura:

Copiar al portapapeles

Ejemplos:

  • sys-master-images
  • sys-master-impex
  • sys-master-backofficethemes

Puedes crear estos contenedores manualmente a través de Azure Storage Explorer o mediante el siguiente comando:

Copiar al portapapeles

3. Copiar Archivos Multimedia a Azure

Para transferir archivos multimedia desde el entorno local a Azure Blob Storage, usaremos azcopy, una herramienta de Microsoft diseñada para gestionar transferencias de archivos hacia y desde Azure.

El formato general del comando para copiar archivos multimedia es el siguiente:

Copiar al portapapeles

Ejemplos:

Carpeta de imágenes:

En este ejemplo, los atributos de calificador y ruta de la carpeta MediaFolder tienen el mismo valor.

Copiar al portapapeles

 Carpeta de temas de Backoffice:

En este caso, los atributos de calificador y ruta de MediaFolder tienen valores diferentes.

Copiar al portapapeles

Caso Especial: Migración de la Carpeta Raíz

La carpeta raíz requiere atención especial porque sus archivos multimedia se almacenan directamente en sys_master, sin una subruta. Para evitar copiar archivos de otras carpetas multimedia, usa un patrón más específico como esto:

Copiar al portapapeles

Esto solo copiará los archivos cuya ubicación comience con una “h”, que corresponde a la ruta generada automáticamente para los archivos en la carpeta raíz. Ten en cuenta que si tienes otras carpetas multimedia que comiencen con “h”, también se copiarán. Alternativamente, puedes crear un script bash para iterar cada carpeta que comience con h seguida de solo dos caracteres y copiar cada una individualmente:

Copiar al portapapeles

4. Asegurar de la Configuración del Cloud para Azure Storage

Para finalizar el proceso, confirma que el entorno de SAP Commerce Cloud utiliza windowsAzureBlobStorageStrategy. Asegúrate de que estén configuradas las siguientes propiedades:

Copiar al portapapeles

Además, verifica que todos los registros de la base de datos relevantes para el medio (incluidos los atributos location y mediaFolder ) se hayan migrado a la nube, lo que garantiza que los archivos estén correctamente asignados en el nuevo entorno.

Automatización con un Groovy Script

Para acelerar el proceso de migración, puedes utilizar un script de Groovy en la consola de administración de Hybris (hAC) del entorno on-premise. Este script genera los comandos azcopy necesarios para cada carpeta de medios:

Copiar al portapapeles

Migración de Deltas para el Go Live

Como parte del proceso de migración, normalmente se realiza una transferencia inicial de todos los archivos multimedia días o semanas antes de la puesta en marcha oficial para validar el entorno de nube. Sin embargo, durante este período intermedio, el sistema local permanece activo y genera nuevos datos multimedia que deben incorporarse antes del cambio final. Para solucionar este problema, se realiza una migración de "deltas" o cambios en la fecha de puesta en marcha, lo que garantiza que todos los archivos recién creados se transfieran a la nube. En lugar de copiar todos los archivos nuevamente, puede optimizar el proceso utilizando el comando azcopy sync, que detecta y copia solo los archivos que han cambiado, lo que hace que la migración sea más rápida y eficiente.

Comando de ejemplo:

Copiar al portapapeles

Conclusión

Migrar archivos multimedia a SAP Commerce Cloud puede ser complejo, pero es un proceso sencillo con el enfoque adecuado. Si necesitas orientación y asistencia especializada, el equipo de especialistas en SAP Commerce de E-Turia puede garantizar una migración fluida y adaptada a tus necesidades. Puedes ponerte en contacto con E-Turia a través del formulario que aparece a continuación para que la transición de tu proyecto al SAP Cloud sea sencilla y eficiente.