El Site Reliability Engineering (SRE) es un término que ha ganado mucha fuerza en los últimos años. Este fue acuñado por Google y comúnmente se considera una versión ligeramente evolucionada de DevOps. Pero, ¿en qué consiste exactamente?
Es una disciplina que se utiliza para crear sistemas de software fiables que ayudan a administrar grandes sistemas a través del código. Tiene el objetivo de generar una infraestructura resiliente y flujos de trabajo eficientes mediante la aplicación de las mejores prácticas de SRE. Esto también implica el uso de métricas y herramientas de software para monitorear y mejorar las operaciones.
En Talent Hackers hemos recopilado todas las claves sobre la confiabilidad del sitio (SRE), desde sus principios, las diferencias con DevOps y qué necesitas para trabajar en este puesto.
Table of Contents
Principios de la Site Reliability
SRE es una creación de Ben Treynor, el vicepresidente sénior que supervisa las operaciones técnicas de Google. Lo describió como “lo que sucede cuando le pides a un ingeniero de software que diseñe un equipo de operaciones”.
Los SRE permiten que los equipos de desarrollo se implementen más rápido, mientras usan cualquier falla que ocurra como indicadores para mejorar incesantemente la salud general del sistema. Ayuda a convertir los sistemas frágiles en fuertes.
Algunos principios clave son los que hacen que sea tan efectivo. Te contamos cuáles son los más destacados.
Reducir los silos de la organización
Eliminar o reducir los silos de la empresa aporta una comunicación más ágil y supone una mejora en el uso de la información. Uno de los principios más importantes de SRE es asegurarse de que todos los departamentos trabajen en sintonía y con una visión global capaz de reflejar las acciones de cada departamento.
Aceptando los fallos (Presupuesto de error)
Abrazar el riesgo es el primero de los principios de SRE, y por una buena razón. Para mejorar la confiabilidad de un sistema, es crucial medir el impacto de las fallas y preguntarse constantemente “qué pasaría si”.
Ningún sistema es 100 % confiable, en alguna ocasión, algo va a salir mal. Por lo tanto, hay un coste inherente asociado con asegurar la confiabilidad. Este puede ser un coste financiero, de tiempo o simplemente la confianza de un cliente en los servicios.
Una responsabilidad de los SRE es apoyarse en las fallas y los riesgos para aprender cómo pueden hacer que los servicios y sistemas sean más resistentes.
Implementar los cambios de forma gradual
Las empresas desean avanzar de forma rápida y, a menudo, exigen lanzamientos constantes para mantener el producto actualizado. Realizar cambios en los SRE es fundamental, pero siempre que se realicen de manera metódica, lenta y organizada.
Medición de todo
Medir todo es un paso importante en los SRE, ya que necesitan saber que todo está avanzando de manera correcta. Esto tiene que estar diseñado para ser lo más sencillo posible.
Desde medir cuánto tarda en servirse una request o la latencia de las request fallidas, es importante conocer las transacciones por segundo, los errores explícitos e implícitos, hasta definir límites de saturación para evitar que sea demasiado tarde para solucionarlo.
¿Diferencias entre SRE y DevOps?
La ingeniería de confiabilidad del sitio está estrechamente relacionada con DevOps, otro concepto que vincula el desarrollo y las operaciones de software, y puede verse como una generalización de los principios básicos de SRE. En consecuencia, SRE juega un papel valioso en la implementación exitosa de prácticas DevOps.
Tanto DevOps como SRE tienen el objetivo de mejorar el ciclo de lanzamiento ayudando al equipo de desarrollo a entender los procesos del equipo de operaciones. Sin embargo, existen algunas diferencias entre ambos términos.
SRE busca impulsar la automatización y mejorar la calidad del código para crear sistemas de software más escalables, mientras que DevOps trabaja en cerrar la brecha entre los equipos de desarrollo y operación.
En pocas palabras, DevOps pregunta qué hay que hacer, mientras que SRE se centra en cómo conseguirlo.
¿Tiene futuro la ingeniería de la fiabilidad del sitio (SRE)?
Es una profesión con un gran futuro, así lo indican las numerosas ofertas de trabajo sobre Site Reliability en este puesto. De hecho, es un rol cada vez más importante dentro de los negocios con una demanda en alza.
Y es que, los SRE no se centran solo en la infraestructura, sino que también son relevantes en cada etapa del proceso, desde el código fuente hasta la implementación. Esto hace que sea un puesto fundamental, puesto que son un puente entre el desarrollo y las operaciones.
¿Qué necesitas para trabajar como Site Reliability Engineer?
Los especialistas en SRE mejoran la confiabilidad de los sistemas, solucionando todo tipo de problemas. Por lo tanto, es necesario tener ciertas habilidades técnicas y conocimientos en herramientas de automatización, puesto que son responsables de integrar software para mejorar la confiabilidad y escalabilidad de un sistema organizacional.
Si eres un profesional de operaciones de IT o formas parte de un equipo de DevOps, este es un buen momento para pensar en una nueva especialización como SRE. Pero, ¿qué se necesita para trabajar como Site Reliability Engineer?
¿Cómo convertirte en Site Reliability Engineer?
Para poder trabajar como Site Reliability Engineer la opción más popular es tener formación universitaria en Ingeniería Informática o en otras especializaciones relacionadas. Además, es valioso tener conocimientos sobre Sistemas y Desarrollo de Software.
Por otro lado, entre las habilidades complementarias a la formación que se valoran es contar con la capacidad de trabajar en equipo, tener una mentalidad resolutiva que te permita afrontar los problemas, excelente comunicación oral y escrita, así como estar dispuesto a un continuo aprendizaje.
Ahora ya conoces todas las claves sobre la confiabilidad del sitio (SRE), desde sus principios hasta las principales diferencias con DevOps. Un trabajo con una gran oportunidad laboral gracias a su constante aumento de la demanda.