Las plataformas e-commerce cada vez son más necesarias y más usadas por los clientes. Este incremento en la demanda de los servicios junto a la alta disponibilidad esperada obligan a realizar migraciones de las antiguas arquitecturas usadas por las organizaciones para poder adaptarse a estos nuevos tiempos.
Hoy hablamos del proyecto de migración que estamos realizando de una plataforma e-commerce con presencia internacional, altamente utilizada (varias millones de peticiones cada hora) y con venta de productos y servicios de diversas categorías y sectores (hogar, supermercado, viajes y seguros)
Esta migración está siendo llevada a cabo usando tecnologías, arquitecturas y metodologías innovadoras pero bien asentadas en la industria con el fin de asegurar su calidad.
Además, el equipo humano detrás de este proyecto cumple todas las exigencias de experiencia, conocimiento y capacidad; pero adicionalmente está formado por profesionales que llevan participando los últimos años en diferentes proyectos de desarrollo, mantenimiento y evolución de sistemas similares.
OBJETIVO
Desarrollo de una plataforma de comercio electrónico distribuida personalizada que permita una alta disponibilidad y resiliencia a la par que una respuesta rápida y eficiente a la demanda de los usuarios. Esta demanda, al igual que en el resto de e-commerce, presenta variaciones dependiendo de la época del año (Black Friday, rebajas, etc.)
La arquitectura antigua realiza muchos trabajos en batch, por lo que hay muchas operaciones que no se realizan en tiempo real: actualizaciones del precio (price-matching), del catálogo… El sistema a reemplazar se basa en procesos que se demoran varias horas para realizar este tipo de actualizaciones, por lo que es importante mejorar en este aspecto y llegar al real-time.
EL RETO
El principal reto de este proyecto es que consta de la migración de la plataforma actual con más de 20 años de antigüedad a tecnologías y arquitecturas modernas sin dejar de dar servicio al cliente y de una forma controlada, asegurándonos de que se entrega un sistema de calidad.
Había dos aproximaciones para realizar el desarrollo de la nueva plataforma:
- Big-bang: empezar desde 0.
- Migración gradual por dominios. Éste es el que se decidió seguir.
Además de la migración del sistema antiguo, hay que asegurarse de migrar todas las nuevas funcionalidades que siguen llegando al mismo durante el desarrollo. Esto es porque es un desarrollo de larga duración y el sistema antiguo sigue en marcha y se le siguen añadiendo funcionalidades.
LA SOLUCIÓN
- Análisis, diseño, implementación y pruebas del dominio funcional de promociones haciendo uso de una metodología scrum. Se eligió esta metodología porque encaja a la perfección con las necesidades del cliente: reduce el time-to-market de la plataforma, facilita el alineamiento del proyecto con la estrategia corporativa del cliente, permite gestionar proyectos en entornos de elevada incertidumbre y mejora la calidad del producto final puesto que es evaluado por el cliente periódicamente mediante demostraciones.
- Arquitectura basada en microservicios y con una estructura de microservicios basados en eventos (Kafka) para proporcionar escalabilidad, elasticidad y resiliencia a la plataforma y reducir el acoplamiento temporal y espacial entre éstos microservicios. Se optó por un desarrollo altamente distribuido debido a los exigentes requisitos de rendimiento y los reducidos tiempos de respuesta.
- Prometheus, Grafana, AlertManager para monitorizar el estado de la plataforma y alertar de situaciones inesperadas en tiempo real. Este conjunto de tecnologías son cruciales si se busca una alta disponibilidad, que es esencial en una plataforma de e-commerce, además de facilitar el mantenimiento ya que se muestra información concisa pero completa en dashboards
- Uso de TDD como metodología de desarrollo para generar tests como documentación y garantizar una alta cobertura de instrucciones con los mismos
- Desarrollo API First con la finalidad de que los equipos de frontend y backend puedan trabajar en paralelo, disminuyendo significativamente el tiempo de espera por parte del cliente para visualizar los cambios que pidió (tiempo de entrega).
- Spring Boot & Cloud Stack para abstraerse de la complejidad accidental al desarrollar aplicaciones de estas características, pudiendo invertir más parte del tiempo en qué hay que resolver y no en cómo hay que resolverlo.
- Integración continua utilizando la herramienta Jenkins y despliegue continuo usando Openshift para verificar que la aplicación se comporta como se especificó en varios entornos, manteniéndola al alto nivel de calidad estipulado por el cliente y permitiendo entregar el producto de calidad al cliente en el menor tiempo posible. Además, al trabajar mediante ciclos, el cliente puede ver cómo se están construyendo sus requisitos y proporcionar retroalimentación para obtener un producto de aún mejor calidad y que cumpla todos sus estándares.
EL RESULTADO
Nuestro equipo integral multidisciplinar (Scrum Master, equipo de desarrollo, equipo de Quality Assurance) continua trabajando mano a mano para llevar a la compañía a la primera línea a nivel tecnológico y poder competir con los grandes retailers a nivel global.
Ahora, de nuevo viviendo los picos más altos de venta (Black Friday y Navidad), la plataforma se ha preparado para un tráfico todavía superior al año anterior, sin dejar de lado otras metas como mejoras en el SEO de la web.
Además cabe destacar el uso de metodología ágil en un dominio complejo y la implantación del uso del stack de Atlassian (Bitbucket, Jira y Confluence) para la gestión de código fuente, incidencias, peticiones y documentación a nivel interno.
Hiberus Digital es un referente en el mercado de e-commerce y nuestro objetivo es ayudar a nuestros clientes a conseguir sus objetivos de negocio. Puedes leer los casos de éxito de Grupo Pronovias, Grupo Raventós Codorniú o Douglas, entre otros. Además, escucha a nuestro equipo en el webinar Microservicios: disponibilidad y escalabilidad para Black Friday.
Cuéntanos tu proyecto y conoce a nuestro equipo experto.
Autores: Ángel Cañal, Alejandro Gómez y Raúl Javierre.
¿Quieres más información sobre nuestra área de Microservicios?
Contacta con nuestro equipo de Microservicios