Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción a la SRE
E¿Te satisface la manera en que tu organización lleva adelante las operaciones de TI? Para responder, piensa
en preguntas como las siguientes:
• ¿Tus aplicaciones son tan confiables
como necesitan los usuarios? • ¿Tu personal operativo responde a los incidentes de
¿Puedes equilibrar de manera manera organizada y efectiva?
efectiva el lanzamiento de nuevas
funciones y, al mismo tiempo, • Una vez que se ha tratado un incidente, ¿realizas un
mantener la confiabilidad? proceso post mortem eficaz que te ayude a aprender
del incidente?
• ¿Eres capaz de retener a tu
personal de operaciones con tareas • ¿Puedes planificar con precisión el futuro de tus
interesantes y no solo trabajo aplicaciones y determinar los recursos humanos e
pesado y repetitivo? informáticos que requerirán?
Si eres como muchas empresas, la respuesta a muchas (quizás incluso la mayoría) de estas
preguntas es «no». La verdad es que no te convence plenamente la manera en que realizas las
operaciones y te gustaría mejorar.
Beneficios de la SRE
Una manera eficaz de mejorar las operaciones de TI es adoptar lo que se conoce como ingeniería de
confiabilidad de sitios (SRE). La SRE es un conjunto de principios y prácticas utilizadas para ejecutar
sistemas de producción que abordan todos los desafíos que hemos mencionado. Contempla:
• El uso de objetivos de nivel de servicio (SLO) y porcentajes de errores aceptables para crear
expectativas claras entre los desarrolladores, el personal operativo y la empresa acerca de la
confiabilidad que debe tener una aplicación y la velocidad con la que se pueden implementar
nuevas funciones.
• La identificación del trabajo pesado y las tareas manuales de mucha carga, con la
consecuente automatización o reducción de esas tareas.
• La creación de un proceso eficaz de administración de incidentes con responsabilidades y
roles bien definidos.
• La ejecución de procesos post mortem para detectar y solucionar problemas subyacentes sin
culpar a nadie.
• Una planificación precisa de capacidades que te permita comprender los recursos humanos e
informáticos que necesitará una aplicación en el futuro.
La SRE puede abarcar más cuestiones, por lo que esta no es una lista exhaustiva. Además, si bien la
SRE aborda muchos aspectos diferentes de las operaciones, no tienes que adoptar todo a la vez. La
mayoría de las organizaciones comienzan donde tienen mayores inconvenientes; por ejemplo,
mejoran la confiabilidad de las aplicaciones o liberan tiempo del personal operativo al reducir el
trabajo pesado, y luego evolucionan a partir de allí. Independientemente de lo que funcione para ti, la
adopción de la SRE puede ayudarte a sentir más satisfacción con la manera en que tu organización
lleva a cabo las operaciones de TI.
42
Google y la SRE
Usuarios
Developers Operaciones
Servicio
Figura 1: Los desarrolladores quieren agregar funciones nuevas al servicio, pero el personal operativo
quiere mantener su confiabilidad minimizando los cambios
Lo que se necesita es encontrar una manera clara de manejar esta tensión, con objetivos bien definidos
y consensuados por los desarrolladores y el personal operativo. Esto es exactamente lo que
proporcionan los objetivos de nivel de servicio (SLO). Cada SLO define una meta, como un tiempo de
actividad del 99.5%, para un servicio. Fundamentalmente, los SLO están centrados en el usuario: se
basan en aspectos que le interesan al usuario del servicio, como la disponibilidad o la latencia.
4
Para medir si se está cumpliendo con un SLO, cada uno tiene asociado indicadores de nivel de servicio
(SLI). Y tanto los SLO como los SLI pueden determinar el cumplimiento de un acuerdo de nivel de
servicio (SLA). La Figura 2 ofrece una perspectiva de cómo funcionan en conjunto los SLO, SLI y SLA.
Users
SLA: 99%
Developers Operations
Service
SLO: 99.5%
SLI x SLI y
Figura 2: Cada SLI mide cierto aspecto de un SLO, mientras que un SLA define un acuerdo comercial con los
usuarios de un servicio
Los SLO proporcionan un medio para que los desarrolladores y el personal operativo acuerden el
objetivo de confiabilidad de un servicio. El porcentaje de SLO también define un acuerdo más preciso:
determina la cantidad de minutos que una aplicación puede estar inactiva. Por ejemplo, un SLO de
disponibilidad del 99.5% implica que el servicio puede no estar disponible durante el 0.5% de cada mes,
lo que equivale a unas 3 horas y 40 minutos. Este tiempo de inactividad permitido es el porcentaje de
error aceptable del servicio. Acordar un SLO también implica ponerse de acuerdo sobre una cantidad
precisa de tiempo en que el servicio puede fallar para cumplir ese SLO.
El porcentaje de error aceptable de un servicio proporciona una manera concreta de equilibrar los
incentivos de los desarrolladores y del personal operativo y, al mismo tiempo, mantener el enfoque
sobre las necesidades de los usuarios del servicio. Debido a que cada lanzamiento de una función
nueva pone en riesgo la confiabilidad del servicio, los desarrolladores pueden seguir agregando
funciones nuevas siempre que el servicio se mantenga dentro del porcentaje de error aceptable, es
decir, siempre que el servicio continúe cumpliendo con su SLO. Sin embargo, debido a que los errores
en las funciones recientemente lanzadas provocan un tiempo de inactividad que reduce el porcentaje
de error aceptable, el lanzamiento de estas funciones puede ralentizarse o incluso detenerse por
completo. Por ejemplo, una organización que normalmente realiza implementaciones de funciones
nuevas dos veces al día podría cambiar a una única implementación diaria cuando se agote la mitad del
porcentaje de error aceptable de un mes. Luego, podría pasar a implementaciones una vez por semana
cuando se utilicen las tres cuartas partes del porcentaje de error aceptable, y así llegar a detener la
implementación por completo durante el mes cuando el porcentaje de error aceptable sea nulo. Este
proceso se autorregula: cuando el porcentaje de error aceptable expira, los desarrolladores no pueden
lanzar más funciones a menos que trabajen con el personal operativo.
Otras cuestiones que vale la pena conocer sobre los SLO y los porcentajes de error
aceptables:
• Debido a que los SLO se basan en aspectos que les interesan a los usuarios del
servicio, la elección de los valores de SLO es básicamente una decisión comercial.
En otras palabras, el propietario de un servicio debe determinar el nivel de
confiabilidad que mejor se adapte a sus requisitos comerciales. Esto significa que
los SLO no son solo una medida tecnológica. También proporcionan un lenguaje
común para que el propietario de un servicio, sus desarrolladores y personal
operativo consideren y acuerden las necesidades de confiabilidad del servicio.
• Incluso si los líderes de tu organización desean alcanzar una confiabilidad del
100%, no esperes que este objetivo sea posible. Independientemente de tu
servicio, este depende de otros servicios, y ya que ninguno de ellos brinda una
confiabilidad perfecta, tú tampoco puedes hacerlo. De igual importancia,
aumentar la confiabilidad implica gastar cantidades cada vez mayores de dinero.
El mejor SLO para un servicio equilibra la confiabilidad y los costos.
• El uso de SLO y porcentajes de error aceptables requiere la aceptación de los
líderes. Por ejemplo, si un equipo de desarrolladores agota el porcentaje de error
aceptable del mes, el personal operativo debe contar con la autoridad necesaria
para frenar nuevas implementaciones en pos de garantizar la confiabilidad. La
única forma de obtener esta autoridad en la mayoría de las organizaciones es
logrando que los líderes respalden primero el enfoque de la SRE.
Los SLO y porcentajes de error aceptables definidos le permiten a tu organización
pensar claramente acerca del nivel de confiabilidad (y, por lo tanto, de riesgo) que es
adecuado para un servicio y sus usuarios. Es decir, son una parte fundamental de la SRE.
68
Los principios y las prácticas de la SRE pueden mejorar tanto la velocidad como la
confiabilidad de las nuevas funciones
En ocasiones, suele haber cierta compensación entre el lanzamiento rápido de nuevas
funciones y el mantenimiento de la confiabilidad. El uso de SLO, SLI y porcentajes de error
aceptables puede ayudarte a administrar esta compensación de manera eficaz.
Sin embargo, el informe Estado de DevOps de DevOps Research and Assessment (DORA)
indica que esto no siempre es así. Según DORA, «Nuestra investigación ha demostrado
consistentemente que la velocidad y la estabilidad son resultados que se potencian
mutuamente». En otras palabras, estas se pueden mejorar al mismo tiempo.
Una razón importante para esto es que la necesidad de trabajar en conjunto en los SLO le
brinda al equipo operativo la oportunidad de ponerse de acuerdo con los desarrolladores al
principio del diseño de un nuevo servicio. Esto convierte a la SRE en una parte del proceso de
desarrollo, y ayuda a los desarrolladores y el personal operativo a colaborar de manera más
eficaz.
Por otra parte, gestionar el equilibro entre la velocidad y la confiabilidad es una parte
importante de la SRE. Sorprendentemente, podrás avanzar rápido sin dañar nada.
7
Google Cloud está diseñado para respaldar la SRE, incluida la reducción del
trabajo pesado. Aquí tienes dos ejemplos importantes:
• Google Cloud admite ampliamente la automatización y la
infraestructura como código. Todos sus servicios exponen API que te
permiten controlar tu entorno de manera programática. Si bien puedes
utilizar nuestra herramienta gcloud de línea de comandos o IU Console
para crear y administrar los recursos de Google Cloud de manera
interactiva, todo lo que permite esta herramienta también se puede
hacer mediante llamadas de API. Este enfoque hace posible escribir
código que automatiza el trabajo pesado siempre que sea posible.
• La suite de operaciones de Google Cloud brinda maneras sencillas de
comprender lo que sucede con los servicios. Cloud Tracing, por
ejemplo, le brinda al personal operativo una visión clara de todo lo que
sucede a medida que las solicitudes pasan por tus servicios, mientras
que Cloud Logging permite un examen detallado de lo que hace un
servicio. Y junto con la compatibilidad con SLO mencionada
anteriormente, Cloud Monitoring ofrece diversas maneras de
comprender lo que sucede. Por ejemplo, puedes usar el lenguaje de
consulta de Monitoring para examinar una variedad de datos de series
temporales sobre un servicio en ejecución.
10
Adoptar la SRE
Al igual que con cualquier cambio organizacional, la adopción de prácticas de SRE implica cambiar partes de tu
cultura. La SRE se define por un conjunto de principios y preceptos del comportamiento, de modo que lidiarás con
personas y procesos, no con herramientas.
Debido a que la SRE se compone en gran parte de un conjunto de prácticas independientes, puedes comenzar
por donde lo consideres más necesario. Por ejemplo, la mayoría de los grupos operativos de TI sufren el trabajo
pesado en cantidad, de modo que su identificación y reducción suelen ser un buen punto de partida. Si
administras servicios que necesitan equilibrar la velocidad de lanzamiento de nuevas funciones y la confiabilidad,
también tiene sentido adoptar los SLO y los porcentajes de error aceptables. Darle valor a las operaciones desde
un principio aporta valor real. Se pueden agregar otros aspectos de la SRE, como los procesos post mortem y la
planificación de la capacidad, siempre que tengan sentido para ti. Dado que la SRE fomenta la mejora continua,
espera iterar en estos cambios a medida que adquieras más experiencia.
Próximos pasos
La SRE no se trata solo de SLO y otras herramientas.
Comienza con una mentalidad, una manera de
pensar cómo llevar adelante las operaciones.
Adoptar esta mentalidad implica invertir en tu
personal operativo, lo que impulsa un cambio
cultural que te permitirá tener éxito con este nuevo
enfoque.
Al fin y al cabo, la SRE se refiere en esencia a la
realización de cambios incrementales que
gradualmente mejoran la vida de tu personal
operativo, los desarrolladores y los usuarios de tus
servicios. No lo dudes: comienza hoy mismo.
Más información
What is Site Reliability Engineering (SRE)?
The SRE Book: Site Reliability Engineering: How Google Runs
Production Systems
Creating SLOs with Google Cloud Monitoring
Training Site Reliability Engineers: What Your Organization
Needs to Create a Learning Program
SRE at Google: Our complete list of Customer Reliability
Engineering (CRE) life lessons
Suite de operaciones de Google Cloud