El concepto de «ingeniería de fiabilidad del sitio» o SRE (Site Reliability Engineering) aparece con frecuencia en los modelos de cooperación y entornos de agilidad extrema en el panorama de las IT. Muy bien, pero ¿qué tiene que ver con el funcionamiento de los sistemas de IT?

EL ORIGEN DE SITE RELIABILITY ENGINEERING

Como tan a menudo sucede con los procedimientos y protocolos más modernos, el origen del método Site Reliability Engineering se encuentra en una gran empresa tecnológica estadounidense. En este caso fue Google, en el año 2003. El corazón de los modelos de Google Business y por tanto, la clave del éxito de esta corporación, están muy estrechamente relacionados con sus sistemas de IT internos.

 

Por eso Google busca, desde sus inicios, desarrollar nuevos métodos y procedimientos dentro de su organización de IT para seguir el ritmo frenético de crecimiento. De hecho, en el año 2003, en Google todavía imperaba una estricta separación entre las labores de desarrollo de software y operaciones de IT en el día a día. Pero ya entonces surgían las siguientes cuestiones, relacionadas con las operaciones de IT: ¿cómo de estrecha debería ser la colaboración entre los equipos de desarrollo y operaciones y qué procesos requeriría esa cooperación para cosechar éxitos?

 

El fruto de estos planteamientos y de las respuestas que provocaron fue la aparición de Site Reliability Engineering, un nuevo modelo para la operación de los sistemas de IT en Google. ¿Y en qué consiste exactamente el modelo SRE?

 

¿EN QUÉ CONSISTE EXACTAMENTE EL MODELO SITE RELIABILITY ENGINEERING?

La ingeniería de fiabilidad del sitio o Site Reliability Engineering integra diversos métodos que también se aplican durante el desarrollo de software o en DevOps. En primera línea, la SRE contempla el funcionamiento y las operaciones de IT como una misión que debe cumplirse con la ayuda de ingeniería de software.

 

Concretamente, los sistemas se crean, preparan y administran con la ayuda de código. Dicho de otra forma: infraestructuras, flujos de trabajo y tareas manuales se automatizan y por tanto, se vuelven más fiables, gracias a la implantación de software. Junto con la automatización, la monitorización de sistemas también desempeña un papel fundamental dentro de la ingeniería de fiabilidad del sitio. Se vigilan métricas fundamentales de los sistemas en todo momento, visualizadas con la ayuda de paneles de control. En este contexto, los datos recopilados no solo se supervisan con fines reactivos, sino que se analizan de manera constante, para detectar y resolver errores y vulnerabilidades de forma proactiva.

 

El perfil profesional ideal para especialistas de Site Reliability Engineering tiene raíces en el desarrollo de software, pero dispone también de una considerable experiencia en operaciones de IT y también cierta familiaridad con los análisis de datos de sistema. Con este paquete de habilidades, dicha persona se centra en la automatización de las operaciones, se centra en la planificación y el diseño de la infraestructura necesaria, supervisa los sistemas en pleno funcionamiento y analiza su rendimiento, sin olvidar nunca que el objetivo es detectar y explotar potenciales de mejora y perfeccionamiento. Los ingenieros e ingenieras de fiabilidad del sitio reparten su jornada laboral entre tareas de operaciones y desarrollo de software y herramientas con fines de optimización.

 

En caso de que se produzca algún incidente o fallo, nos encargamos de remediarlo y a continuación, mantenemos una comunicación muy detallada con las partes implicadas, con el fin de identificar qué funcionó correctamente y qué sería preciso corregir o perfeccionar. Por si todo esto fuera poco, los especialistas en Site Reliability Engineering recopilan una serie de información y conocimientos muy importantes, que ninguna documentación recoge. Gracias a que disfrutan de visibilidad sobre el desarrollo y el soporte técnico, ese saber ya no se queda aislado en un solo equipo, sino que toda la empresa le puede sacar partido.

 

Además del núcleo de ingredientes tecnológicos de la Site Reliability Engineering, este modelo de protocolo se basa también en una serie de principios metodológicos que ahora veremos de manera pormenorizada.

La ingeniería de fiabilidad del sitio o SRE se afianza sobre un conjunto de métodos ya definidos y establecidos en la práctica del desarrollo de software. Además, la SRE presenta numerosos paralelismos con otros métodos que se aplican en el ámbito de DevOps. Dos de las diferencias más notables respecto a DevOps son en que la ingeniería de fiabilidad del sitio tiene como máxima prioridad y centro de atención la fiabilidad (del sistema) y está obligada a seguir requisitos y especificaciones de una manera más vinculante. Por otro lado, las similitudes más marcadas respecto a DevOps son actividades esenciales, como la supervisión continua y la automatización consistente y coherente de procesos y flujos de trabajo.

 

Un método fundamental que se utiliza en la SRE son los denominados circuitos positivos, que implican definir y establecer objetivos y medidas para medir los primeros. El tratamiento de los errores también forma parte de los circuitos positivos. A continuación, describiremos cada uno de los elementos del principio de los circuitos positivos.

 

SLO Y SLI

La ingeniería Site Reliability Engineering define para cada sistema qué aspecto debería tener en concreto la fiabilidad apropiada. El objetivo de nivel de servicio o «Service Level Objective» (SLO) indica cómo de fiable debe ser el funcionamiento de un sistema para responder a las necesidades o deseos internos del cliente. Esto puede significar, por ejemplo, que un sistema deba proporcionar un 90 % de resultados satisfactorios dentro de un plazo de tiempo predefinido.

 

Para comprobar si se consigue ese objetivo y, por tanto, si se cumple el nivel de fiabilidad exigido, la ingeniería SRE emplea un indicador de nivel de servicio o «Service Level Indicator» (SLI). Los SLI son puntos de medición que proporcionan información, por ejemplo, sobre cuántas solicitudes se responden correctamente y cuántas de ellas obtienen su respuesta dentro del plazo de tiempo preestablecido. De esta manera, los SLI contribuyen a certificar de forma cualificada si el objetivo SLO se alcanza o bien, si no se alcanza, indican en qué puntos es necesario trabajar para optimizarlo.

 

MARGEN DE ERROR

Las actualizaciones, los parches y nuevas versiones aportan nuevas funciones, amplían las que existían y eliminan lagunas de seguridad. Uno de los problemas básicos del desarrollo de software consiste en que no es posible dedicarle un tiempo infinito a la planificación para garantizarnos que esa nueva versión cubra absolutamente todos los escenarios imaginables. Y aún dejando esto a un lado, surge la siguiente cuestión: ¿cuándo se consigue una fiabilidad perfecta del sistema? ¿Es posible lograrlo?

 

La ingeniería Site Reliability Engineering trabaja un principio básico que sostiene que cada sistema dispone de un margen de error. Dicho margen se calcula partiendo de una fiabilidad del 100 % (teóricamente posible) a la que se resta la fiabilidad aplicada real y se toma para ello como referencia un plazo determinado. Por ejemplo, un mes. En el ejemplo de más arriba, el margen de error calculado resultó ser del 10 % (100 % - 90 %). Por tanto, si se constatase una funcionalidad correspondiente a una cuota de errores de hasta el 10 % como máximo, se consideraría aceptable.

 

Así pues, mientras el SLO permanezca en verde, según este método no es necesario desperdiciar tiempo ni presupuesto para perseguir un estado ideal teórico de fiabilidad total. La necesidad de actuar no surge entonces hasta que se excede el margen de error, momento en el que hay que perfeccionar el sistema. Por ejemplo, reteniendo el lanzamiento de una nueva versión hasta que se logre mejorar la fiabilidad.

 

APRENDER DE LOS ERRORES, PERO SIN CARGAR LAS CULPAS

Cuando suceden fallos de sistema graves o interrupciones del servicio con consecuencias de peso, lo más sensato es rastrear e investigar a fondo las causas de esos problemas posteriormente. Solo así es posible aprovechar la experiencia de esos errores para, idealmente, prevenir fallos similares en el futuro. La característica distintiva de la ingeniería Site Reliability Engineering en este ámbito es que esos análisis de errores deberían producirse en un marco positivo. En lugar de asignar culpas y responsabilidades a personas o equipos concretos, la SRE centra su atención en el problema y sus causas de origen. La pregunta que se plantee no debería ser «¿quién tiene la culpa de este error?», sino más bien «¿qué circunstancias han propiciado que se produjese este fallo?».

 

Actuar de esta forma permite identificar motivos e información esquiva que nos faltaba, pero también detectar procesos operativos defectuosos que hayan facilitado o provocado la aparición del problema. Bajo las premisas de la SRE, el error no debería achacársele a nadie. Esta norma de trabajo propone buscar oportunidades para prevenir y evitar ese mismo error en el futuro, por medio de medidas adecuadas. Así la organización en conjunto avanzará y se beneficiará de una mayor fiabilidad de los sistemas, de forma sostenible.

 

VENTAJAS DE LA INGENIERÍA SITE RELIABILITY ENGINEERING

Lo que conviene recordar siempre es que la Site Reliability Engineering se basa en un paquete de herramientas técnicas y principios claros. ¿Pero cuáles son entonces las ventajas de la SRE en comparación con los modelos de operación afines? A continuación, abordaremos seis de los argumentos fundamentales a favor de la aplicación de la SRE.

 

Mejoras en la generación y notificación de informes: La SRE es sinónimo de transparencia, ya que obliga a vigilar constantemente parámetros importantes como la productividad, el estado del servicio y el número de errores. A partir de las métricas y estadísticas se derivan factores concretos (como puede ser un tiempo de interrupción medio del servicio, por ejemplo), que posteriormente se pueden mejorar de manera precisa y objetiva, aplicando soluciones.

 

Búsqueda de errores proactiva: muchas organizaciones y departamentos de IT centran sus esfuerzos principalmente en la implementación de nuevas funciones y características. El desarrollo y el despliegue, cada vez más acelerados, entrañan siempre el riesgo de introducir fallos y vulnerabilidades en el sistema. Para contrarrestar este panorama, la SRE propone examinar los sistemas de forma proactiva para detectar fallos y problemas, y resolverlos antes de que afecten a los usuarios.

 

Más valor añadido: cuando los sistemas de IT son fiables, no se requiere invertir tanta capacidad de desarrollo para solventar y remediar fallos. Los equipos de desarrollo disponen automáticamente de más tiempo para dedicarse a su especialidad: concebir nuevas funciones y hacerlas disponibles. La SRE detecta los problemas potenciales antes del despliegue.

 

Cambio en la cultura empresarial: La Site Reliability Engineering favorece contemplar de una manera nueva el estado de los sistemas en las organizaciones y departamentos de IT. La búsqueda continua de potenciales de optimización repercute de forma positiva sobre todos los equipos implicados y fomenta el trabajo conjunto en cooperación. El sentido de responsabilidad común compartido que propicia la SRE rompe con la estanqueidad y el confinamiento tan típicos que separan a los distintos equipos.

 

Mayor grado de automatización: Los especialistas en ingeniería de fiabilidad del sitio se esfuerzan de manera permanente por automatizar los flujos de trabajo relevantes. Y esa misma actitud es la que aplican a su propia labor. Gracias a la incorporación de una moderna cadena de herramientas, optimizan sus procesos de trabajo de manera continua. Con ello se va reduciendo sucesivamente la propensión a errores por parte del componente humano.

 

Satisfacción de la clientela: En contraste con otros modelos de operación, la SRE se centra en mejorar la experiencia de los clientes (externos), pero también la de los usuarios internos del sistema. Por medio de los SLO y los SLI, define metas específicas para la fiabilidad del sistema y, con ello, para la satisfacción de los clientes.

 

CONCLUSIÓN

¿Otro método más? No, no solo eso. La Site Reliability Engineering es algo nuevo. Su planteamiento de base enriquece la cultura moderna de la IT, dado que tiende puentes pragmáticos para salvar la brecha entre desarrollo y operaciones de IT. Allí donde otros marcos se quedan excesivamente anclados en la teoría o no proponen más que una estructura básica de actuación, la ingeniería SRE actúa de forma concreta.

 

Por medio de la monitorización y el análisis constantes del rendimiento del sistema, detecta las dificultades con antelación y contribuye a la optimización y la fiabilidad.

 

La cuestión que sigue en el aire es la adaptación personalizada de este enfoque en cada empresa y cada departamento de IT. Los principios de la Site Reliability Engineering son escalables y aplicables desde a una pequeña y prometedora empresa emergente hasta gigantes tecnológicos como Google, Microsoft y demás familia.

 

De cara a la puesta en práctica, se recomienda centrarse en la SRE específica e individuales (por ejemplo, empezar por la implementación de una solución de monitorización). La clave es que la ingeniería Site Reliability Engineering tiene potencial para generar más valor en las organizaciones y departamentos de IT, ya que su enfoque permite vincularla mucho más estrechamente a la generación de valor de la empresa.

Compartir artículo