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

La ingeniería de confiabilidad del sitio (SRE) es la práctica de usar herramientas de software para automatizar las tareas de infraestructura de TI, como la administración de sistemas y el monitoreo de aplicaciones Las organizaciones utilizan SRE para garantizar que sus aplicaciones de software sigan siendo confiables en medio de actualizaciones frecuentes de los equipos de desarrollo. SRE mejora especialmente la confiabilidad de los sistemas de software escalables porque la administración de un sistema grande mediante software es más sostenible que la administración manual de cientos de máquinas. 

¿Por qué es importante la ingeniería de fiabilidad del sitio?

La fiabilidad del sitio describe la estabilidad y la calidad del servicio que ofrece una aplicación después de ponerse a disposición de los usuarios finales. El mantenimiento del software a veces afecta a la fiabilidad del software si no se detectan problemas técnicos. Por ejemplo, cuando los desarrolladores realizan cambios nuevos, pueden afectar inadvertidamente a la aplicación existente y provocar que se bloquee en ciertos casos de uso.

Los siguientes son algunos de los beneficios de las prácticas de ingeniería de fiabilidad del sitio (SRE).

Colaboración mejorada

La SRE mejora la colaboración entre los equipos de desarrollo y operaciones. Los desarrolladores a menudo tienen que hacer cambios rápidos en una aplicación para lanzar nuevas funciones o corregir errores críticos. Por otro lado, el equipo de operaciones debe garantizar una prestación de servicios sin problemas. Por lo tanto, el equipo de operaciones utiliza prácticas de SRE para monitorear de cerca cada actualización y responder rápidamente a cualquier problema que surja debido a los cambios.

Mejore la experiencia de clientes

Las organizaciones utilizan un modelo SRE para garantizar que los errores de software no afecten a la experiencia del cliente. Por ejemplo, los equipos de software utilizan herramientas SRE para automatizar el ciclo de vida del desarrollo de software. Esto reduce los errores, lo que significa que el equipo puede priorizar el desarrollo de nuevas funciones sobre la corrección de errores.

Planificación de operaciones mejorada

 Los equipos de SRE aceptan que existe una posibilidad realista de que el software falle. Por lo tanto, los equipos planifican la respuesta adecuada a los incidentes para minimizar el impacto del tiempo de inactividad en la empresa y los usuarios finales. También pueden estimar mejor el costo del tiempo de inactividad y comprender el impacto de dichos incidentes en las operaciones comerciales. 

¿Cuáles son los principios clave de la ingeniería de fiabilidad del sitio?

Los siguientes son algunos principios clave de la ingeniería de fiabilidad del sitio (SRE).

Monitoreo de aplicaciones

Los equipos de SRE aceptan que los errores forman parte del proceso de despliegue del software. En lugar de esforzarse por encontrar una solución perfecta, monitorean el rendimiento del software en términos de acuerdos de nivel de servicio (SLA), indicadores de nivel de servicio (SLI) y objetivos de nivel de servicio (SLO). Observan y monitorean las métricas de rendimiento después de implementar la aplicación en entornos de producción. 

Implementación del cambio gradual

Las prácticas de SRE fomentan la publicación de cambios frecuentes pero pequeños para mantener la fiabilidad del sistema. Las herramientas de automatización de SRE utilizan procesos consistentes pero repetibles para hacer lo siguiente:

  • Reducir los riesgos derivados de los cambios
  • Proporcionar bucles de retroalimentación para medir el rendimiento del sistema
  • Aumentar la velocidad y la eficiencia de la implementación del cambio

Automatización para mejorar la fiabilidad

SRE usa políticas y procesos que incorporan principios de fiabilidad en cada paso de la canalización de entrega. Algunas estrategias que resuelven problemas automáticamente son las siguientes:

  • Desarrollo de puertas de calidad basadas en objetivos de servicio para detectar los problemas antes
  • Automatización de las pruebas de compilación mediante indicadores de servicio
  • Toma de decisiones arquitectónicas que garanticen la resiliencia del sistema desde el inicio del desarrollo de software

¿Qué es la observabilidad en la ingeniería de fiabilidad del sitio?

La observabilidad es un proceso que prepara al equipo de software para las incertidumbres cuando el software se pone en marcha para los usuarios finales. Los equipos de ingeniería de fiabilidad del sitio (SRE) usan herramientas para detectar comportamientos anómalos en el software y, lo que es más importante, recopilan información que le sirve a los desarrolladores a comprender las causas del problema. La observabilidad implica recopilar la siguiente información con las herramientas de SRE. 

Métricas 

Las métricas son valores cuantificables que reflejan el rendimiento de una aplicación o el estado del sistema. Los equipos de SRE usan métricas para determinar si el software consume recursos excesivos o se comporta de manera anormal.

Registros

El software SRE genera información detallada y con marca temporal denominada registros en respuesta a eventos específicos. Los ingenieros de software usan registros para comprender la cadena de eventos que conducen a un problema en particular. 

Huellas 

Las huellas son observaciones de la ruta del código de una función específica en un sistema distribuido. Por ejemplo, proceder al pago de un carro de pedidos puede implicar lo siguiente:

  • Contabilización del precio con la base de datos
  • Autenticación con la puerta de enlace de pago
  • Envío de los pedidos a los proveedores

Las huellas constan de un ID, un nombre y una hora. Ayudan a los desarrolladores de software a detectar problemas de latencia y mejorar el rendimiento del software. 

¿Qué es el monitoreo en la ingeniería de fiabilidad del sitio?

El monitoreo es un proceso de observación de métricas predefinidas en una aplicación. Los desarrolladores deciden qué parámetros son fundamentales para determinar el estado de la aplicación y los configuran en las herramientas de monitoreo. Los equipos de ingeniería de fiabilidad del sitio (SRE) recopilan información crítica que refleja el rendimiento del sistema y la visualizan en gráficos.

En SRE, los equipos de software monitorean estas métricas para obtener información sobre la fiabilidad del sistema.

Latencia 

La latencia describe el retraso que se produce cuando la aplicación responde a una solicitud. Por ejemplo, el envío de un formulario en un sitio web tarda 3 segundos antes de dirigir a los usuarios a una página web de confirmación. 

Tráfico

El tráfico mide la cantidad de usuarios que acceden simultáneamente a tu servicio. Le sirve a los equipos de software a presupuestar los recursos de computación para mantener un nivel de servicio satisfactorio para todos los usuarios.

Errores

Un error es una condición en la que la aplicación no funciona ni entrega resultados de acuerdo con las expectativas. Por ejemplo, cuando una página web no se carga o una transacción no se lleva a cabo, los equipos de SRE usan herramientas de software para realizar un seguimiento automático de los errores de la aplicación y responder a ellos. 

Saturación

La saturación indica la capacidad en tiempo real de la aplicación. Un alto nivel de saturación generalmente se traduce en una degradación del rendimiento. Los ingenieros de fiabilidad del sitio monitorean el nivel de saturación y se aseguran de que esté por debajo de un umbral determinado. 

¿Cuáles son las métricas clave para la ingeniería de fiabilidad del sitio?

Los equipos de ingeniería de fiabilidad del sitio (SRE) miden la calidad de la prestación de servicios y la fiabilidad mediante las siguientes métricas. 

Objetivos de nivel de servicio

Los objetivos de nivel de servicio (SLO) son metas específicas y cuantificables que sabe que el software logrará a un costo razonable para otras métricas, como las siguientes: 

  • Tiempo de actividad o el tiempo que un sistema está en funcionamiento
  • Rendimiento del sistema
  • Salida del sistema
  • Tasa de descarga o la velocidad a la que se carga la aplicación

Un SLO promete la entrega al cliente a través del software. Por ejemplo, establece un SLO de tiempo de actividad del 99,95 % para la aplicación de entrega de alimentos de su empresa.

Indicadores de nivel de servicio

Los indicadores de nivel de servicio (SLI) son las medidas reales de la métrica que define un SLO. En situaciones reales, es posible que obtengas valore que coincidan con el SLO o difieran de este. Por ejemplo, su aplicación está en funcionamiento el 99,92 % del tiempo, lo que es inferior al SLO prometido. 

Acuerdos de nivel de servicio

Los acuerdos de nivel de servicio (SLA) son documentos legales que establecen lo que sucedería cuando no se cumplen uno o más SLO. Por ejemplo, el SLA establece que el equipo técnico resolverá el problema de su cliente dentro de las 24 horas posteriores a la recepción del informe. Si su equipo no pudo resolver el problema en el plazo especificado, es posible que tenga que reembolsar al cliente.

Presupuestos de errores

Los presupuestos de errores son la tolerancia de incumplimiento para el SLO. Por ejemplo, un tiempo de actividad del 99,95 % en el SLO significa que el tiempo de inactividad permitido es del 0,05 %. Si el tiempo de inactividad del software supera el presupuesto de errores, el equipo de software dedica todos los recursos y atención a estabilizar la aplicación.

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

La ingeniería de fiabilidad del sitio (SRE) implica la participación de los ingenieros de fiabilidad del sitio en un equipo de software. El equipo de SRE establece las métricas clave para la SRE y crea un presupuesto de errores determinado por el nivel de tolerancia al riesgo del sistema. Si el número de errores es bajo, el equipo de desarrollo puede lanzar nuevas funciones. Sin embargo, si los errores superan el presupuesto de errores permitido, el equipo suspende los nuevos cambios y resuelve los problemas existentes.

Por ejemplo, un ingeniero de fiabilidad del sitio utiliza un servicio para monitorear las métricas de rendimiento y detectar el comportamiento anómalo de las aplicaciones. Si hay problemas con la aplicación, el equipo de SRE envía un informe al equipo de ingeniería de software. Los desarrolladores corrigen los casos denunciados y publican la aplicación actualizada.

DevOps

DevOps es una cultura de software que rompe los límites tradicionales de los equipos de desarrollo y operaciones. Con DevOps, los desarrolladores e ingenieros de operaciones ya no trabajan en silos. En cambio, usan herramientas de software para mejorar la colaboración y mantenerse al día con el rápido ritmo de las versiones de actualizaciones de software.

Diferencias entre SRE y DevOps

SRE es la implementación práctica de DevOps. DevOps proporciona la base filosófica de lo que se tiene que hacer para mantener la calidad del software en medio de los plazos de desarrollo cada vez más cortos. La ingeniería de fiabilidad del sitio ofrece las respuestas sobre cómo lograr el éxito de DevOps. SRE garantiza que el equipo de DevOps logre el equilibrio correcto entre velocidad y estabilidad. 

¿Cuáles son las responsabilidades de un ingeniero de fiabilidad del sitio?

Un ingeniero de fiabilidad del sitio es un experto en TI que utiliza herramientas de automatización para monitorear y observar la fiabilidad del software en el entorno de producción. También tienen experiencia en encontrar problemas en el software y escribir códigos para solucionarlos. Por lo general, son antiguos administradores de sistemas o ingenieros de operaciones con buenos conocimientos de codificación. Las siguientes son algunas de las responsabilidades de fiabilidad del sitio.

Operaciones

Los ingenieros de fiabilidad del sitio dedican hasta la mitad de su tiempo al trabajo de operaciones. Esto incluye varias tareas, como las siguientes: 

  • Respuesta ante incidentes de emergencia
  • Administración de cambios
  • Administración de la infraestructura de TI

Los ingenieros utilizan las herramientas de SRE para automatizar varias tareas de operaciones y aumentar la eficiencia del equipo.

Soporte del sistema

Los ingenieros de fiabilidad del sitio trabajan en estrecha colaboración con el equipo de desarrollo para crear nuevas funciones y estabilizar los sistemas de producción. Crean un proceso de SRE para todo el equipo de software y están disponibles para dar soporte a los problemas de escalamiento. Y lo que es más importante, los equipos de fiabilidad del sitio proporcionan procedimientos documentados al servicio de atención al cliente para ayudarlos a tratar las quejas de manera efectiva. 

Mejora de procesos

Los ingenieros de fiabilidad del sitio mejoran el ciclo de vida del desarrollo de software al realizar revisiones posteriores a los incidentes. El equipo de SRE documenta todos los problemas de software y las soluciones respectivas en una base de conocimientos compartida. Esto le sirve al equipo de software a responder de manera eficiente a problemas similares en el futuro. 

¿Cuáles son las herramientas comunes de ingeniería de fiabilidad del sitio?

Los equipos de ingeniería de fiabilidad del sitio (SRE) utilizan diferentes tipos de herramientas para facilitar el monitoreo, la observación y la respuesta a incidentes. 

Orquestador de contenedores 

Los desarrolladores de software utilizan un orquestador de contenedores para ejecutar aplicaciones en contenedores en varias plataformas. Las aplicaciones en contenedores almacenan sus archivos de código y recursos relacionados dentro de un solo paquete llamado “contenedor”. Por ejemplo, los ingenieros de software usan Amazon Elastic Kubernetes Service (Amazon EKS) para ejecutar y escalar aplicaciones en la nube. 

Herramientas de administración de guardia 

Las herramientas de administración de guardia son un software que permiten a los equipos de SRE planificar, organizar y administrar al personal de asistencia que se ocupa de los problemas de software notificados. Los equipos de SRE utilizan el software para garantizar que siempre haya un equipo de asistencia en espera para recibir alertas oportunas sobre problemas de software. 

Herramientas de respuesta ante incidentes 

Las herramientas de respuesta ante incidentes garantizan una vía de escalamiento clara para los problemas de software detectados. Los equipos de SRE utilizan herramientas de respuesta a incidentes para categorizar la gravedad de los casos notificados y tratarlos con prontitud. Las herramientas también pueden proporcionar informes de análisis posteriores al incidente para evitar que se repitan problemas similares. 

Herramientas de administración de configuración

Las herramientas de administración de la configuración son software que automatizan el flujo de trabajo del software. Los equipos de SRE utilizan estas herramientas para eliminar las tareas repetitivas y ser más productivos. Por ejemplo, los ingenieros de fiabilidad de sitios usan AWS OpsWorks para configurar y administrar de forma automática los servidores en los entornos de AWS. 

¿Cómo contribuye AWS con la ingeniería de fiabilidad del sitio?

 

Los servicios de administración y gobernanza de AWS brindan las herramientas necesarias para que el equipo de software cree, escale y despliegue aplicaciones distribuidas sin comprometer la fiabilidad del sistema. Los equipos de ingeniería de fiabilidad del sitio (SRE) utilizan varios servicios de administración y gobernanza de AWS para supervisar y gobernar los recursos de computación locales y de AWS:

  • AWS Service Catalog permite a los equipos de SRE catalogar, administrar y desplegar de forma rápida los servicios de TI
  • AWS Systems Manager proporciona un centro de administración centralizado para que los ingenieros de fiabilidad del sitio obtengan información operativa sobre los recursos de computación de software
  • AWS Proton es una herramienta de administración automatizada para desplegar aplicaciones en contenedores y sin servidor

Comience con la ingeniería de fiabilidad de sitios en AWS, cree una cuenta de AWS hoy mismo.

Siguientes pasos en AWS

Descubra otros recursos relacionados con el producto
Obtenga más información sobre la ingeniería de fiabilidad del sitio en AWS 
Regístrese para obtener una cuenta gratuita

Obtenga acceso instantáneo al nivel Gratuito de AWS.

Regístrese 
Comience a crear en la consola

Comience a crear ingeniería de fiabilidad del sitio en la consola de administración de AWS.

Iniciar sesión