Iniciar sesión / Registrar Cuenta

DevOps

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

La ingeniería de confiabilidad del sitio (SRE) es un enfoque de ingeniería de software para las operaciones de TI. Los equipos de SRE utilizan el software para gestionar los sistemas, resolver los problemas y automatizar las tareas operativas.

La SRE asigna las tareas que siempre han realizado los equipos de operaciones, muchas veces de forma manual, a los ingenieros o a los equipos de operaciones, que utilizan el software y la automatización para resolver los problemas y gestionar los sistemas de producción. 

Es una práctica útil para crear sistemas de software que se puedan ampliar y que sean muy confiables. Le permitirá usar el código para gestionar sistemas de gran tamaño, lo cual brinda una mayor escalabilidad y sostenibilidad a los administradores de sistemas que gestionan miles o cientos de miles de equipos. 

El concepto de la SRE surgió en el equipo de ingeniería de Google, y se le atribuye a Ben Treynor Sloss. 

Ayuda a que los equipos encuentren el equilibrio entre el lanzamiento de funciones nuevas y la garantía de que sean confiables para los usuarios.

La estandarización y la automatización son dos elementos importantes del modelo de SRE. Los ingenieros de confiabilidad del sitio siempre deben buscar formas de mejorar y automatizar las tareas operativas.

De esta manera, la SRE permite aumentar la confiabilidad de un sistema en el acto, y también a medida que crece con el tiempo. 

Respalda la transición de los equipos de un enfoque tradicional de las operaciones de TI a uno nativo de la nube.

Las funciones de los ingenieros de confiabilidad del sitio

Para ser ingeniero de confiabilidad del sitio, es necesario contar con una trayectoria de desarrollo de software con experiencia adicional en operaciones, de administración de sistemas o de operaciones de TI con habilidades de desarrollo de software. 

Los equipos de SRE se encargan de la forma en que se implementa, configura y supervisa el código, así como de la disponibilidad, la latencia, la gestión de cambios, la respuesta ante emergencias y la gestión de la capacidad de los servicios en la producción.

La ingeniería de confiabilidad del sitio permite que los equipos determinen qué características nuevas se pueden lanzar y en qué momento, gracias al uso de acuerdos de nivel de servicio (SLA) para definir la confiabilidad requerida del sistema mediante indicadores de nivel de servicio (SLI) y objetivos de nivel de servicio (SLO). 

Un SLI es una medida definida de aspectos específicos sobre los niveles de servicio que se proporcionan. Los más importantes incluyen la latencia de las solicitudes, la disponibilidad, la tasa de errores y el rendimiento del sistema. Un SLO se basa en el valor o el rango objetivo para un nivel de servicio específico basado en el SLI.

Luego se determina un objetivo de nivel de servicio en función del downtime que se acordó como aceptable, denominado "estimación de errores", que representa el límite máximo de interrupciones y errores permitidos. 

Con la SRE no se espera una confiabilidad al 100 %, sino que se planifican y se aceptan las fallas. 

Es posible que el equipo de desarrollo alcance el límite de la estimación de errores al lanzar una característica nueva. Pero al utilizar este recurso junto con el SLO, puede determinar si debe lanzar un producto o un servicio según el margen de error disponible.

Si un servicio funciona dentro de los parámetros de estimación de errores permitidos, el equipo de desarrollo puede lanzarlo cuando lo desee. Sin embargo, si el sistema tiene demasiados errores o interrupciones más prolongadas de lo que permite la estimación, no se podrán realizar lanzamientos nuevos hasta que los errores estén dentro de dichos parámetros.   

El equipo de desarrollo realiza pruebas de operaciones automatizadas para demostrar la confiabilidad. 

Los ingenieros de confiabilidad del sitio dividen su trabajo entre las tareas operativas y las del proyecto. Según las prácticas recomendadas de SRE de Google, los ingenieros de confiabilidad del sitio pueden dedicar hasta un 50 % del tiempo a las operaciones y deben estar bajo supervisión para no excederse. 

El resto del tiempo deben dedicarlo a las tareas de desarrollo, como crear funciones nuevas, ampliar el sistema e implementar la automatización.

El equipo de desarrollo puede ocuparse del resto del trabajo operativo y de los servicios con bajo rendimiento para evitar que los ingenieros inviertan demasiado tiempo en las operaciones de una aplicación o un servicio. 

La automatización es una parte importante del trabajo de los ingenieros de confiabilidad del sitio. Si deben resolver un problema varias veces, deben automatizar la solución. Así también se garantiza que las tareas operativas ocupen solo la mitad de su carga de trabajo. 

Mantener el equilibrio entre las operaciones y la labor de desarrollo es un elemento clave de la SRE. 

Comparación entre DevOps y SRE

DevOps es un modo de abordar la cultura, la automatización y el diseño de las plataformas para generar mayor valor empresarial y capacidad de respuesta, mediante la prestación ágil de servicios de alta calidad. La SRE puede considerarse una implementación de DevOps.

Ambos se basan en las relaciones y la cultura del trabajo en equipo, y tienen como objetivo acortar la brecha entre los equipos de desarrollo y de operaciones para prestar servicios con mayor rapidez. 

Algunos de los beneficios que ofrecen las prácticas de DevOps y de SRE incluyen ciclos de vida de desarrollo de las aplicaciones más rápidos, mayor calidad y confiabilidad de los servicios y menor tiempo de TI por cada aplicación desarrollada.

La SRE es diferente porque depende de los ingenieros de confiabilidad del sitio dentro del equipo de desarrollo, que también deben tener experiencia en operaciones, para eliminar los problemas de comunicación y de flujo de trabajo.

Su función requiere las habilidades tanto del equipo de desarrollo como del de operaciones, ya que superpone las responsabilidades. 

La SRE puede ayudar a los equipos de DevOps cuyos desarrolladores tengan demasiadas tareas operativas y necesiten a un especialista en dicho campo. 

En términos del código y las características nuevas, DevOps se concentra en aportar eficiencia a todo el proceso de desarrollo, mientras que la SRE se enfoca en equilibrar la confiabilidad del sitio con la creación de características nuevas. 

Las plataformas de aplicaciones modernas basadas en la tecnología de contenedores, Kubernetes y los microservicios son fundamentales para las prácticas de DevOps, ya que permiten ofrecer servicios de software seguros e innovadores.

 

La tecnología necesaria para respaldar la SRE

La SRE se basa en la automatización de las tareas operativas de rutina y la estandarización en todo el ciclo de vida de las aplicaciones. Los contenedores de Linux® brindan a su equipo la tecnología subyacente necesaria para un estilo de desarrollo nativo de la nube. Los contenedores admiten un entorno unificado para el desarrollo, la distribución, la integración y la automatización.

Por otro lado, Kubernetes es la forma moderna de automatizar las operaciones de los contenedores de Linux. Le permite gestionar los clústeres que ejecutan estos contenedores en todas las nubes públicas, privadas o híbridas con facilidad y eficiencia.

Con la plataforma adecuada puede aprovechar mejor los cambios que implementó en la cultura y en los procesos. Red Hat® OpenShift® es la plataforma Kubernetes para las empresas que respalda las iniciativas de SRE.

Las herramientas que necesita para la SRE

Red Hat Ansible Automation

Tecnología de automatización de la TI sencilla y sin agentes que le permite mejorar los procesos actuales, migrar las aplicaciones para aumentar la optimización y proporcionar un solo lenguaje para las prácticas de DevOps en toda la empresa.

Red Hat OpenShift

Plataforma de contenedores de Kubernetes empresarial, con operaciones automatizadas integrales para gestionar implementaciones de nube híbrida y multicloud. 

DevOps tiene mucho más que ofrecer