Site Reliability Engineering (SRE): principios

He querido resumir en un post, los principios que se explican en el libro «Site Reliability Engineer» de Google (gratis y online).

CAPITULO 1 & 2 – INTRO

Además de programar, a un SRE se le pide conocimientos avanzados de cómo funciona el sistema UNIX a nivel interno, y de networking (capas de la 1 a la 3)

La clave está en dedicar al menos un 50% del tiempo en automatizar las tareas de operaciones o a hacer tareas de ingeniería (mejorar la fiabilidad, el performance, etc.). De esta manera, evitas tener un equipo que crezca a la vez que crece la infraestructura (y por tanto, las tareas de operaciones si no estuvieran automatizadas).

También es clave dedicarle tiempo a los postmortem para aquellos incidentes relevantes. En caso contrario, no se estará aprovechando la oportunidad de mejorar nuestros sistemas.

El concepto de «error budget» es (1 – disponibilidad_acordada). Si se establece 99.99% de disponibilidad acordada, el error budget será de 0.01%. Este error budget se podrá usar para lo que se quiera, pero típicamente se usará para tomar riesgos deployando nuevas funcionalidades lo antes posible.

Aprox un 70% de las caídas son debidas a cambios en producción. Los SREs deben aplicar best practices para automatizar completamente los cambios (progresivos) en producción así como el rollback.

Las alertas del sistema de monitorización deberían interpretarse y solucionarse de forma automática, y a partir de ahí, únicamente deberían notificar a un humano cuando éstos necesiten tomar parte.

Continuar leyendo «Site Reliability Engineering (SRE): principios»

Site Reliability Engineer

Bueno, ha llegado el día en el que publico un resumen (muy básico y que seguramente iré actualizando) de lo que entiendo es un SRE y sus funciones básicas. Allá vamos.

¿Qué es un SRE?

Hay muchas definiciones de lo que es un SRE, pero me quedo con ésta de Microsoft:

Site Reliability Engineering is an engineering discipline devoted to helping an organization achieve the appropriate level of reliability in their systems, services, and products.

Y que complemento con esta frase sacada del libro de SRE de Google:

In general, an SRE team is responsible for the availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning of their service(s).

Hago especial hincapié en lo de conseguir los niveles de fiabilidad apropiados. El 100% de uptime no es el objetivo de un SRE. En realidad, una caída del servicio no se ve ya como algo «malo» si no que es una oportunidad para que los desarrolladores y los SREs mejoren los sistemas.

Continuar leyendo «Site Reliability Engineer»