GH GambleHub

Operaciones y Gestión → Prevención de Incidentes

Prevención de incidentes

1) Por qué es necesario

La mejor respuesta al incidente es su ausencia. Para iGaming/Fintech, cada minuto de inactividad: apuestas/depósitos perdidos, multas de proveedores, riesgos de reputación. La prevención del sistema reduce la Tasa de Fallas de Cambio, estabiliza el SLO y libera tiempo de los equipos para desarrollar, en lugar de apagar, incendios.

Objetivos:
  • Minimizar la probabilidad de incidentes en rutas críticas (depósito, apuesta, lanzamiento del juego, retirada).
  • Interceptar las degradaciones antes de golpear el SLO y la cartera.
  • Limite el radio de falla (blast radius) y acelere la recuperación.

2) Principios básicos de prevención

1. SLO-primero y error budget: los cambios no se liberan si se corre el riesgo de derribar el SLO y quemar el presupuesto.
2. Defence in depth: capas de protección: desde esquemas de datos y configuraciones hasta políticas de red y fichflags.
3. Design for failure: rompecabezas, timautas, retraídas con jitter, idempotencia, degradación.
4. Cambios pequeños y reversibles: incrementos pequeños + retroceso rápido (flags feature/canario).
5. Observabilidad por diseño: métricas/registros/tracks para cada paso crítico y comunicación.

3) Mapa de riesgos y rutas críticas

Haz un «mapa del dolor» por dominios: Pagos, Apuestas, Juegos, KYC, Promociones, Jackpots, Contenido.

Para cada ruta, fijamos:
  • Métricas de negocio (conversión, GGR, cheque medio).
  • SLO técnico (latency p95/p99, uptime, tasa de éxito).
  • Dependencias (internas/externas), límites/cuotas.
  • Comportamiento «modo seguro» (que desactivamos/simplificamos).
  • Runbook del propietario.

4) Guardrails (barreras de protección)

Taimauts y breakers: el servicio que llama tiene un timaut más corto que la suma de los internos; el rompedor se abre cuando hay un aumento de errores/latencia.
Aislamiento de Bulkhead: grupos individuales de conexiones/workers en downstream.
Rate limit & backpressure: protección contra avalanchas y tormentas retray.
Fichflags de degradación: «modo mínimo»: respuestas fáciles, réplicas de caché, apagado de los fiches pesados.
Multi-vendedor y failover: PSP/KYC alternativos, cambio de ruta.
Validación de confecciones: esquemas/liners/políticas para cambiar de forma segura los límites y los límites.

5) Gestión de cambios (Change Management)

Pre-release gates: pruebas, seguridad, CDC (consumer-driven contracts), compatibilidad de circuitos.
Lanzamiento canario + autogates: 1% → 10% → 100%; auto-parada en crecimiento p99/error rate/presupuesto de combustión.
Flags de función: retroceso/cambio de comportamiento instantáneo sin deboir.
Release calendar: evitamos las ventanas pico de los deportes/torneos y el mantenimiento en los proveedores.
Cheques post-deploy: auto-smock, comparación de métricas «antes/después» con umbrales.

6) Pruebas como medida preventiva

Unidad/contrato/integración: contratos OpenAPI/AsyncAPI, CDC vs proveedor/moc.
Load & stress: perfiles de tráfico para prime time; pruebas de límites de connects/IOPS/cuotas.
Soak/long-haul: fugas de recursos, aumento de retrasos en el horizonte de horas/días.
Chaos/game-days: caída del bróker/PSP/KYC, ruptura de la región, «proveedor lento».
Disaster Recovery Drills: entrenamiento regular para cambiar de región y recuperar la DB.

7) Detección temprana de degradación

Capacity-alerts: headroom, lags de colas, connects DB, eviction en cachés.
SLO-burn-rate: señal a una velocidad peligrosa de «quema» del presupuesto.
Umbrales adaptativos: patrones de estacionalidad/diurnos para reducir los falsos.
Alertas compuestas: «lag ↑ + HPA at max + open circuit» ⇒ alto riesgo.
Vendor health: cuotas/tiempos de espera/errores para cada proveedor + costo de llamadas.

8) Trabajar con proveedores externos

OLA/SLA ↔ SLO: vincular los acuerdos a nuestros objetivos.
Playbooks Feilover: rutas PSP-X ⇆ PSP-Y, caché de tokens, modos de depósito grace.
Sandbox y contratos: prueba flow antes de cada cambio mayor.
Ventanas de proveedores: anotaciones en dashboards y reglas automáticas de suppress.

9) Datos, confecciones y secretos

Políticas de cambio: revisión de código de dos pares de ojos, validación de esquemas/JSON/YAML.
Secretos: KMS/Secrets Manager, rotación, división por entorno/roles.
Banderas/límites: cambiar a través de la API con auditoría y cancelación instantánea.
Migraciones: «dos pasos» (expand → migrate → contract), compatibilidad con retroceso total.

10) Entrenamiento y preparación de los equipos

Formación on-call: simulaciones de incidentes, Shadow-services, runbook centralizado 'i.
Formatos de comunicación únicos: plantillas de estado/hendover/incidente-update.
Cultura segura: postmortem sin cargos, causas mecanicistas y acciones preventivas.

11) Dashboards de prevención (mínimo)

Risk & Readiness: SLO/presupuesto, headroom por capas, «top de conexiones vulnerables».
Cambio Seguridad: porcentaje de canarios, retrocesos, alertas «post-lanzamiento», CTR de autogates.
Vendor Panel: p95/error/cuotas/costo por proveedor, tiempo de respuesta del vendedor de sapport.
Chaos/DR Readiness: frecuencia de ejercicio, tiempo de cambio de región, éxito de recuperación.
Config/SecOps: cambios de banderas/límites/secretos, anomalías.

12) Ejemplos de alertas preventivas


ALERT SLOBurnRateHigh
IF slo_error_budget_burnrate{name="payments_api"} > 4 FOR 10m
LABELS {severity="critical", team="payments"}

ALERT PostDeployRegression
IF (api_p99_ms{service="bets"} > baseline_1d 1. 3) AND (release_window="canary")
FOR 10m
LABELS {severity="warning", team="bets"}

ALERT ProviderQuotaNearLimit
IF usage_quota_ratio{provider="psp_x"} > 0. 9 FOR 5m
LABELS {severity="warning", team="integrations"}

ALERT QueueLagAtRisk
IF (kafka_consumer_lag{topic="ledger"} > 5e6 AND rate(kafka_consumer_lag[5m]) > 5e4)
AND (hpa_desired == hpa_max)
FOR 10m
LABELS {severity="critical", team="streaming"}

13) Lista de prevención (diario/antes de los picos)

  • Calendario actual de picos (partidos, torneos, campañas, ventanas de proveedores).
  • Headroom por API/DB/caché/colas, preparación de HPA/VPA, calentamiento de cachés.
  • Estado de los proveedores (cuotas, límites, degradación en 24h), Feilover configurado.
  • Las gaitas canarias están incluidas, los flagelos de retroceso están disponibles para los propietarios.
  • Las alertas SLO/Capacity están activas, la suppression está prescrita para los trabajos programados.
  • Runbook 'y actualizado, on-call confirmado, los canales de escalada son trabajadores.

14) Anti-patrones (qué evitar)

«Grandes lanzamientos nocturnos» sin canario ni banderas.
Grupos de subprocesos compartidos en todos los downstreams (bloqueo principal de línea).
Retraídas a operaciones no idempotentes y a taimautas de cuellos de botella.
La ausencia de histéresis en las alertas → el aserrado a lo largo del umbral.
La fe ciega en el SDK de un vendedor sin supervisión y control de los timautas.
«Lo haremos en venta» sin steage/sandbox y CDC.

15) KPI de prevención

Change Failure Rate (objetivo ≤ 10-15% o su objetivo).
Tasa de detección previa al incidente: proporción de incidentes evitados durante la fase de degradación.
Mean Time Between Incidents (MTBI) и MTTR.
Coverage de las defensas: el % de las vías críticas con flagami/breykerami/taymautami/kanareykoy.
Cadencia Chaos/DR: frecuencia y éxito de las enseñanzas.
Vendor readiness: tiempo medio de conmutación por proveedor de respaldo.

16) Inicio rápido (30 días)

Semana 1: mapa de rutas críticas, SLO y propietarios; incluir alertas SLO-burn y alertas capacity.
Semana 2: Gates canarios + fichflags; scripts de chaos básicos (proveedor/cola).
Semana 3: «Change Safety» y «Vendor Panel» dashboards, Fakebooks.
Semana 4: Enseñanza DR (parcial), retrospectiva y plan de hardening 'a para el trimestre.

17) Plantillas (fragmentos)

Política de autogate canario (condicional-YAML):

canary_policy:
guardrails:
- metric: api_p99_ms threshold: 1. 3 baseline_1d window: 10m action: pause_and_rollback
- metric: error_rate threshold: 2 baseline_1d window: 5m action: pause max_step: 10%
step_interval: 15m required_annotations: [release_notes, feature_flags, runbook_link]
Plan de degradación (conjecto):

safe_mode:
payments:
- freeze_heavy_providers
- enable_cached_token_flow
- route_to_psp_y_if(psp_x_error_rate > 5%)
games:
- limit_broadcasts
- reduce_lobby_heavy_widgets bets:
- raise_risk_score_threshold
- cache_odds_snapshot

18) FAQ

P: ¿Qué implementar en primer lugar si hay pocos recursos?
R: SLO-burn-alertas en caminos críticos, gates canarios y fichflags de retroceso; a continuación, un mapa de riesgos y un failover de proveedores.

P: ¿Cómo entender que la prevención «funciona»?
R: La tasa de falla de cambio está disminuyendo, la proporción de incidentes prevenidos está aumentando, el MTTR está cayendo y el ruido de alertas está disminuyendo, el número de paginas «nocturnas» está disminuyendo.

P: ¿Se necesitan ejercicios regulares de chaos?
R: Sí. Sin entrenamiento, el feilover y el DR son casi siempre más largos y dolorosos de lo que parece en el papel.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.