Caso de estudio: Librio
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
Google cloud functions
Entorno de ejecución sin servidores para compilar y conectar servicios en la nube.
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.