DevOps

Black Friday y picos de trafico: por que tantas plataformas siguen cayendo

Publicado 10 oct 2025Actualizado 11 mar 2026Por Valendra

Que rompe un ecommerce en Black Friday y como prepararlo con capacidad, degradacion controlada y observabilidad real.

Black Friday y picos de trafico: por que tantas plataformas siguen cayendo

En campanas de trafico extremo, el problema no suele ser falta de cloud; suele ser que la plataforma no sabe degradar con control. Cuando eso ocurre, el problema deja de ser una decision tecnica aislada y pasa a ser un problema de coste, riesgo operativo y capacidad de entrega.

Esta guia aterriza preparar un ecommerce para Black Friday sin sobredimensionar ni dejar la resiliencia al azar con criterios que aguanten produccion, auditoria y crecimiento. El objetivo no es acumular tooling. Es recuperar control y reducir incertidumbre con un sistema que el equipo pueda gobernar sin dependencia innecesaria.

El patrón real detrás de las caídas está en los límites del sistema, no en la falta de cloud

En producción casi nunca falla por “nos faltó cloud”. Lo que vemos es inversión en capacidad visible, más pods, más instancias, más nodos, mientras el límite real está en otro lado. El autoscaling solo escala cómputo. No hace que tus queries sean más eficientes, no aumenta los límites de conexiones de tu base de datos, no cambia el throughput de un tercero y no elimina la contención interna de tu propia aplicación.

Lo que la documentación no te dice es que durante un pico el factor determinante suele ser el tiempo hasta entender qué está pasando. El componente que cae rara vez es sorpresa, lo que sorprende es que el equipo tarda demasiado en aislarlo. Si tardas 15 minutos en identificar el cuello de botella, el impacto ya suele ser mayor que el coste de haberlo prevenido con un par de decisiones de gobernanza.

Y aquí aparece un patrón constante. El cuello de botella suele estar en datos, no en cómputo. Los picos exponen contención, locks, saturación de pools, consultas que con tráfico normal pasan como “aceptables”, y caches que se comportan bien en promedio pero se degradan justo cuando más las necesitas. A partir de ese punto la conversación con un CTO deja de ser “cómo escalo” y pasa a ser “qué límites tengo, dónde se concentran, y qué rutas protegen ingresos”.

Los cinco fallos previsibles que explican la mayoría de incidentes en picos

El autoscaling existe, pero llega tarde o escala una señal equivocada

“Tengo HPA” o “tengo ASG” suena tranquilizador, pero no equivale a estar preparado. En producción se repiten dos escenarios.

El primero es el escalado tardío. La métrica que dispara el scaling llega con retraso, o el provisioning tarda demasiado. Pull de imagen, calentamiento de cachés, inicialización de runtimes, JIT, conexiones iniciales a dependencias, y a veces incluso tareas que nadie quería ejecutar en ese momento, como migraciones o jobs que arrancan con cada pod. Si tu pico se materializa en 30 segundos y tu plataforma reacciona en 2 a 4 minutos, el mecanismo existe pero la estrategia no.

El segundo es el escalado hacia un techo equivocado. Requests y limits mal calibrados, min y max conservadores por miedo a coste, o reglas basadas en CPU cuando el problema real es I/O, saturación de pools o contención en base de datos. Un clásico es ver CPU estable mientras p95 y p99 se disparan porque el servicio está esperando a la DB o a un tercero.

La consecuencia operativa es una espiral. Entran más requests en un servicio ya saturado, sube la latencia, crecen colas internas, se agotan threads o workers, y empiezan errores en cascada. Desde negocio se ve como caída aunque técnicamente haya respuestas. En conversión ese matiz no importa.

La base de datos colapsa porque es el recurso compartido que todo el mundo golpea a la vez

Si hay un componente donde los picos castigan, es la capa de datos. No porque la base de datos sea “el problema”, sino porque es un recurso compartido con límites físicos y de concurrencia claros. Escalar aplicación sin gobernar DB es acelerar contra el muro con más fuerza.

Los síntomas son conocidos. Pools de conexiones agotados, transacciones largas que mantienen locks, queries que escalan mal por falta de índices o por planes inestables, hotspots en particiones, y un multiplicador que mucha gente subestima, los retries. En un pico, los retries mal diseñados convierten un problema local en una avalancha. Aumentas la presión cuando el sistema ya está diciendo que no puede.

Lo importante para ROI es que esta clase de incidente no solo degrada una ruta. Puede tumbar el componente que sostiene todo y bloquear checkout, catálogo, pricing y cualquier flujo que dependa del mismo almacén. Recuperar la DB bajo estrés no es instantáneo, y suele requerir decisiones con riesgo.

El cache está presente, pero se comporta como un amplificador de carga en el momento crítico

“Tengo Redis” es una frase que en incidentes no significa mucho. Un cache efectivo no se mide por existir, se mide por mantener un hit rate alto y estable cuando cambia el patrón de acceso.

En producción hemos visto caches fallar por claves demasiado específicas que fragmentan el espacio, TTLs mal elegidos que generan avalanchas de expiración, invalidaciones masivas que fuerzan recomputación cara, y rutas críticas donde no hay control de concurrencia por key. Sin single-flight o algún mecanismo de coalescing, un solo hot key puede disparar cientos de recomputaciones simultáneas. Eso golpea CPU y DB a la vez.

El efecto es traicionero. El cache, diseñado para absorber carga, la empuja hacia la base de datos justo cuando está más frágil. Es uno de esos problemas que pasan desapercibidos semanas y explotan el día más caro.

Los terceros se vuelven lentos y tu plataforma se convierte en su buffer

Los proveedores externos tienden a degradarse en picos. A veces por volumen global, a veces porque tu pico coincide con el de otros clientes, o simplemente porque su elasticidad no es la tuya. El patrón de caída es sencillo. El tercero se vuelve lento, tú esperas demasiado, consumes threads, agotas pools y terminas indisponible tú antes que él.

Timeouts agresivos, circuit breakers y bulkheads no son “hardening académico”. Son gobernanza de recursos. Si no proteges tus recursos, tu plataforma asume la cola y el coste del problema ajeno. Para el cliente la causa no existe, solo existe que no compra.

Las pruebas de carga validan un laboratorio y la campaña ejecuta otro sistema distinto

El pecado original suele estar aquí. Muchas pruebas de carga se parecen a un benchmark sintético, no a una campaña real. Se simula volumen pero no mezcla de rutas. Se ignoran think time y ráfagas. Se prueba con caché caliente y datos estáticos. Se omiten payloads grandes, geografías, o la distribución real de usuarios.

El resultado es una falsa sensación de seguridad. El día del pico descubres que el cuello estaba en un endpoint “secundario” que se vuelve crítico cuando cambian parámetros, o en un join que nadie estresó, o en un flujo con escrituras que el test no ejecutó con la misma intensidad. Y entonces se decide bajo presión, que es el contexto más caro para decidir.

Prepararte de forma pragmática significa controlar límites y degradación, no solo comprar capacidad

Una preparación que funciona se parece menos a “subir tamaños” y más a alinear arquitectura con rutas de negocio y con límites explícitos. Cuando se hace bien, el ROI mejora por dos vías. Reduces la pérdida de ventas durante la campaña y reduces horas de equipo gastadas en incidentes repetidos, guardias y postmortems que no cambian el sistema.

Escalar a tiempo exige entender el tiempo de reacción y el techo efectivo del sistema

La meta no es que escale. Es que escale a tiempo. Lo primero que revisamos con equipos es cuánto tarda una réplica nueva en estar lista de verdad con caché frío y bajo presión. No “ready” en Kubernetes, sino lista para sostener tráfico con latencias aceptables. Si la aplicación tarda minutos en estabilizar y el pico entra en segundos, tu autoscaling es decorativo.

Lo segundo es el techo efectivo. No el maxReplicas, sino el techo compuesto por conexiones DB, threads, colas internas, cuotas, rate limits, límites de terceros y throughput real de cada dependencia. En sistemas críticos el error caro es no poner límites. Si no existen, el sistema intenta aguantarlo todo y se autodestruye.

Un patrón que funciona bien es diseñar presupuestos de latencia por hop y alinearlos con timeouts. Si la experiencia tolera 2 segundos en una ruta, no te puedes permitir un timeout de 10 segundos “por si acaso” hacia un tercero. Ese por si acaso se convierte en deuda de threads, memoria y colas que en pico te mata. La corrección no es solo bajar el timeout, es decidir qué respuesta ofreces cuando ese timeout ocurre, porque eso es una decisión de negocio implementada como arquitectura.

El ROI grande suele estar en datos porque un cambio pequeño puede multiplicar capacidad sin comprar infraestructura

Optimizar queries de alto volumen no es tuning por deporte. Es proteger la ruta crítica del negocio y asegurar que la complejidad es aceptable bajo pico. Si tu coste por request crece con el tráfico, estás en el peor escenario. Pagas más cloud y obtienes peor experiencia, y encima sube el riesgo operativo.

En campañas, datos como inventario visible, precios, disponibilidad, catálogo y promociones suelen beneficiarse más de pre-cálculos y materializaciones que de escalar a ciegas. Dependiendo del contexto, el remedio real puede ser tan “simple” como un índice correcto o tan estructural como particionar por clave adecuada, crear tablas agregadas, o una denormalización selectiva que reduzca joins en la ruta caliente. La idea es mover trabajo desde el momento del pico a un pipeline previo o a un cálculo amortizado.

Lo que suele sorprender es que no necesitas optimizar todo. Necesitas identificar las consultas dominantes por volumen y coste. En producción hemos visto equipos gastar semanas afinando endpoints poco usados mientras la ruta que concentra el 40 % del tráfico tenía una consulta con un plan inestable. La priorización es una decisión de ROI, no de elegancia técnica.

Cache y degradación elegante protegen conversión porque compran estabilidad bajo presión

El cache no es solo performance, es resiliencia. Aumentar cache en páginas de alta demanda solo sirve si el hit rate se mantiene estable durante el pico. La estabilidad se rompe con avalanchas de expiración, invalidaciones masivas y recomputación concurrente. Por eso single-flight por key y estrategias como stale-while-revalidate suelen ser la diferencia entre un pico manejable y un incidente.

La degradación elegante no consiste en “quitar features”. Consiste en decidir qué sacrificas para proteger el flujo de ingresos. Si checkout es crítico, quizás degradar recomendaciones, reviews o búsqueda avanzada es una decisión racional. En producción, una cola transparente con ETA y confirmación suele reducir abandono más que una página que falla de forma intermitente. La consistencia genera confianza. La confianza convierte.

Observabilidad que se puede operar reduce MTTR porque ves el límite antes de cruzarlo

Si no puedes ver el límite acercándose, tu escalabilidad es fe. En picos, la saturación rara vez se siente como CPU alta. Se siente como p95 y p99 subiendo, errores en rutas críticas, colas creciendo y pools agotándose.

Alertar por SLOs y señales de experiencia de usuario reduce ruido y alinea operación con impacto. Y aquí entra una realidad incómoda. En incidentes, el cuello no suele ser falta de talento. Es falta de contexto compartido. Cuando todos improvisan, el MTTR sube y aparecen cambios peligrosos en producción.

Runbooks claros con umbrales, checks y acciones seguras no son burocracia. Son una inversión directa en velocidad y seguridad operativa. Evitan el hero mode que quema a los mejores y deja a la organización dependiente de individuos.

Validación mínima dos semanas antes que reduce riesgo de forma material

Esta validación es deliberadamente corta. Si la ejecutas con rigor, recorta una parte grande del riesgo sin convertir la preparación en un proyecto infinito.

  • Ejecuta pruebas de carga con tráfico 2 a 3 veces el pico esperado y valida el mismo mix de endpoints, ráfagas, caché frío y distribución real de usuarios.
  • Simula degradación de dependencias críticas introduciendo latencia y timeouts y verifica que tu sistema se protege sin cascada, con circuit breakers y límites coherentes.
  • Revisa SLOs, presupuestos de error y umbrales de alerta en rutas de negocio, y asegúrate de que el equipo puede identificar el cuello en minutos, no en media hora.

El matiz importante es que 2 a 3 veces no significa solo más RPS. Significa estresar pools de DB, colas, límites de threads y comportamiento de retries. Si no validas esos límites, estás midiendo el componente equivocado.

La conversión depende más de previsibilidad que de perfección

En campañas la tolerancia al error es baja porque el usuario compara alternativas. Pero no necesitas perfección. Necesitas previsibilidad. Una web lenta e inconsistente destruye confianza. Un flujo consistente, aunque sea con degradación controlada, sostiene intención de compra.

Desde riesgo operativo, la degradación explícita también compra tiempo. Si reduces presión sobre DB y dependencias, el equipo investiga con margen. Eso reduce cambios improvisados, que son la fuente más común de incidentes secundarios durante picos.

Las decisiones que separan plataformas robustas de plataformas sorpresa

La mayoría de caídas ante picos responden a patrones conocidos. Límites mal definidos, datos saturados, cache mal diseñado, dependencias sin protección y pruebas poco realistas.

No hace falta presupuesto infinito. Hace falta foco y rigor sobre los cuellos reales. Eso mejora ROI reduciendo pérdida de ventas y reduciendo horas de equipo consumidas en incidentes, guardias y recuperación. Y aumenta soberanía técnica porque entiendes tu sistema, sabes dónde rompe y decides cómo se comporta cuando se acerca al límite.

Preguntas frecuentes con criterio de producción

¿Cuánto tráfico debo simular?

Como base, 2 a 3 veces tu pico histórico con el mismo mix de rutas. Si has cambiado catálogo, pricing, checkout o promociones, el pico histórico deja de ser un buen predictor. En ese caso, simula por ruta crítica y valida saturaciones por componente, especialmente pools de DB, colas, límites de threads y timeouts.

¿Qué es lo primero que debería revisar?

La base de datos y los límites de conexión. Si tu DB entra en contención o se queda sin conexiones, escalar la capa de aplicación solo empeora el problema. Es el punto débil más frecuente y el que más rápido se convierte en fallo sistémico.

¿Autoscaling es suficiente?

No sin pruebas de carga realistas y límites calibrados. El autoscaling es un mecanismo, no una estrategia. Si dependencias, DB y timeouts no están gobernados, el autoscaling puede acelerar el colapso al añadir presión al cuello de botella.

Dos semanas antes del pico ya deberias tener un no-go explicito

El peor momento para descubrir que no estabas listo es cuando Marketing ya activo la campana. Dos semanas antes del pico, la prioridad ya no es optimizar mas. Es decidir con honestidad que rutas, limites y degradaciones estan listas y cuales obligan a recortar riesgo.

SenalUmbral razonableDecision si falla
Carga con mix real2x o 3x el pico esperado sin degradacion descontroladaCongelar cambios y atacar cuello dominante
DB y cachesPools, locks y hit rate estables bajo presionReducir complejidad y proteger rutas criticas
TercerosTimeouts, retries y circuit breakers probadosAislar dependencia o degradar funcionalidad
ObservabilidadEl equipo identifica el limite en minutosAfinar dashboards, alertas y runbooks antes de seguir
DegradacionCheckout y rutas de ingreso sobreviven sin features accesoriasDefinir modo degradado antes del evento

Tener un no-go explicito no es pesimismo. Es gobierno. Evita entrar en campana con una plataforma que depende de heroics, intuicion o cambios de ultima hora. Cuando este gate existe, la conversacion deja de ser si aguantara o no. Pasa a ser que parte del negocio vas a proteger primero si el sistema se acerca al limite.

Lecturas relacionadas que amplian esta decision

Cuando merece actuar

Si esta decision ya esta afectando disponibilidad, coste o ventanas de cambio, el siguiente paso razonable es revisar arquitectura, limites y plan de operacion antes de anadir mas infraestructura.

Newsletter

Recibe el siguiente análisis técnico antes de que el problema se vuelva caro

Una selección breve sobre cloud, datos, IA y software para equipos que operan sistemas en producción.

Poca frecuencia. Alta señal.

Al suscribirte, aceptas recibir el newsletter técnico de Valendra. Puedes darte de baja en cualquier momento.

Más artículos técnicos