Tecnologia e Infraestrutura → redes CDN e cachê de conteúdo
redes CDN e cachê de conteúdo
1) Porquê CDN e kesh
O CDN (Conteúdo Delivery Network) reduz os RPT e TTFB, descarrega origin e estabiliza as caudas P95/P99. Para iGaming/fintech é:- Primeiro byte rápido para catálogo, assetas, promo, mídia.
- Sustentabilidade de pico (torneios/ivents) sem crescimento explosivo da capacidade origin.
- Economia egress e custo previsível.
- Geo-controle (regulação, licenciamento de conteúdo).
2) Estratégias básicas de cajagem
2. 1 Respostas que podem ser cajadas
Estática: JS/CSS/fontes/ícones - TTL longo (30-365 dias) + arquivo-hash no nome.
Semiárida: catálogos de jogos, banners, configs - TTL de minutos a horas + 'stale-while-revalidate'.
API GET/HEAD: guias, pricing, liderbords - TTL curtos (5-120 segundos) com chave correta.
2. 2 Cabeçalhos
`Cache-Control: public, max-age=600, stale-while-revalidate=300, stale-if-error=600`
'ETag '/' Last-Modificed' para consultas condicional (revalidação).
'Surrogate-Controle '/' CDN-Cachê-Controle' (se o provedor suporta).
Para dados privados: 'Cachê-controle: no-store' (não apenas 'no-cachê').
2. 3 Chave de Cajá (cachê key)
Básico: método + URL + query-parâmetros que influenciam a resposta.
Aditivos: 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), local (' Accept-Language '), região/moeda, se afetar conteúdo.
Evite entrar na chave de cabeçalhos aleatórios (cookies, trace ids).
3) Controle Vary e cookie
'Vary: Aceitt-Encoding, Accept, Aceitt-Language' é o conjunto mínimo necessário.
Cookies de stripping em CDN para caminhos de cachê: removemos tudo, exceto whitelisted (como bandeiras AB).
Transferência de ID de sessão para caminhos/caminhos fora do conteúdo de cachê.
4) Pattern TTL e frescura
Imutável estática: 'Cachê-Controle: público, max-age = 31536000, imutável' + em nome de arquivo.
SWRO/SIE: 'stale-while-revalidate' e 'stale-if-erro' - US-resistência em casos de problemas em origin.
Partioned TTL: lista raiz de jogos - 30-60 segundos; cartão de jogo - 5-10 min; banners - 30 min.
API mix: guias básicos - 5-30 min; moedas/limites - 1-5 min; liderbord ― 2-15 segundos.
5) Tiered caching и origin shield
Tiered/Regional caches: Os pedidos que passaram por edge batem em «shield» regional em vez de origin.
Vantagens: menos MISS por origin, suavização de tempestades, menos egress.
Agrupe os escudos por geo com maior densidade de tráfego (EU, TR, BR, LATAM).
6) Deficiência e aquecimento
Purge by path/prefix/tag: Marcas de formatação são fáceis de limpar (lançamento de catálogo, campanha de promoção).
Soft purge (grace): Marcamos o conteúdo obsoleto, mas entregamos antes que o novo chegue.
Aquecimento (prewarm): cenários de lançamento/pré-torneio: pesquisa de caminhos populares, geração de spright e variações de imagens.
Deficiência canareira: limpa parte, valida métricas/erros, depois expande.
7) Regras e funções Edge (Workers/Functions)
Reiniciar respostas: adicionar cabeçalhos de caju, normalizar 'Vary', stripper cookies.
Geo/ASN Routing: redirets, local/moeda pelo país.
Legenda URL (Signed OUTs/Headers) para mídia/objetos protegidos.
Testes Edge-AB: leves, sem aumento da carga de trabalho sobre origin (somente para estáticos/semistáticos).
Edge-compute: render de widgets leves/personalização, mas não uma via de pagamento quente.
8) Imagens e vídeos
8. 1 Imagens
Conversão automática: WebP/AVIF em 'Accept' cliente;' Vary: Accept'.
Recepção em edge: parâmetros 'w/h/fit/quality'; prepare os presídios (cartão, banner, exaltação).
Spright e otimização SVG, lazy-loading na frente.
8. 2 Vídeo/estrim
HLS/DASH com segmentos curtos (2-4 segundos), playlists sobrepostas.
Proload segmentos mais próximos e 'stale-if-erro'.
Para apostas ao vivo - mantenha segmentos no shield regional para reduzir o TTFB.
9) API via CDN
GET quente: adicione 'Cachê-Controle' e chave correta (local/moeda/região).
Conditional GET: 'ETag '/' If-None-Match' reduz bytes e TTFB.
POST/PUT: Não se acenam; Só é possível ver as respostas POST com regras claras e semânticas idumpotentes (raramente justificadas).
Rate limiting/WAF na borda: reduz as caudas com corte de bots/anomalias.
10) Segurança, acesso e complacência
Gestão WAF/bot: assinaturas, avristas comportamentais, proteção contra scanners de bónus.
Signed OUTs/Headers para downloads de mídia e privados.
mTLS к origin и IP allow-list.
GDPR/PII/PCI: Não armazenar dados sensíveis; API com respostas pessoais - 'no-store'.
Filtros geo/bloqueios na borda para os reguladores de mercado.
11) Rede e protocolos
Inclua HTTP/2/3 em CDN, TLS resumpção e OCSP stapling.
Brotli (br) para formatos de texto, gzip - fallback.
O sintonização TCP/QUIC (do provedor) → menos impacto das perdas, especialmente na rede móvel.
12) Observabilidade e SLO para CDN
Métricas (por edge e shield):- Hit Ratio (overall e prefixados), Origin Offload.
- TTFB P50/P95/P99 por região/ASN.
- Throghput/Errors por código de status (edge/origin).
- Purge latency (tempo de entrega da deficiência).
- Image pdf latency (se usar ressalvas na borda).
- Catálogo de jogos: TTFB P95 ≤ 150 ms, Offload ≥ 85%.
- Mídia (imagens): Hit Ratio ≥ 90%, erros de transformação <0. 1%.
- API GET «guias»: TTFB P95 ≤ 200 ms, Revalidação Hit ≥ 60%.
13) FinOps: custo do cajá
Offload = menos egress com origin → retas $ - valor.
Tiered + shield cortam «tempestades» e Miss carga.
A otimização de imagens (AVIF/WebP/resize) oferece a maior economia de tráfego.
Controle P95 peso de resposta e «caros MISS» (bytes x call x região).
14) Configs e regras (fatias)
14. 1 Cabeçalhos origin (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 Normalização da chave em 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 Signed URL (ideia)
/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path exp ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.
15) Processos de lançamento e operação
Release hooks: purge automático por marcas/prefixados após o pouso.
Lista Prewarm: caminhos top de tráfego/conversão - aqueça com antecedência.
Catálogo da matriz TTL: alinhado com o produto/marketing.
Incidentes: Quando MISS/TTFB cresce, incluímos stale-if-erro, «filmamos» transformações caras em edge antes da estabilização origin.
16) Folha de cheque de implementação
1. Mapa de conteúdo (estática/semistática/API) e matriz TTL.
2. Corretos 'Cachê-Controle', 'ETag/Last-Modificed', 'Vary'.
3. Chave de kesh sem «ruído», cookie stripping, whitelists.
4. Tiered caching + origin shield por região.
5. Purge por marcas/prefixos, soft purge, procedimentos prewarm.
6. Funções Edge: normalização, geo-lógica, Signed OUTs.
7. Otimização de imagens (WebP/AVIF/resize), segmentos HLS para vídeo.
8. Filtros WAF/bot, limitações geo, mTLS a origin.
9. SLO-dashboard: TTFB, Hit Ratio, Offload, erros de transformação.
10. FinOps relatórios: $/GB, caros MISS, regiões líderes de egress.
17) Anti-pattern
«no-cachê» está por todo o lado.
A chave de cajá inclui todos os query/cabeçalhos → Hit Ratio zero.
Cookies dependentes para estática (quebra o kesh inteiro).
Limpar todo o CDN a cada lançamento.
Transformações sincronizadas longas em edge durante os picos.
A ausência de 'stale-while-revalidate '/' stale-if-erro' é uma degradação acentuada do UX.
Cajulação de dados pessoais/respostas sem 'no-store'.
18) Contexto iGaming/fintech: notas práticas
Torneios/Ivents: TTL curtos para liderbords (2-10 segundos) + SWR; prewarm cartões de jogos e banners.
Licenciamento geo: edge-bloqueio/redirectos por país, moeda/local em chave de cajá.
Promo e cupons: armazenando bandeiros/condições, mas não limites pessoais.
Jogos responsáveis: páginas de política/limite - semiárido com SWR; dados pessoais - apenas 'no-store'.
PSP/KYC webhooks: Não por CDN, ou edge-pass-through sem caju e com tempo rígido.
Resultado
Uma estratégia de CDN forte é o cabeçalho correto e chave de kesha, tiered/shield para redução de MISS, função edge para normalização e proteção, deficiência/aquecimento para lançamentos rápidos e observabilidade com SLO e FinOps. Respeitando esses princípios, você terá um perímetro rápido e econômico que aguenta os picos e tornará o TTFB previsível para usuários e parceiros.