El éxito de SPAR, que suma cerca de 450 tiendas de conveniencia en Holanda, se basa en una filosofía cooperativa: los operadores pueden dirigir y administrar cada tienda, atendiendo las necesidades específicas de sus comunidades. Se creó en 1932 y, actualmente, cuenta con más de 13.600 establecimientos en 48 países, convirtiéndose en la primera marca de supermercados minoristas independientes a nivel mundial. Para agilizar las operaciones en su extensa red, SPAR NL adoptó Azure Integration Services y un enfoque basado en la nube como sistema de planificación de recursos empresariales (ERP). En paralelo, tuvieron que reemplazar varios sistemas heredados, incluida una solución de automatización central que no estaba disponible como servicio en la nube.
SPAR NL, junto a Microsoft y su partner HSO Global Services, ha creado una plataforma de integración de Azure. Sin servidor y basada en eventos, esta conecta los servicios locales existentes y las aplicaciones en la nube escalables. Azure Logic Apps y Azure Functions juegan un papel clave en la orquestación de un flujo de trabajo seguro y confiable. La nueva plataforma le da a SPAR la agilidad que necesita para responder mucho más rápido a los cambios, al mismo tiempo que se monitoriza de extremo a extremo para conseguir un diagnóstico rápido.
Reemplazando los sistemas de caja negra
El director de integración de TI de SPAR NL, Joran van den Brink, afirma que la compañía disponía de un legado de sistemas minoristas omnicanal y complementos de punto de venta personalizados que dificultaban mantenerse al tanto de las tendencias de la industria. “Queríamos la mejor arquitectura de su clase en la que se puedan realizar cambios cuando surja algo mejor en el mercado, como una solución de servicio de alimentos o una oportunidad de entrega online. Y no teníamos la capacidad de crearlo con la arquitectura que teníamos en SPAR”.
Además, el equipo de TI de la sede central de la compañía, en Holanda, no podía visualizar fácilmente el enorme inventario de pedidos y productos que atravesaban la red de los sistemas minoristas, financieros y de almacenamiento. “No teníamos una visión general de hacia dónde se dirigían los datos o dónde aparecían los errores, lo que complicaba la operabilidad. No disponíamos de información sobre nuestro sistema. Era una caja negra de diferentes flujos de datos”, explica Van Den Brink.
SPAR NL cuenta con cinco tipos únicos de tiendas para servir a varias comunidades, desde grandes supermercados en ciudades y espacios más pequeños en pueblos o cerca de campus universitarios, hasta tiendas de conveniencia en estaciones de servicio. Si una tienda pierde un envío o no recibe actualizaciones de precios u otra información, se notificaba a la sede central de SPAR NL. Pero los antiguos sistemas minoristas omnicanal dificultaban ver dónde se había producido la incidencia.
“El tiempo de clasificación es limitado”, señala Steef-Jan Wiggers, arquitecto de integración técnica de HSO, que trabajó junto al equipo de van den Brink en una nueva solución. “Queríamos construir una nueva arquitectura con total transparencia para SPAR, incluido un sistema de gestión de incidentes que notificaría inmediatamente a las personas adecuadas sobre cualquier problema”.
La integración de sistemas basada en Azure
El nuevo proyecto de integración de datos comenzó con un cambio a Microsoft Dynamics 365, un conjunto de aplicaciones profesionales inteligentes que vinculan personas, datos y procesos en una organización. Dynamics 365 reemplazó las herramientas ERP anteriores de SPAR y allanó el camino para conectar más activos en la nube, un objetivo importante para la compañía.
“Si quieres estar preparado para el futuro como minorista, necesitas contar con la misma información sobre el cliente tanto online como en físico”, observa van den Brink. “Tienes que disponer de todos los datos e información en la nube, pasando de una estrategia omnicanal a una en la nube para que se puedan adoptar fácilmente las nuevas innovaciones a medida que aparecen”.
Van Den Brink señala que la experiencia de SPAR con Dynamics 365 motivó a la compañía a apostar por Azure. Entonces, su equipo trabajó con HSO para crear un reemplazo de Azure para un corredor de middleware heredado. Al hacerlo, los equipos crearon una solución de integración con todas las capacidades de transparencia y monitoreo de las que SPAR carecía anteriormente.
Un sistema modular basado en eventos
SPAR NL y HSO reemplazaron el antiguo sistema de intermediación de mensajes con una solución personalizada, basada en una plataforma informática sin servidor de Azure con servicios de integración transparentes. La nueva plataforma de integración de datos es, en el nivel más simple, un sistema basado en eventos, con productores (como Dynamics 365) que generan un flujo de acontecimientos y consumidores (como sistemas de punto de venta) que escuchan esos eventos.
Los sistemas globales de SPAR incluyen casi 50 productores y consumidores, tanto en la nube como en las instalaciones, cada uno con una interfaz única, que envía y recibe mensajes de eventos por minuto, diaria o semanalmente. Para agilizar este flujo de acontecimientos, SPAR siguió el patrón de diseño Pipes and Filters, que mejora el rendimiento, la escalabilidad y la reutilización al dividir los procesos complejos en tareas separadas que se implementan y escalan de forma independiente.
“Nuestro enfoque fue usar algo como el paradigma de microservicios de Microsoft”, recuerda Wiggers. Sin embargo, en lugar de estos, su equipo utilizó Azure Functions para crear una función por tarea, como validación, asignación o distribución. “Necesitábamos un sistema basado en eventos que fuera duradero y confiable, pero también eficiente. Por eso elegimos Azure Functions. También nos permitió esconder un poco algunos botones«.
Entre esos “botones” están los precios flexibles. Por ejemplo, algunas cargas de trabajo, como los pedidos de productos, pueden ser enormes, pero la latencia no debe verse afectada. El plan Premium garantiza que estos se procesen y distribuyan sin problemas al permitir que Azure proporcione recursos adicionales según sea necesario para ejecutar las funciones. Pero para la mayoría de las cargas de trabajo, SPAR puede optar por el plan de consumo y pagar solo por el tiempo que se ejecuta su código de función. “Debido a que todo se realiza a través de pequeñas funciones, podemos cambiar las interfaces fácilmente y agregar pasos cuando lo necesitemos. Tenemos la modularidad que buscábamos”, explica Wiggers.
Arquitectura para flujos de trabajo rápidos y flexibles
El equipo optó por Azure Logic Apps para crear los flujos de trabajo y conectar a docenas de productores y consumidores que envían mensajes en la nube y en las instalaciones. Un evento activa Azure Functions para ejecutar cualquier lógica empresarial requerida por un consumidor. Otras aplicaciones lógicas recogen los mensajes y los envían al destino correcto a través de conectores Logic Apps.
Wiggers explica que Logic Apps fue la clave para mantener los sistemas conectados, incluidos algunos componentes basados en archivos. “Algunos de nuestros sistemas de gestión no están habilitados para API y queremos conectarnos de manera segura. Usamos por defecto un conector de Logic Apps porque es óptimo. Y podemos estandarizar fácilmente”.
Para acceder rápidamente a los sistemas basados en archivos, la plataforma utiliza Azure File Sync. Además, Azure Event Grid ayuda a simplificar el sistema al proporcionar un servicio completamente administrado para manejar el enrutamiento de eventos en todos los productores y consumidores de eventos. “Siempre hay un servicio en Azure para la función que necesitas”, observa Wiggers.
Para organizar las numerosas interfaces, HSO desarrolló una convención de etiquetado y nomenclatura que permite a SPAR monitorear fácilmente todos los sistemas. Las interfaces se agrupan en cinco dominios de sentido común que indican dónde se originan los datos. Las de pedidos, que representan los pedidos más importantes enviados por un tipo de tienda determinado y distribuidos a Dynamics 365 Finance y a los sistemas de gestión de almacenes; las de precios y artículos, que representan la información almacenada en Dynamics 365 que debe enviarse a Azure Storage y otros sistemas -incluidos los registros de puntos de venta-; de surtido, que se ocupan de la configuración de un estante que contiene varios artículos o los tipos de artículos disponibles en una tienda determinada; y las interfaces genéricas, que controlan la distribución y archivo de facturas.
“La nueva plataforma de integración de datos nos brindó la oportunidad de crear documentación completa, haciendo que los sistemas sean mucho más fáciles de solucionar, y las convenciones de etiquetado y nomenclatura nos permiten monitorear todo”, explica Van Den Brink. Si surge un problema dentro de un dominio en particular, la plataforma notifica a la persona adecuada, quien puede resolverlo rápidamente. Como señala Wiggers: “Se trata de la capacidad de observar. Azure nos dio los medios para diseñar un sistema transparente y es un gran valor para SPAR”.
La nueva plataforma también proporciona una capa de integración unificada para todas las interfaces, lo que facilita que SPAR se amplíe para los volúmenes máximos. Cada dueño de tienda, y hay cientos, puede enviar docenas de pedidos por día directamente a múltiples proveedores. Los mensajes de un dominio en particular, como un surtido o artículos, se envían en lotes según un cronograma o bajo demanda, y luego se distribuyen al sistema apropiado. Además, los pedidos se envían a lo largo del día como mensajes, con un volumen que oscila entre aproximadamente 6.000 y 10.000 diarios.
Lo que sucede a continuación depende del dominio. Por ejemplo, todos los días la plataforma recibe un mensaje por lotes que consta de cientos de artículos y lo almacena en Azure Storage. Este evento desencadena una canalización de funciones que filtran los mensajes. La primera función valida el mensaje por lotes, iniciando una segunda función que asigna el mensaje a un formato intermedio y una tercera que lo asigna al del sistema de destino. La función final envía el mensaje al destino.
Este diseño se adapta a una variedad de formatos, como archivos planos, XML, EDI, JSON y otros que todavía se usan comúnmente en la industria minorista para datos de precios. Por ejemplo, un recurso compartido de archivos SPAR local que almacena precios como datos XML se sincroniza diariamente con Azure Storage. Los valores XML entran en la canalización de funciones que se van a procesar y luego se envían a otro recurso compartido de archivos en Azure o a otro sistema a través de una aplicación lógica y un adaptador SFTP. “Azure Functions y Azure Logic Apps nos brindaron la flexibilidad que necesitábamos para abordar estos volúmenes de datos realmente enormes con el rendimiento que necesitábamos”, concluye Wiggers.
Servicios de integración que preparan la plataforma para el futuro
A diferencia de los sistemas de caja negra del pasado, la nueva plataforma de integración de datos de SPAR aclara flujos de trabajo complejos y crea oportunidades para nuevos modelos de negocios. Y no solo cumple con el primer objetivo de Azure de SPAR, sino que también proporciona una mejor calidad de los datos, gracias a las comprobaciones de validez en las funciones basadas en eventos.
“Ahora podemos solucionar problemas de manera proactiva y adelantarnos a los posibles errores, antes que nuestros clientes, los dueños de las tiendas, lo hagan. Los corregimos en el acto, la mayoría de las veces el mismo día”, explica Van Den Brink. “Esta solución de integración de Azure hace posible obtener un pedido, obtener la escalabilidad necesaria y enviarlo directamente a los sistemas correctos, ya sea Dynamics 365 para finanzas o el sistema de administración de almacenes, y que fluyan a tiempo. Se trata de un éxito para la empresa”.