Aspectos esenciales de SRE: Qué esperar de la ingeniería de confiabilidad del sitio

blog-SRE.jpg

En los últimos 20 años, la mayoría de las compañías líderes han adoptado la computación en el cloud y los sistemas distribuidos para desarrollar sus aplicaciones. Una consecuencia no deseada: las operaciones tradicionales de IT (ITOps) suelen tener dificultades para manejar las complejidades del aumento de las cargas de trabajo y las tecnologías cloud. 

A medida que los sistemas distribuidos escalan, mantener las operaciones y el desarrollo separados lleva, en última instancia, al estancamiento. Es posible que los desarrolladores quieran lanzar nuevas aplicaciones o actualizaciones, mientras que el equipo de operaciones, ya abrumado por controlar la infraestructura existente, podría rechazar cualquier riesgo para la infraestructura.

La ingeniería de confiabilidad del sitio (SRE) es una disciplina que ofrece un enfoque más matizado al combinar los principios de la ingeniería de software con prácticas operativas que garantizan la confiabilidad del servicio y el rendimiento óptimo a escala. Las personas que desempeñan este rol son ingenieros de confiabilidad del sitio (SRE), simplificando y automatizando las tareas que el equipo de operaciones realizaría manualmente. Menos tiempo dedicado al trabajo tedioso y repetitivo abre la puerta a la innovación y al crecimiento empresarial.

La ingeniería de confiabilidad del sitio se ha convertido en un componente esencial de una organización moderna. Los beneficios incluyen despedirse de la resolución reactiva de problemas y dar la bienvenida al rendimiento predecible, diseño proactivo del sistema, escalabilidad mejorada, interrupciones del servicio minimizadas y nuevas oportunidades de mejora. 

¿Quieres saber más sobre el rol de SRE y el mundo de la ingeniería de confiabilidad del sitio? Empecemos por lo básico.

¿Qué es la ingeniería de confiabilidad del sitio?

La ingeniería de confiabilidad del sitio es la práctica de incorporar herramientas y principios de ingeniería de software en las operaciones de IT. Los SRE crean y mantienen infraestructuras y servicios confiables, resilientes, eficientes y de alta escalabilidad. Los SRE mejoran la confiabilidad de los sistemas de alta escalabilidad. Construyen sistemas que son resilientes por diseño y utilizan software y automatización para gestionar una infraestructura en constante crecimiento, lo cual es una práctica mucho más sostenible que gestionarla manualmente.

Los ingenieros de confiabilidad del sitio son los responsables de gestionar y automatizar las operaciones de IT. Con su experiencia en ingeniería de software, garantizan que los sistemas se mantengan resistentes y disponibles para solucionar automáticamente cualquier problema. Este rol supervisa la entrega y el despliegue de nuevas aplicaciones, lo que previene posibles interrupciones y cortes.

Historia de la ingeniería de confiabilidad del sitio

Benjamin Treynor Sloss, vicepresidente de Ingeniería de Google, acuñó el término “ingeniería de confiabilidad del sitio” en 2003, y dijo: “SRE es lo que sucede cuando le pides a un ingeniero de software que diseñe un equipo de operaciones”. Y eso es lo que hizo.1

Como nuevo empleado en Google, le asignaron encontrar una solución de ingeniería para gestionar operaciones en rápida expansión y una infraestructura masiva y distribuida. Al ritmo que crecía la infraestructura de la compañía, sería imposible contratar la cantidad necesaria de ingenieros para gestionar los nuevos servicios manualmente y, a la vez, innovar al mismo ritmo. En cambio, el equipo de Treynor equilibró la innovación con la confiabilidad del sistema, y fomentó una cultura de aprendizaje y mejora continua.  

En poco tiempo, el creciente equipo de SRE de Google se centró en implementar nuevas características en el entorno de producción mientras mantenía su estabilidad y confiabilidad. En pocos años, más empresas se enfrentaron al mismo problema que Google. Necesitaban gestionar infraestructuras masivas y distribuidas mientras mantenían la disponibilidad y confiabilidad de los servicios. Pronto, la práctica de la ingeniería de confiabilidad del sitio se extendió más allá de Google y se ha vuelto clave para las operaciones modernas de IT.

El papel de los SRE en las infraestructuras modernas de IT

En el mundo digital actual, las empresas de todos los tamaños han llegado a confiar en sistemas altamente disponibles, escalables y resilientes. Una interrupción, ya sea en un sitio web o en una app móvil, puede provocar pérdidas financieras, una mala experiencia del cliente e ineficiencias operativas. Es por eso que los SRE desempeñan un papel esencial en cualquier empresa. 

Los SRE facilitan mantenerse al día con tu competencia. Pueden resolver problemas de disponibilidad en minutos (en lugar de días) y asegurar tiempos de carga de página rápidos, sin importar el número de usuarios. 

En las empresas, los SRE realizan las mismas tareas a una escala diferente. Automatizan la confiabilidad, optimizan el rendimiento y previenen fallas del sistema mediante el monitoreo proactivo y la gestión de incidentes. Al fomentar la colaboración entre los equipos de desarrollo y operaciones, los SRE crean sistemas fiables y eficientes.

Principios centrales de la ingeniería de confiabilidad del sitio

En su núcleo, la ingeniería de confiabilidad del sitio trata los problemas operativos en producción con un enfoque de desarrollo de software. Otros principios fundamentales incluyen aceptar el riesgo, usar la automatización y establecer objetivos de nivel de servicio (SLO) e indicadores de nivel de servicio (SLI).

Aceptar el riesgo

Un SRE reconoce que ningún sistema puede funcionar perfectamente. Se esperan fallos e interrupciones como parte del proceso de innovación. En lugar de tratar de evitar el fracaso, los SRE se centran en comprender un nivel de riesgo aceptable.

Asumir riesgos consiste en identificar el punto de equilibrio entre mejorar la confiabilidad, desplegar nuevo código y gestionar el posible impacto en los usuarios. El tiempo, la energía u otros recursos que se necesitan para mejorar la confiabilidad de un servicio son el riesgo aceptable. El resto es el exceso. ¿Pero cuánto riesgo es aceptable? ¿Y en qué punto del proceso empezará a degradarse la experiencia del usuario? 

Este principio central de SRE se basa en cuatro factores:

  1. Un nivel aceptable de confiabilidad para los usuarios (determinado por la configuración de SLO y SLI)

  2. Costo de las mejoras de confiabilidad (incluida la automatización y las herramientas)

  3. Riesgo de no mejorar 

  4. Costo frente a riesgo (determinado a través de presupuestos de error)

A menudo, la clave para aceptar el riesgo es una perspectiva cultural. Los SRE trabajan en una cultura no punitiva. Esto implica aprender de los fallos e implementar medidas preventivas para mejorar continuamente la fiabilidad del sistema y el rendimiento de las aplicaciones.

Presupuestos de error
Un presupuesto de error es una métrica clara para comprender y gestionar el riesgo. Es la cantidad de tiempo de inactividad (o el número de errores) que un servicio puede experimentar dentro de un tiempo determinado. 

Una cantidad permitida de falta de confiabilidad del sistema (también conocida como presupuesto de errores) ayuda a equilibrar la innovación y la confiabilidad. Se alienta a los ingenieros a tomar riesgos, como acelerar los despliegues y lanzar nuevas características, porque tienen un presupuesto de errores. Una vez que se alcanza este umbral, los ingenieros estabilizan el sistema, lo que mejora la confiabilidad.

Los equipos de SRE calculan un presupuesto de errores determinando el nivel aceptable de errores (o tiempo de inactividad) en función del SLO. En otras palabras, es el margen de error permitido por un SLO.

Establecimiento de objetivos (SLO) e indicadores de nivel de servicio (SLI)

Los objetivos de nivel de servicio, o SLO, son los valores objetivo para el rendimiento durante un cierto período. Por diseño, tanto los equipos de ingeniería como las partes interesadas del negocio deben comprender estos objetivos para establecer expectativas claras que guíen la toma de decisiones. 

Los indicadores de nivel de servicio, o SLI, miden el rendimiento del servicio. Por lo general, los SLI representan las prioridades del usuario, como la latencia del servicio, la disponibilidad, el rendimiento, las tasas de error y otros. 

Ni los SLO ni los SLI son estáticos. Evolucionan con el tiempo y requieren de una revisión y mejora periódica.

Desarrollar la automatización y las herramientas

Por último, la automatización. Los SRE se esfuerzan por reemplazar las tareas manuales y repetitivas con la automatización. Reducir el trabajo significa mejorar la confiabilidad del sistema e innovar de manera más rápida y eficiente.

Algunos equipos de SRE dedican hasta la mitad de su tiempo a desarrollar herramientas de automatización para el despliegue, la respuesta a incidentes y las pruebas. Con el tiempo, las capacidades avanzadas de automatización ayudan a disminuir el costo de escalado mientras garantizan la confiabilidad del servicio y el rendimiento óptimo.

Prácticas clave en la ingeniería de confiabilidad del sitio

Al operar servicios, los equipos de SRE se enfocan en actividades diarias clave, como el monitoreo y la observabilidad, la gestión de incidentes, la planificación de capacidad y la gestión del cambio.

Monitoreo y observabilidad

El monitoreo y la observabilidad del sistema son fundamentales para los SRE. Proporcionan verdadera visibilidad sobre si los servicios funcionan, qué tan bien lo hacen, dónde están los problemas, etc. 

El monitoreo ayuda a los ingenieros de confiabilidad del sitio a detectar y resolver los problemas rápidamente.
La observabilidad proporciona información sobre el rendimiento del sistema en tiempo real e históricamente para abordar lo desconocido. Las trazas, los logs y las métricas son las principales señales de observabilidad.

4 señales clave de la ingeniería de confiabilidad del sitio

Las cuatro señales doradas de la ingeniería de confiabilidad del sitio son la latencia, el tráfico, los errores y la saturación. Estas métricas son fundamentales para la confiabilidad de la aplicación, que es la salud y el rendimiento de un servicio en un sistema distribuido. 

  • La latencia es el tiempo que tarda un sistema en responder a una solicitud (ya sea con éxito o con un error). La alta latencia indica problemas de rendimiento que requieren atención inmediata por parte de los SRE.

  • El tráfico mide la demanda en el sistema. Dependiendo del sistema, podría ser el número de transacciones por segundo o solicitudes HTTP por segundo. Los SRE utilizan el tráfico para determinar si la experiencia del usuario se está degradando o no.

  • Los errores son la tasa de solicitudes que fallan. Pueden fallar explícitamente (como HTTP 500s), implícitamente (por ejemplo, HTTP 200 pero con errores de contenido) o por política (por ejemplo, cualquier solicitud que tarde más de un segundo en fallar). Dependiendo del sistema, los SRE pueden priorizar un tipo de error sobre los demás y abordar problemas recurrentes.

  • La saturación indica la capacidad total del sistema o qué tan “lleno” está el servicio. Se puede medir de varias maneras, dependiendo de los recursos más restringidos o de la carga restante que un sistema pueda manejar.

Las cuatro señales de oro ayudan a los SRE a centrarse en la planificación de la capacidad, mejorar la confiabilidad del sistema con el tiempo, responder y gestionar incidentes, y encontrar la causa raíz de un problema


Aun así, las cuatro señales de oro por sí solas no harán que los sistemas distribuidos complejos sean completamente confiables. Ahí es donde entra en juego el trazado distribuido. Pone todos los números de rendimiento en contexto.

Gestión de incidentes

Como mencionamos anteriormente, cuando se trata de SRE, los incidentes y las interrupciones son inevitables. Sin embargo, cada incidente requiere de una respuesta. Un plan eficaz de respuesta a incidentes incluye procedimientos de clasificación, protocolos de comunicación claros y rutas de escalamiento.

Quizás igual de importantes son los análisis postmortem. Esta práctica constructiva es una experiencia de aprendizaje, en lugar de una oportunidad para señalar culpables. Los SRE deben realizar un seguimiento de cada incidente, descubrir su causa raíz y trabajar con el equipo de desarrollo para corregir el código o crear herramientas (si es posible) para evitar que se repitan. 

Profundiza más en la gestión de incidentes.

Planificación de capacidad

La planificación de la capacidad asegura la confiabilidad del servicio hoy y mañana. Protege contra el sobreaprovisionamiento y el subaprovisionamiento. 

Los equipos de SRE prevén la demanda analizando patrones de uso históricos y prediciendo las necesidades futuras de recursos. Identifican ineficiencias, optimizan y reasignan recursos basándose en información en tiempo real, y actualizan periódicamente estos planes según los datos cambiantes. 

Mediante la planificación de capacidad, los ingenieros de confiabilidad del sitio garantizan que los sistemas puedan manejar el crecimiento y los picos de demanda.

Gestión de cambios

Los cambios suelen conducir a interrupciones, de las que incluso las operaciones de IT tradicionales pueden dar fe. Sin embargo, en lugar de temer interrupciones y, por lo tanto, temer cambios, los SRE adoptan el cambio con un conjunto de tres mejores prácticas:

  • Los despliegues progresivos y controlados minimizan el impacto de los posibles problemas y permiten una detección temprana.

  • El monitoreo asegura que los SRE puedan detectar problemas con precisión en tiempo real.

  • Un plan de reversión garantiza un procedimiento seguro y rápido para revertir los cambios si surgen problemas.  

Estas tres prácticas deben automatizarse si es posible.

Solución de observabilidad de pila completa para SREs con Elasticsearch

Elastic Observability proporciona una solución unificada para recopilar, monitorear y analizar métricas de observabilidad en toda tu pila tecnológica. Con Elastic Observability, puedes recopilar, almacenar y visualizar métricas de observabilidad de cualquier fuente y acelerar la resolución de problemas con Search AI Platform de Elastic. 


Combina la búsqueda conversacional y la AI agéntica con Elastic Observability para obtener una experiencia de chat sensible al contexto que se extienda para incluir tus datos y runbooks propios.
Elastic AI Assistant puede ayudar a los SRE a interpretar mensajes de logs y errores, optimizar código, escribir reportes e, incluso, identificar y ejecutar un runbook. Acelera la resolución de problemas, fomenta la colaboración y desbloquea el conocimiento para capacitar a todos los usuarios y garantizar la confiabilidad.

Más información sobre la observabilidad con Elastic.

Fuentes1. Google, “Google SRE Book”, 2017.

El lanzamiento y el momento de cualquier característica o funcionalidad descrita en esta publicación quedan a exclusivo criterio de Elastic. Es posible que cualquier característica o funcionalidad que no esté disponible en este momento no se lance a tiempo o no se lance en absoluto.