CyberMonday e HiperLunes: cómo nos preparamos para la avalancha de ventas

Bootic recientemente participó en dos eventos consecutivos que generaron muchísimo tráfico y ventas en nuestra plataforma. En este artículo les contamos cómo nos preparamos para la avalancha de visitas y cuáles fueron los resultados. Puede que nos pongamos un poco técnicos.

CyberMonday

El CyberMonday 2014 fue un evento de 1 día organizado por la Cámara de Comercio de Santiago este 17 de Noviembre. Esta fue la 4ta versión del evento y participaron marcas conocidas del retail, aerolíneas y otras industrias, con mucha presencia en medios y expectativas del público.

De nuestras tiendas, participaron Romano y Más Baratos con descuentos excepcionales con ocasión del evento. Esto generó el aumento de tráfico y ventas más significativo que hemos tenido este año. Previendo esto, en Bootic empezamos los preparativos con días de anticipación para asegurar que nuestra infraestructura brindara un buen servicio no sólo a las tiendas participantes sino que todas las otras tiendas que corren sobre nuestra plataforma.

HiperLunes

La segunda versión de HiperLunes, nuestro propio sitio de descuentos, congregó a más de 40 tiendas Bootic grandes y pequeñas, con una selección de más de 1000 productos en oferta, por 24 horas este Lunes 1 de Diciembre.

Esta iniciativa fue un muy buen vehículo para dar a conocer los productos de tiendas que usan Bootic, y para muchas de estas tiendas significó un aumento importante de las ventas. Algunas tiendas destacadas fueron Needle, con excelentes ofertas en equipos de música, y Coyote Bags con preciosos bolsos y carteras. Y muchas, muchas más.

Creemos que HiperLunes tiene mucho potencial y esperamos tenerles más noticias en el futuro cercano.

Los preparativos

Estos dos eventos combinados y consecutivos se vieron traducidos en un torrente de tráfico sobre nuestros servidores e infraestructura. A continuación detallamos cuáles fueron los cuellos de botella que detectamos con anticipación y cómo fueron resueltos.

1). Archivos estáticos.

Los “archivos estáticos” son archivos que no dependen de nuestras bases de datos, como hojas de estilo CSS, archivos JavaScript e imágenes presentes en el diseño de las tiendas. Si bien en circunstancias normales estos archivos no afectan demasiado el rendimiento de los servidores, en casos de altísimo tráfico pueden ocupar una parte importante del “ancho de banda” en la transferencia entre servidor y navegadores. El ancho de banda es un recurso limitado y es prudente dedicarlo a tareas más críticas como servir los carros de compra o procesar pedidos y despachos en cada tienda.

Nuestra solución fue delegar el servicio de archivos estáticos lo más posible a servicios especializados o “CDN” (Content Delivery Network). En particular usamos los servicios del excelente CloudFlare. Esto nos ahorró alrededor de 1,5 Terabytes de transferencia de archivos en unas pocas horas.


Aumento de transferencia de datos

2). Imágenes de productos

Las plantillas Bootic tienen la habilidad de desplegar imágenes de productos en tamaños personalizados. Esto es muy poderoso porque da total libertad al equipo de diseño de cada tienda, pero también implica extra procesamiento de imágenes para nuestros servidores.

Afortunadamente, Bootic posee servidores especializados para esta función que pueden ser escalados horizontalmente en cuestión de minutos. Además, una vez transformadas, estas imágenes también son servidas por una CDN (CloudFlare), por lo que bastó levantar unos pocos servidores nuevos para soportar el aumento de tráfico sin incidencias.

3). Carros de compra.

Gracias a una combinación de CDNs (descrito arriba) y otras técnicas de Caching que Bootic ha empleado desde hace años, las tiendas Bootic estaban en una buena situación para enfrentar ambos eventos. Con una excepción: muchas tiendas tienen un Carrito Ajax, que mejora la usabilidad y dinamismo del carrito de compra. Cada visita a una de estas tiendas significa una solicitud a nuestros servidores y base de datos. Dado el tráfico suficiente, este componente tenía el potencial de convertirse en un talón de Aquiles para todo el resto del sistema.


Carrito de compras dinámico en www.romano.cl

Para proteger a nuestros servidores de aplicación y fortalecer este punto débil desarrollamos un servidor especializado escrito en Go, un lenguaje de programación de alto rendimiento, que intercepta las llamadas al carrito Ajax y las procesa de forma mucho más eficiente. Esta optimización mejoró dramáticamente el rendimiento de todo Bootic y está aquí para quedarse. Si tu tienda usa el carrito Ajax, está usando esta nueva aplicación!

4). Servidores de aplicación.

Estos son los servidores que procesan cada visita, generan páginas HTML, procesan pedidos de compra, envían emails, etc. En particular la aplicación principal de Bootic, que está escrita en Ruby on Rails. El aumento esperado de ventas hacía crítico aumentar la capacidad de estos servidores.

Afortunadamente, la infraestructura de Bootic está diseñada de tal manera que es sencillo agregar clones de cada servidor y así distribuir la carga. Para estos eventos duplicamos la cantidad de servidores. Los datos recabados durante esos días mostraron que el conjunto de nuestra infraestructura nunca superó el 30% de capacidad, incluso en las horas más críticas!


Aumento de pedidos en el día del CyberMonday para tiendas participantes

5). Monitoreo

Con toda la preparación del mundo, algo siempre puede salir mal. Los servidores se pueden caer, servicios dependientes como WebPay pueden sucumbir ante el tráfico o discos duros pueden quedarse sin espacio.

En Bootic desde hace años tenemos cierto grado de monitoreo automatizado de la infraestructura. Registramos incidencias en New Relic y mantenemos los servidores andando usando Monit, entre otras cosas. Pero para eventos como éstos nada reemplaza a nuestros propios ojos y manos expertas.

Es por esto que durante el transcurso del CyberMonday y HiperLunes nos organizamos como equipo para tomar turnos frente a los monitores, y nos aseguramos de documentar cada rincón del sistema para que cualquiera de nosotros supiera exactamente dónde mirar en caso de problemas.

Para este tipo de monitoreo es fundamental tener información de calidad en tiempo real. Además de las herramientas mencionadas arriba, utilizamos una herramienta super-secreta, desarrollada por nuestro Tomás Pollak, para monitorear el conjunto de nuestros servidores. Esto nos dió una excelente visión global del comportamiento de la plataforma durante los eventos.


Servidores Bootic en el peak de tráfico del CyberMonday. Ni se nota el esfuerzo!

Además, Bootic cuenta con un sistema interno de eventos en tiempo real que nos dió una buena idea de los aumentos y bajas de visitas y compras en todo momento. Esperamos poder contarles más sobre estas herramientas más adelante.

El futuro

En anticipación a ambos eventos, varias de nuestras tiendas nos preguntaron si Bootic sería capaz de soportar el aumento de tráfico. La aprehensión tiene fundamento: en sus versiones anteriores el CyberMonday de la Cámara de Comercio ha generado tal tráfico que muchas marcas participantes se han visto sobrepasadas técnicamente. Nosotros estábamos determinados a que esto no nos ocurriría a nosotros.

Tenemos confianza en que nuestra infraestructura puede soportar la carga sin problemas, y a varios días de terminadas las ofertas tenemos la experiencia para probarlo. Como usuario Bootic, lo mejor de todo esto es que, si tu tienda Bootic se convierte de la noche a la mañana en un éxito de ventas, puedes dormir tranquilo/a sabiendo que en Bootic trabajamos constantemente para que tu presencia en línea este a la altura de tu éxito.

Publicado el 05/12/2014 por Tomas
Ver artículo anterior Ver artículo siguiente