Disciplina que aplica principios de ingeniería de software a operaciones de infraestructura, enfocándose en crear sistemas escalables y altamente confiables.
Site Reliability Engineering (SRE) es la disciplina creada por Google que aplica principios de ingeniería de software a la operación de sistemas. El objetivo: crear sistemas escalables y confiables mediante automatización, no trabajo manual.
Si tu SLO es 99.9%, tienes 0.1% de error budget (~43 min/mes). Mientras tengas budget:
Si se agota:
| SLO | Error budget/mes | Error budget/año | Perfil típico |
|---|---|---|---|
| 99% | 7.3 horas | 3.65 días | Herramientas internas, batch jobs |
| 99.9% | 43.8 minutos | 8.77 horas | APIs de producción, servicios web |
| 99.95% | 21.9 minutos | 4.38 horas | Servicios críticos de negocio |
| 99.99% | 4.38 minutos | 52.6 minutos | Infraestructura de pagos, auth |
SRE aplica principios de ingeniería de software a las operaciones. En lugar de procesos manuales y heroísmo, define SLOs medibles, automatiza la respuesta a incidentes y trata la confiabilidad como una feature que se diseña, no como algo que simplemente ocurre.
Cultura y conjunto de prácticas que unifican desarrollo (Dev) y operaciones (Ops) para entregar software con mayor velocidad, calidad y confiabilidad. No es un rol — es una forma de trabajar.
Capacidad de entender el estado interno de un sistema a partir de sus outputs externos: logs, métricas y traces, permitiendo diagnosticar problemas sin acceso directo al sistema.
Framework para definir, medir y comunicar la confiabilidad de servicios mediante objetivos (SLOs), indicadores (SLIs) y acuerdos (SLAs) de nivel de servicio.
Recolección y visualización de mediciones numéricas del sistema en el tiempo para entender rendimiento, detectar anomalías y tomar decisiones basadas en datos.
Procesos y prácticas para detectar, responder, resolver y aprender de incidentes de producción de forma estructurada y efectiva.
Disciplina de experimentar en sistemas de producción para descubrir debilidades antes de que causen incidentes, inyectando fallos controlados.
Prácticas para configurar alertas efectivas que notifiquen problemas reales sin generar fatiga por exceso de notificaciones.