Caso de estudio: Librio

Rediseño de arquitectura para revivir un e-commerce de libros
softspring-librio-cms-case.png

Contexto inicial

Cuando Librio llegó a nosotros, se encontraba en una situación crítica con su e-commerce monolítico para la venta, administración y generación de libros personalizados. Ubicado en un único servidor en Google Cloud, su infraestructura no solo era lenta, sino propensa a caídas durante picos de tráfico, especialmente visibles durante campañas publicitarias. Este escenario afectaba directamente la experiencia del usuario y la estabilidad del negocio.

El reto

El principal reto era mejorar el rendimiento del e-commerce, asegurando una alta fiabilidad y la capacidad de manejar incrementos de carga sin comprometer la velocidad o funcionalidad, optimizando al mismo tiempo los costos operativos.

Propuesta de desarrollo

Tras analizar en detalle la infraestructura y el código existente de Librio, decidimos iniciar el proyecto con un enfoque escalonado. En la primera fase, optamos por actualizar la infraestructura sin realizar cambios inmediatos en el código. Implementamos un nuevo sistema de gestión de versiones y automatizamos el proceso de despliegue para facilitar actualizaciones frecuentes y automáticas. Esta estrategia permitió mejorar la infraestructura de manera significativa, sentando las bases para futuras optimizaciones en el código.

La solución

La reestructuración de la infraestructura de Librio comenzó con la separación de la base de datos hacia CloudSQL, configurando una instancia que ofreciera alta disponibilidad para atender a las demandas del servicio. Adicionalmente, integramos Redis en Memorystore para gestionar de manera eficiente los datos de caché compartidos. Para maximizar la escalabilidad y gestionar mejor la carga, migramos el servidor a contenedores dentro de un clúster de Kubernetes, permitiendo una escalabilidad dinámica según las necesidades del momento.

Un cambio clave fue la segregación de la generación de previsualizaciones de libros, que era el proceso que más carga generaba en el sistema, moviéndola a microservicios en Cloud Functions y utilizando Cloud Endpoints para manejar estas operaciones como una API independiente. Además, separamos las tareas de generación de libros y otros procesos críticos de la lógica de negocio, ejecutándolas en contenedores aislados dentro de instancias de tipo "worker", gestionadas a través de colas y cron jobs para optimizar el rendimiento y la eficiencia.

Tecnologías que empleamos

En nuestro esfuerzo por optimizar y transformar el e-commerce de Librio, utilizamos una variedad de herramientas y plataformas. Entre las principales se encuentran:

Final feliz

Desde la implementación de las mejoras, el e-commerce de Librio ha demostrado una capacidad notable para manejar picos de tráfico y campañas publicitarias sin comprometer el tiempo de respuesta. Los costes de operación ahora se ajustan dinámicamente según la carga y las ventas, proporcionando un control financiero más efectivo. Desde la implementación de estas soluciones, el sistema no ha experimentado caídas, mejorando significativamente la confiabilidad del servicio.

Continuamos evolucionando y optimizando la arquitectura, recientemente migrando de Kubernetes a Cloud Run, lo que ha permitido mejorar aún más la eficiencia y adaptabilidad del sistema. Estas mejoras se han realizado siempre en estrecha colaboración con el equipo de Librio, asegurando que las soluciones implementadas se alineen perfectamente con las necesidades cambiantes del negocio.

¡Trabajemos juntos!

¿Quieres contarnos tu idea?

CONTÁCTANOS