Blog de Amazon Web Services (AWS)

FASHIOLA: Acelerando su migración a la nube de la mano de Edrans

Sobre FASHIOLA

Fashiola (y su plataforma holandesa, Kleding) se fundó en 2012 en los Países Bajos y dos años después, tras validar el modelo, se extendió a Alemania, Francia, Reino Unido y España. La empresa agrega la oferta online de una amplia gama de marcas de moda y tiendas multimarca. La plataforma está presente en veintitrés países y recoge más de 70 millones de visitas al año.

FASHIOLA en AWS: su desafío

En este blog post, el equipo de ingeniería cloud de Edrans, Partner Premier de Amazon Web Services (AWS), nos cuenta cómo ayudaron a Fashiola a migrar su infraestructura on-premise a la nube de AWS, con el reto de tener plazos muy ajustados. AWS le ha permitido a Fashiola aprovechar las ventajas de escalabilidad y resiliencia de la nube en un plazo de 3 meses, sin contratiempos. Al pertenecer a la industria de la moda, en constante cambio y evolución, Fashiola requería una rápida migración a la nube, sin disrupción ni impacto del negocio, pero que contemplase la aplicación de buenas prácticas de arquitectura en la AWS.

El desafío para el equipo de Edrans consistió en re-arquitecturar y migrar diversas bases de datos y varios servicios a la nube de AWS en un período inferior a 3 meses. Algunos de los servicios a migrar eran RabbitMQ, MariaDB, Apache Solr, y múltiples microservicios alojados en sus servidores on-premise.

Los desafíos que tuvo que enfrentar el equipo de ingeniería fueron, por un lado, la migración de grandes bases de datos que estaban en una versión antigua, ya no soportada por Amazon RDS, lo cual agregó complejidad al desafío. Por otro lado, el reto de tener que diseñar y re-arquitecturar simultáneamente a migrar los diferentes servicios a la nube. Y finalmente, la imposibilidad de suspender el servicio al hacer el cutover, ya que implicaba una pérdida económica para el cliente.

Además del desafío general, debido a las necesidades particulares del cliente, el equipo de Edrans debió acelerar los tiempos de la migración y ejecutarla en 15 días menos de lo planeado inicialmente. Afortunadamente, gracias al conocimiento y agilidad de Edrans, la migración se llevó a cabo a tiempo, ayudando a Fashiola a reducir sus costes e incrementando y mejorando la escalabilidad y la alta disponibilidad de la plataforma que ofrece a sus clientes.

La solución: Tecnologías que utilizan

En este proyecto, se implementó Robotize Control Tower, una herramienta de organización de cuentas desarrollada por Edrans, con el objetivo de trabajar en un entorno «multi-account» y «multi-environment». Esta solución permite la customización necesaria para crear una jerarquía de cuentas según las necesidades acordadas con Fashiola.

Con Robotize Control Tower, todas las cuentas quedan “orquestadas” bajo su paraguas, el cual se encarga no sólo de organizar las cuentas de la forma más eficiente, sino también de asegurarlas todas con un «policy enforcement» para prevenir incidentes de cualquier tipo.

De este modo, quedan configuradas por defecto las Service Control Policies (SCPs) de AWS Control Tower que le permiten al cliente decidir en qué regiones se pueden desplegar servicios, como también qué Tags tienen que tener los servicios para poder desplegarlos. Estas políticas de control de servicios (SCPs) permiten regular de forma centralizada la administración global de nuestro entorno cloud en AWS.

El siguiente gráfico muestra algunas de las cuentas, los servicios y las cargas de trabajo de Fashiola:

Solución Fashiola y AWS

Edrans también implementó su solución Robotize EKS para el despliegue de las aplicaciones y microservicios propios del cliente y aplicaciones de terceros, los cuales pueden ser Prometheus o distintos operadores de Kubernetes. Robotize EKS se encarga de la gestión y la automatización de contenedores, así como del “bootstrapping” del cluster gestionado de Kubernetes (Amazon EKS) donde se instalan y configuran varios servicios de forma automatizada, como por ejemplo el gestor de External Secrets para interactuar con AWS Systems Manager Parameter Store. También se utilizaron Amazon RDS para el almacenamiento de la información que utilizan las aplicaciones de Fashiola, grandes volúmenes de datos con un histórico de varios años.

La arquitectura

Arquitectura Fashiola y AWS

Con la implementación de Robotize EKS, el equipo de Edrans logró realizar el despliegue y las modificaciones, disminuyendo el tiempo de despliegue a un tercio del tiempo estimado, implementando un cluster productivo de forma ágil para así poder finalizar la migración a tiempo.

El gran trabajo realizado por parte del equipo de Fashiola facilitó hacer los cambios pertinentes en su propia aplicación para adaptarse antes de la migración a la nube de AWS y a los cambios que esta requería para ser “contenerizable” y desplegar en un cluster de Amazon EKS.

Consideraciones

Migración de base de datos: al tratarse de una versión antigua de MariaDB, y por tanto ya no soportada por Amazon RDS, el equipo de ingeniería optó por lo siguiente:

  • Se consideró la posibilidad de usar AWS Database Migration Service, pero se decidió usar una herramienta desarrollada por Edrans para incluir la migración de los atributos AUTO_INCREMENTAL para cada una de las tablas de la base de datos.
  • Actualizar la base de datos on-premise a una versión superior a la utilizada.
  • Migrar todo el contenido de la base de datos principal a Amazon EC2 y analizar comportamiento e integridad de los datos.
  • Poner en producción la base de datos contenida dentro de Amazon EC2 y monitorizar su comportamiento.
  • Mientras tanto, migrar el contenido de Amazon EC2 a Amazon RDS con la misma herramienta desarrollada por Edrans, específicamente diseñada para migración de bases de datos SQL (MariaDB/MySQL).
  • Cutover definitivo y configuración de alertas y observabilidad.
  • Traspaso de conocimiento al cliente.

Así mismo había una gran cantidad de datos a migrar (>6 TB), por consiguiente, en las bases de datos había miles de millones de filas por tabla, con lo que cada prueba requería de una inversión considerable de tiempo. Usando Performance Insights, la funcionalidad de Amazon RDS pudimos ver y detectar de forma visual y fácil cada uno de estos errores y corregirlos a tiempo.

Resultados

En su infraestructura, Fashiola utiliza múltiples servicios que fueron migrados y configurados adecuadamente para obtener tiempos de respuesta similares o mejores respecto a su solución on-premise. Se obtuvieron grandes resultados como la mejora en los tiempos de respuesta (reducción en un 10% en la latencia entre el cliente y la aplicación), en toda la infraestructura, así como en auto-escalabilidad gracias a Amazon EKS, y se redujo el coste de la misma mediante el uso de Reserved Instances y Spot Instances según requerimientos de cada microservicio.

Por ejemplo, se usaron Reserved Instances para los worker-nodes de Amazon EKS y Spot Instances para los entornos de desarrollo. Estos mismos entornos de desarrollo por las noches se detienen gracias a las políticas de auto-escalado. Esto permitió construir un entorno de desarrollo en la nube con unos costes mínimos.

Dentro de Amazon EKS se desplegó también un cluster de Apache SolrCloud basado en una solución propuesta por Amazon: https://thinkwithwp.com/blogs/opensource/deploying-and-scaling-apache-solr-on-kubernetes/ .

Las reducciones de costes alcanzaron un 50% respecto a los costes on-premise en menos de un mes gracias también a la re-arquitectura de microservicios en Kubernetes.

Conclusiones

Edrans logró crear para Fashiola una base que les permite continuar desarrollando su plataforma haciendo uso de las mejores prácticas en AWS sobre infraestructura como código.

El uso de herramientas como Terraform e Infracost ayudó considerablemente con el manejo de los costes de infraestructura en AWS, mejorando y optimizando el consumo de servicios.

Con esta nueva infraestructura, el equipo de Fashiola ha sentado las bases para seguir innovando en su operación, pudiendo generar pipelines de uso de Machine Learning para patrones predictivos y previsión de fallos y, además, seguir implementando mejoras en materia de seguridad y compliance (AWS IAM Identity Center, Service Control Policies (SCPs), entre otros).

Sobre los autores

FASHIOLA

Francisco Javier Pérez Requejo – CTO Fashiola

Benjamín Hernández – Senior Developer Fashiola

EDRANS

Pol Jane – Tech Lead, Security Specialist en Edrans y Tech Lead del proyecto de migración de Fashiola

Carlos Hurtado – Tech Lead, DevOps Specialist en Edrans y Cloud DevOps Engineer del proyecto de migración de Fashiola

Ivan Martorell – Cloud DevOps Engineer en Edrans

Gretchens Pérez Vallejos – Business Development Executive EMEA en Edrans

AWS

Ezequiel Ballesteros – Solutions Architect de PyMEs en AWS Iberia, con gran experiencia en Migraciones
Marta de Esteban Belzuz – Account Manager de PyMEs en AWS Iberia