¿Qué es y de que hablamos, cuando hablamos de Site Reliability Enginner?
Citas del libro Google Site Reliability Book- Site
Reliability
Engineering
HOW GOOGLE RUNS PRODUCTION SYSTEMS
La ingeniería de confiabilidad del sitio (SRE) es un enfoque de ingeniería de software para las operaciones de IT.
Los equipos de SRE utilizan el software para gestionar los sistemas, resolver los problemas , y las tareas operativas.
Hablamos, entonces, en principio, de Equipos de Ingeniería de Sitios, SRE.
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.
Nos 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 por eso encontraremos mucha información relativa a SRE
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".
Google SRE y RedHat
"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)".
Google Site Reliability Book- Site
Reliability
Engineering
HOW GOOGLE RUNS PRODUCTION SYSTEMS
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".
Google SRE
El equipo de desarrollo realiza pruebas de operaciones automatizadas para demostrar la confiabilidad.
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.
DevOps, tal como lo enseñamos en EducaciónIT, 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 siempre se fundamentan, como DevOps, 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 y satisfacer a los clientes con Agilidad.
"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".
CloudDevOps EducaciónIT
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.
Sin mucho mas que decir hoy, ¡espero les haya gustado el articulo y los leo en comentarios y redes sociales!
Gino (gino.luciano.rojo@educacionit.com) - DevOps Enginner and Teacher.