Success story

Migración en tiempo récord de todos los repositorios y contenedores a AWS

Wegow es el marketplace social de la música en vivo, en el que usuarios, artistas, promotores y marcas se sumergen en el territorio de los conciertos y festivales de una forma totalmente innovadora. Su negocio ha avanzado hacia la venta de entradas online, posicionándose como referente español en este ámbito y haciéndose presente en más de 21 países, con más de 5M de visitas mensuales a nivel global.

Entre sus funcionalidades destacan la capacidad de anunciar a sus usuarios los conciertos de sus artistas favoritos, así como recomendaciones de gustos basadas en análisis de Data, la capacidad de usar salas de chat para hablar de música entre los distintos usuarios de la plataforma o la centralización de la venta de entradas de sus proveedores desde una única web.

Situación inicial

Wegow inicialmente cuenta con una plataforma con distintos entornos: Un entorno de desarrollo y un entorno de preproducción para hacer pruebas de la plataforma.

También debíamos tener en cuenta la operatividad de la propia aplicación, ya que se basa en un sistema de microservicios encargados de gestionar las distintas funcionalidades de la plataforma como la web, los chats, los streaming, etc.

La aplicación funciona en una plataforma de Kubernetes desplegada en otro proveedor de servicios cloud. Lo mismo ocurría con todos los servicios relacionados con sus bases de datos, cuyos proveedores externos eran Mongo Atlas o Elastic.co.

También debíamos tener en cuenta que la plataforma contaba con otros elementos como cachés, cdn, dns, sistemas de integración continua, etc y que eran completamente necesarios de migrar junto con los entornos de Wegow.

Los objetivos

Una vez establecido el contacto con Wegow, se nos presentaba el reto de migrar completamente su plataforma, así como sus sistemas de desarrollo, desde varios proveedores cloud, unificando todo su entramado cloud bajo un único entorno basado en AWS.

Además, el tiempo con el que contábamos para desarrollar el migración era muy corto, cuatro semanas, debido a distintos retos de Wegow y para poder beneficiarse del amplio catálogo de servicios cloud que presenta AWS.

Debido a la presencia mundial de Wegow, el proceso de migración se nos complicaba, ya que no podíamos dejar sin disponibilidad la plataforma durante más de un par de horas, por lo que hubo una gran preparación del entorno en AWS previa al switch-over de la plataforma.

Otro de los objetivos clave era conseguir un significativo ahorro de costes en la plataforma mediante automatizaciones y reservas de recursos que poder utilizar posteriormente pero con un coste significativamente menor.

La solución

Debido al amplio catálogo de servicios en AWS, y que todas las tecnologías utilizadas por Wegow estaban siendo ofrecidas también desde AWS como servicios cloud, se decide hacer una migración completa de infraestructura y servicios a un entorno AWS.

El primer paso fue establecer una estructura de cuentas unificadas en una organización de AWS para Wegow, en las que se contemplaban y se dividían los entornos en distintas cuentas siguiendo las best-practices de AWS.

Para la parte de la aplicación que funcionaba en Kubernetes, se decide utilizar el servicio gestionado presente en la nube de Amazon, EKS. Este servicio se encargará de orquestar todos los microservicios de la aplicación y proporcionará ventajas a Wegow en cuanto a escalabilidad y estabilidad de la plataforma. Además, se implementaron una serie de herramientas para monitorizar la plataforma y dar seguimiento a los posibles errores que se produjesen.

Para las distintas bases de datos presentes en el cliente, se decide utilizar una amplia gama servicios gestionados de AWS como RDS, ElasticSearchService y ElastiCache. Mientras que para la parte de analítica de datos, se implementa el servicio de EMR, para lanzar los jobs de Spark que generarán las recomendaciones musicales para los usuarios de la app de Wegow.

Beneficios y ventajas

Unificación de servicios cloud en una sola plataforma y un mismo entorno AWS

Mejora de la estabilidad de la plataforma

Securización perimetral de la plataforma

Uso de CloudHealth para ahorro de costes

Uso de VPN para permitir el teletrabajo