¿Qué es la ingeniería de fiabilidad del sitio (SRE)?

Vista aérea de un hombre trabajando en un ordenador

Autores

Camilo Quiroz-Vázquez

IBM Staff Writer

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

¿Qué es la ingeniería de fiabilidad del sitio (SRE)?

La ingeniería de fiabilidad del sitio (SRE) es una práctica de ingeniería de software que combina DevOps y operaciones de TI tradicionales para resolver problemas de clientes, automatizar las tareas de operaciones, acelerar la entrega de software y minimizar el riesgo de TI.

La SRE admite la resiliencia, la redundancia y la fiabilidad en el ciclo de DevOps y se ocupa de la implementación diaria de programas de software. Los ingenieros de fiabilidad del sitio generalmente siguen la regla del cincuenta por ciento: dedican la mitad de su tiempo a resolver los problemas de los clientes, como administrar las escaladas y responder a incidentes, y la otra mitad a automatizar las operaciones de TI. Estas operaciones incluyen la gestión del sistema de producción, la gestión del cambio, la respuesta a incidentes y la respuesta a emergencias.

Los equipos de SRE cierran la brecha entre la forma en que los desarrolladores de software quieren que funcionen los programas y la forma en que funcionan en situaciones del mundo real. Los ingenieros de fiabilidad del sitio trabajan directamente con los clientes para solucionar sus problemas y recopilar datos sobre la experiencia del usuario. Los equipos de SRE transmiten estos datos a los equipos de desarrollo, proporcionándoles información más detallada sobre el rendimiento del software y las actualizaciones necesarias.

Los equipos de SRE entienden que los fallos son inevitables. Su trabajo consiste tanto en identificar (a través de procesos como el análisis de causa raíz) la causa de los problemas inmediatos como en utilizar los datos de supervisión y la información de registro para predecir posibles fallos futuros. A continuación, configuran automatizaciones para resolver estos problemas, creando resiliencia y redundancia en el sistema.

Esta supervisión automatizada de los sistemas de software a gran escala reduce la necesidad de que los administradores del sistema completen manualmente las tareas de operaciones de TI. Eliminar las funciones manuales ayuda a los equipos de TI a ahorrar tiempo, ejecutar operaciones con mayor precisión y centrarse en mantener el rendimiento de las aplicaciones.

¿Cómo funciona la ingeniería de fiabilidad del sitio?

Un ingeniero de fiabilidad del sitio es un puesto técnico que requiere experiencia tanto en desarrollo de software como en operaciones de TI. Comprender estas posiciones permite a los equipos de SRE cumplir su función de apoyo al ciclo de vida del desarrollo de software. La SRE se basa en una estrategia de resiliencia a través de la automatización coherente de los procesos.

Tradicionalmente, las prácticas de ingeniería de fiabilidad del sitio se centraban en realizar operaciones de TI y tareas de administración de sistemas. Estas tareas incluyen el análisis de registros, el ajuste del rendimiento, la aplicación de parches, la prueba de entornos de producción, la gestión de incidentes y la realización de autopsias. Inicialmente, estas tareas se realizaban manualmente, lo que consumía mucho tiempo y era propenso a errores humanos. La modernización de la ingeniería de fiabilidad del sitio implica la automatización de estas tareas manuales.

La supervisión y la información de registro desempeñan un papel clave en la SRE. Los equipos de SRE utilizan herramientas de monitorización para rastrear lo que está sucediendo en los sistemas de software en tiempo real. La supervisión permite solucionar problemas técnicos inmediatos y ayuda a los equipos a anticiparse a futuros problemas y resolverlos antes de que ocurran.

Los registros sirven como archivos que pueden analizarse para obtener conocimiento sobre cómo funcionan los sistemas y mejorar la observabilidad del sistema. La información de registro crea una hoja de ruta que ayuda a los equipos de SRE a comprender la serie de eventos que causaron un error imprevisto. Los ingenieros pueden automatizar la corrección del error y evitar que vuelva a ocurrir. Tanto la monitorización como la información de registro ayudan a los ingenieros a identificar los puntos de fallo y a resolver los problemas de forma programada mediante la automatización, de modo que no sea necesario solucionarlos manualmente.

Los equipos de SRE también buscan las deficiencias de los sistemas mediante un proceso llamado ingeniería del caos. La ingeniería del caos es una estrategia que los ingenieros de fiabilidad de las instalaciones implementan para provocar fallos intencionados en los entornos de producción y preproducción. El propósito de la ingeniería del caos es comprender el impacto que los fallos de producción tienen en los sistemas de software y desarrollar planes más sólidos para mitigar los fallos en el futuro.

La SRE también se centra en la planificación de capacidad, un proceso que determina los recursos que se necesitan para ejecutar funciones empresariales esenciales, escalar esas funciones empresariales y desarrollar nuevas aplicaciones y características. Además, los equipos de SRE establecen métricas que se utilizan para evaluar la entrega de actualizaciones y la implementación de nuevas característica.

Vista aérea de autopista

Mantenga su cabeza en la nube

Reciba el boletín semanal Think para obtener orientación de expertos sobre cómo optimizar la configuración multinube en la era de la IA.

Métricas de ingeniería de fiabilidad del sitio

Los ingenieros de fiabilidad del sitio utilizan diversas métricas para ayudar a rastrear la consistencia de la prestación del servicio y la fiabilidad de los sistemas de software, que incluyen:

Acuerdos de nivel de servicio (SLA)

Los SLA establecen los términos y condiciones entre un proveedor de servicios y un cliente. Estos acuerdos dictan el nivel de rendimiento, los indicadores acordados para medirlo y las repercusiones por no prestar los servicios. Un servicio común que se describe en un SLA es el tiempo de actividad, o la cantidad de tiempo durante el cual un servicio está disponible.

Presupuestos de errores

El presupuesto de errores es una herramienta que los equipos de SRE utilizan para conciliar automáticamente la fiabilidad del servicio de una empresa con su ritmo de desarrollo y la innovación de software. Los presupuestos de errores establecen un nivel de riesgo de error acorde con los acuerdos de nivel de servicio.

Un objetivo de tiempo de actividad de 99,999 %, conocido como "disponibilidad de cinco nueves", es un umbral común de SLA. Esto significa que el presupuesto mensual de errores, la cantidad total de tiempo de inactividad permitida sin consecuencias contractuales para un mes concreto, es de unos 4 minutos y 23 segundos. Si un equipo de desarrollo quiere implementar nuevas características o mejoras en un sistema, éste no debe superar el presupuesto para errores.

Los presupuestos de errores ayudan a los equipos de desarrollo y de operaciones a mejorar la estabilidad y el rendimiento de los servicios. También ayudan a tomar decisiones basadas en datos sobre la implementación de nuevas características o aplicaciones y a maximizar la innovación asumiendo riesgos dentro de límites aceptables.

Objetivos de nivel de servicio (SLO)

Los equipos de SRE también ayudan a establecer objetivos de nivel de servicio (SLO), un objetivo de rendimiento acordado para un servicio en particular durante un periodo determinado. Los SLO definen el estado esperado de los servicios y ayudan a los stakeholders a gestionar el estado de servicios específicos y cumplir los SLA.

Indicadores de nivel de servicio (SLI)

Los SLO se miden mediante indicadores de nivel de servicio (SLI). Los SLI son medidas cuantitativas que se presentan como porcentajes, promedios o tasas. Incluyen la medición real de servicios como el tiempo de actividad, la latencia, el rendimiento y las tasas de error.

IBM DevOps

¿Qué es DevOps?

Andrea Crawford explica qué es DevOps, su valor y cómo las prácticas y herramientas de DevOps ayudan a desarrollar las aplicaciones a lo largo de todo el proceso de entrega de software, desde la ideación hasta la producción. El plan de estudios, dirigido por los principales líderes de opinión de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

SRE y DevOps

DevOps es una metodología de desarrollo de software que acelera la entrega de aplicaciones y servicios de mayor calidad combinando y automatizando el trabajo de los equipos de desarrollo de software y operaciones de TI. DevOps ayuda a automatizar el ciclo de vida de desarrollo de software (SDLC), brinda a los equipos de desarrollo y operaciones una mayor responsabilidad compartida y brinda a todos los stakeholders relevantes información sobre el SDLC.

La SRE y DevOps son estrategias complementarias en la ingeniería de software que rompen los silos y conducen a una entrega de software más eficiente y confiable.

Mientras que los equipos de DevOps se centran en resolver la pregunta: "¿Qué debería hacer este software?" Los equipos de SRE trabajan para responder: "¿Cómo se puede implementar y mantener este software para que funcione según sea necesario?" Los equipos de SRE proporcionan a los equipos de DevOps datos reales sobre el rendimiento del software, aportando un equilibrio de datos prácticos al mundo teórico del desarrollo de software.

Al igual que SRE, DevOps hace que las empresas sean más ágiles al equilibrar la necesidad de entregar aplicaciones y cambios más rápido con la necesidad de evitar "romper" el entorno de producción. Tanto SRE como DevOps tienen como objetivo lograr este equilibrio estableciendo un riesgo de errores aceptable. Los equipos de DevOps se centran en realizar actualizaciones e implementar nuevas características, mientras que las prácticas de SRE trabajan para proteger la fiabilidad de los sistemas a medida que escalan.

Los equipos de DevOps y SRE agilizan los métodos de comunicación y establecen un bucle de feedback constante. Este bucle podría funcionar así: cuando un equipo SRE descubre la causa raíz de un error, envía sus hallazgos al equipo DevOps, que puede desarrollar una actualización para la próxima versión del software. Mientras tanto, los SRE crean automatizaciones para resolver el problema y rastrean los datos de supervisión e información de registro para asegurarse de que el problema se ha resuelto.

Beneficios de SRE

Además de respaldar el éxito de DevOps, la ingeniería de fiabilidad del sitio puede ayudar a las organizaciones a:

  • Obtenga una mayor visibilidad del estado del servicio mediante el seguimiento de métricas, registros y rastreos en todos los servicios de la organización y refuerce las capacidades de análisis de causa raíz.

  • Mejore la fiabilidad de los sistemas de software mediante las interacciones cotidianas con los clientes y el intercambio colaborativo de datos de los usuarios con los equipos DevOps.

  • Escale los sistemas de software automatizando los procesos manuales que eliminan el trabajo, reducen los errores y resuelven los problemas con mayor precisión.

  • Cuantifique el coste del tiempo de inactividad y las interrupciones al ayudar a los equipos de desarrollo y operaciones a comprender el coste de las infracciones de los acuerdos de nivel de servicio, y ayudando a la dirección a cuantificar el impacto de la fiabilidad del sistema en la producción, las ventas, el marketing, el servicio de atención al cliente y otras funciones empresariales.

  • Optimice la respuesta a incidentes mediante la creación de procesos de guardia eficientes y la racionalización de los flujos de trabajo de alerta.

  • Cree un centro de operaciones de red moderno combinando una comprensión profunda de las operaciones de TI con el machine learning y la automatización para enviar alertas directamente a la persona responsable de dirigirse a la dirección del problema.

SRE, nube y desarrollo nativo de la nube

Cuando las organizaciones migran de la TI tradicional y los centros de datos locales a la nube híbrida, suelen generar mayores volúmenes de datos operativos. La SRE desempeña un papel crítico en el uso de estos datos para automatizar la administración de sistemas, operaciones y la respuesta a incidentes y para mejorar la fiabilidad de la empresa a medida que el entorno de TI se vuelve más complejo.

Un enfoque de desarrollo nativo de la nube (en concreto, la creación de aplicaciones como microservicios y su implementación en contenedores) puede simplificar el desarrollo, la implementación y la escalabilidad de las aplicaciones. No obstante, el desarrollo nativo de la nube también crea un entorno cada vez más distribuido que complica la administración, las operaciones informáticas y la gestión.

Un equipo de SRE puede respaldar el rápido ritmo de innovación que permite un enfoque nativo de la nube y mejorar la fiabilidad del sistema, sin ejercer más presión de Operaciones sobre los equipos de DevOps.

Soluciones relacionadas
IBM Instana Observability

Aproveche el poder de la IA y la automatización para resolver problemas de forma proactiva en toda la pila de aplicaciones.

Explore IBM Instana Observability
Servicios de consultoría en automatización

Vaya más allá de la simple automatización de tareas para gestionar procesos de alto perfil, orientados al cliente y generadores de ingresos con adopción y escala integradas.

Explore los servicios de consultoría para la automatización
Soluciones AIOps

Descubra cómo la IA para operaciones de TI ofrece los conocimientos que necesita para impulsar un rendimiento empresarial excepcional.

Explore las soluciones AIOps
Dé el siguiente paso

Descubra cómo la IA para operaciones de TI le proporciona los conocimientos que necesita para impulsar un rendimiento empresarial excepcional.

Explorar Instana Observability Descubra Instana