Site Reliability Engineer

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 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 simepre 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.

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 cuándo, 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.

SRE

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 un desarrollo es un elemento clave de la SRE.