Tecnología e Infraestructura → redes CDN y almacenamiento en caché de contenido
Redes CDN y almacenamiento en caché de contenido
1) Por qué CDN y caché
El CDN (Content Delivery Network) reduce el RTT y el TTFB, descarga origin y estabiliza las colas de P95/P99. Para iGaming/fintech, esto es:- Primer byte rápido para el directorio, assets, promo, medios.
- Resistencia máxima (torneos/eventos) sin crecimiento explosivo de la capacidad de origen.
- Ahorro de egresos y costo predecible.
- Control geo (regulación, licencias de contenido).
2) Estrategias básicas de caché
2. 1 Respuestas que se pueden cachear
Estática: JS/CSS/fuentes/iconos - TTL largos (30-365 días) + file-hash en el nombre.
Semi-estática: catálogos de juegos, banners, confites - TTL de minutos a horas + 'stale-while-revalidate'.
API GET/HEAD: guías, prising, leadboards - TTL corto (5-120 segundos) con la clave correcta.
2. 2 Títulos
`Cache-Control: public, max-age=600, stale-while-revalidate=300, stale-if-error=600`
'ETag '/' Last-Modified' para consultas condicionales (revalidation).
'Surrogate-Control '/' CDN-Cache-Control' (si el proveedor es compatible).
Para datos privados: 'Cache-Control: no-store' (no sólo 'no-cache').
2. 3 Clave de caché (cache key)
Basic: método + ruta de acceso de URL + parámetros de query que afectan a la respuesta.
Aditivos: 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), local (' Accept-Language '), región/moneda si afecta al contenido.
Evite entrar en la clave de encabezados aleatorios (cookies, trace ids).
3) Gestión de Vary y cookies
'Vary: Accept-Encoding, Accept, Accept-Language' es el conjunto mínimo necesario.
Stripping de cookies en CDN para rutas en caché: limpie todo menos whitelisted (por ejemplo, banderas AB).
Transfiera identificadores de sesión a subdominios/rutas fuera del contenido en caché.
4) Patrones TTL y frescura
Estática immutable: 'Cache-Control: public, max-age = 31536000, versión immutable' + en el nombre del archivo.
SWRO/SIE: 'stale-while-revalidate' y 'stale-if-error' - Resistencia UX en problemas en origin.
Partitioned TTL: lista raíz de juegos - 30-60 segundos; tarjeta de juego - 5-10 min; pancartas - 30 minutos.
API mezcla: referencias básicas - 5-30 min; Monedas/límites - 1-5 minas; El tablero de liderazgo ― 2-15 segundos.
5) Tiered caching и origin shield
Tered/Regional caches: las solicitudes que han pasado por el edge golpean el «shield» regional en lugar del origin.
Ventajas: menos MISS en origin, suavizar «tormentas», más barato que el egreso.
Los escudos se agrupan por geo con la mayor densidad de tráfico (UE, TR, BR, LATAM).
6) Discapacidad y calentamiento
Purge by path/prefix/tag: las etiquetas son convenientes para la limpieza por lotes (lanzamiento de catálogo, campaña promocional).
Soft purge (grace): marcamos el contenido como obsoleto, pero lo damos antes de que llegue el nuevo.
Calentamiento (prewarm): scripts en el lanzamiento/antes del torneo: sondeo de rutas populares, generación de sprites y variaciones de imágenes.
Discapacidad canaria: limpia en parte, valida métricas/errores, luego expande.
7) Edge-reglas y funciones (Workers/Functions)
Sobrescribir las respuestas: agregar títulos de caché, normalizar 'Vary', stripping cookies.
Geo/ASN-routing: redirecciones, local/moneda por país.
Firma URL (Signed URLs/Headers) para medios/objetos protegidos.
Pruebas Edge-AB: ligeras, sin aumento de la carga de origin (solo para estáticos/semi-estáticos).
Edge-compute: render widgets ligeros/personalización, pero no una ruta de pago caliente.
8) Imágenes y videos
8. 1 Imágenes
Conversión automática: WebP/AVIF con 'Accept' del cliente;' Vary: Accept'.
Recuperación en edge: parámetros 'w/h/fit/quality'; preparar presets (tarjeta, banner, preview).
Sprites y optimización SVG, lazy-loading en el frente.
8. 2 Video/Stream
HLS/DASH con segmentos cortos (2-4 segundos), listas de reproducción superpuestas.
Preload de los segmentos más cercanos y 'stale-if-error'.
Para apuestas en vivo: mantenga los segmentos en el shield regional para reducir el TTFB.
9) API a través de CDN
Caché GET: agregue 'Cache-Control' y la clave correcta (local/moneda/región).
Conditional GET: 'ETag '/' If-None-Match' reduce bytes y TTFB.
POST/PUT: no caché; sólo se pueden cachear las respuestas POST con reglas explícitas y semántica idempotente (rara vez justificada).
Rate limiting/WAF en el borde: reduce las colas cortando bots/anomalías.
10) Seguridad, acceso y cumplimiento
WAF/bot management: firmas, heurísticas de comportamiento, protección contra escáneres de bonificación.
Signed URLs/Headers para descargas privadas y multimedia.
mTLS к origin и IP allow-list.
GDPR/PII/PCI: no cachear datos sensibles; API con respuestas personales - 'no-store'.
Geo-filtros/bloqueos en el borde según los requisitos de los reguladores del mercado.
11) Red y protocolos
Habilite la HTTP/2/3 en CDN, TLS y OCSP stapling.
Brotli (br) para formatos de texto, gzip - fallback.
La afinación TCP/QUIC (del proveedor) → menos impacto de pérdida, especialmente en la red móvil.
12) Observabilidad y SLO para CDN
Métricas (por edge y shield):- Hit Ratio (overall y por prefijos), Origin Offload.
- TTFB P50/P95/P99 por región/ASN.
- Throughput/Errors por códigos de estado (edge/origin).
- Purge latency (tiempo de entrega de la discapacidad).
- Imagen de transformación latencia (si se utiliza el resising en el borde).
- Catálogo de juegos: TTFB P95 ≤ 150 ms, Offload ≥ 85%.
- Media (imágenes): Hit Ratio ≥ 90%, errores de transformación <0. 1%.
- API GET «guías»: TTFB P95 ≤ 200 ms, Revalidation Hit ≥ 60%.
13) FinOps: costo del kash
Offload = menos egresos con origin → directos $ -garantías.
Tiered + shield corta «tormentas» y carga MISS.
La optimización de imágenes (AVIF/WebP/resize) proporciona el mayor ahorro de tráfico.
Controle los P95 de peso de respuesta y los «MISS caros» (bytes × cole-in × región).
14) Confecciones y reglas (fragmentos)
14. 1 Títulos de origen (Nginx)
nginx статика с версионированием location ~ \.(css js woff2)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
полустатика каталога location /catalog/ {
add_header Cache-Control "public, max-age=300, stale-while-revalidate=600, stale-if-error=600";
add_header Vary "Accept, Accept-Language";
}
14. 2 Normalización de la llave en edge (pseudo)
js addRule((req) => {
// очищаем шум req.cookies.clearExcept(['ab', 'locale']);
// ключ = method+path+критичные query key = `${req.method}:${req.path}?lang=${q.lang}¤cy=${q.cur}`;
req.setCacheKey(key);
req.setVary(['Accept', 'Accept-Encoding', 'Accept-Language']);
});
14. 3 URL signada (idea)
/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path exp ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.
15) Procesos de lanzamiento y operación
Release hooks: purge automático por las etiquetas/prefijos después de la deploy.
Lista Prewarm: Las mejores rutas de tráfico/conversión son calentar por adelantado.
Catálogo de matriz TTL: alineado con el producto/marketing.
Incidentes: en el crecimiento de MISS/TTFB - incluir stale-if-error, «eliminar» costosas transformaciones en edge antes de la estabilización de origin.
16) Lista de verificación de implementación
1. Mapa de contenido (estática/semiestática/API) y matriz TTL.
2. Correctos 'Cache-Control', 'ETag/Last-Modified', 'Vary'.
3. Kash clave sin «ruido», stripping de cookies, whitelists.
4. Tered caching + origin shield por región.
5. Purge por etiquetas/prefijos, soft purge, prewarm-rutinas.
6. Funciones edge: normalización, lógica geo, URLs señalizadas.
7. Optimización de imágenes (WebP/AVIF/resize), segmentos HLS para vídeo.
8. Filtros WAF/bot, restricciones geo, mTLS a origin.
9. SLO-dashboards: TTFB, Hit Ratio, Offload, errores de transformación.
10. FinOps-reportes: $/GB, queridos MISS, regiones líderes en egresos.
17) Anti-patrones
'no-cache' en todas partes «por si acaso».
La clave de caché incluye todos los títulos de query/ → cero Hit Ratio.
Respuestas dependientes de cookies para estática (rompe el caché en su totalidad).
Limpie todo el CDN cada vez que salga.
Largas transformaciones sincrónicas en el edge durante los picos.
La ausencia de 'stale-while-revalidate '/' stale-if-error' son degradaciones bruscas de UX.
Almacenamiento en caché de datos/respuestas personales sin 'no-store'.
18) Contexto de iGaming/Fintech: notas prácticas
Torneos/eventos: TTL cortas para el leadboard (2-10 segundos) + SWR; prewarm tarjetas de juegos y pancartas.
Geo-licenciamiento: edge-blocks/redirecciones por país, moneda/local en clave de caché.
Promociones y cupones: almacenamos en caché banners/condiciones, pero no límites personales.
Juegos responsables: páginas de política/límites - semi-estática con SWR; datos personales - sólo 'no-store'.
PSP/KYC webhooks: no a través de CDN, o edge-pass-through sin kash y con tiempos de espera duros.
Resultado
Una estrategia de CDN fuerte son los títulos correctos y clave de caché, tiered/shield para reducir MISS, funciones edge para normalizar y proteger, discapacidad/calentamiento para liberaciones rápidas y observabilidad con SLO y FinOps. Respetando estos principios, obtendrá un perímetro rápido y económico que resistirá los picos y hará que TTFB sea predecible para usuarios y socios.