¿Cuál es el papel de un SRE?
Escrito por el Equipo SRE de Magnolia.
Aunque es una posición que pertenece a la tanda de nuevas profesiones, el puesto de Site Reliabiliy Engineer no es precisamente de nuevo cuño. Hace ya 15 años que Ben Treynor, Vicepresidente de Ingeniería de Google, creó el concepto Site Reliability Engineering para solventar los problemas que surgían entre los equipos de desarrollo y los de operaciones. A los primeros le preocupaba desarrollar el código para desplegar nuevas funcionalidades, mientras los segundos estaban pendientes de que el código funcionara y si no lo hacía, lo devolvían a los desarrolladores. La tensión entre ambos equipos era permanente. Los desarrolladores perseguían nuevas características y velocidad, al tiempo que sus compañeros de operaciones buscaban la estabilidad, lo que en ocasiones obligaba a ir más despacio. En definitiva, unos y otros tenían objetivos distintos: funcionalidad vs. estabilidad.
Para limar estas asperezas nació lo que se conoce como la cultura DevOps, un modelo diseñado para derribar las barreras entre los equipos y equilibrar las diferencias entre desarrolladores, sistemas y otras áreas del trabajo en las empresas tecnológicas. Sin entrar en demasiados detalles, en resumen, las prácticas DevOps implican intentar reducir los problemas de la organización, entender que errar es parte del proceso, implementar los cambios de forma continua y gradual, utilizar herramientas de aprovisionamiento, de automatización de procesos, y, por supuesto, medirlo todo.
En un entorno como el de hoy, cambiante y permanente evolución, la presión por ser cada vez más ágiles en los tiempos de salida al mercado, manteniendo la estabilidad o la fiabilidad de los productos al 100%, va en aumento. La cultura DevOps, que se adopta en los equipos de TI –de los cuales el de SRE forma parte–, tiene como objetivo crear un ambiente colaborativo en función de una meta común, logrando que los departamentos de operaciones y desarrollo estandaricen procesos comunes, así como herramientas ágiles para la entrega de software.
Hoy, tres lustros después de que a Treynor se le ocurriera la idea de crear un puesto denominado Site Reliability Engineer, no hay aún consenso universal sobre cuáles son las funciones que desempeña alguien en esa posición. Depende, fundamentalmente, del tamaño de la empresa, su actividad y de cuáles sean las prioridades de ésta. Por otra parte, aunque la posición es relativamente nueva para el mundo en general, en las empresas tecnológicas adquiere cada vez mayor protagonismo y todas las grandes del sector, como Dropbox, Twitter,
Apple y, por supuesto, el pionero Google, incluyen el puesto entre sus filas.
Como ya hemos mencionado, no hay una descripción del cargo única para el puesto de SRE, lo que sí hay, no obstante, es coincidencia en que el SRE debe asegurar(se) de la disponibilidad, el rendimiento, la monitorización y la respuesta a incidencias de las plataformas y servicios que opera su organización. Los equipos SRE personifican la filosofía DevOps poniendo el foco en los objetivos antes mencionados.
Dentro de las tareas del equipo de SRE está, claramente, la mejora continua de los sistemas a través de la incorporación de nuevos servicios y funcionalidades. Además, por supuesto, de la resolución, cuando ocurren incidencias, de los problemas subyacentes para garantizar que todo vuelva rápidamente a la normalidad. Dada la escala a la que trabajan normalmente los equipos de SRE, es prácticamente imposible que no haya incidentes de vez en cuando. Sin embargo, hay una manera de que los mismos incidentes no se repitan: el postmortem. Este proceso que es, en rigor, una autopsia de lo ocurrido permite a los miembros del equipo de SRE formalizar el proceso de aprendizaje a partir de los errores o fallos del sistema. El concepto es bien conocido en el sector tecnológico y de acuerdo a la definición de John Lunney y Sue Lueder “es un registro escrito de un incidente, su impacto, las acciones tomadas para mitigarlo o resolverlo, la(s) causa(s) raíz y las acciones de seguimiento para evitar que el incidente vuelva a ocurrir”. En cualquier caso, es una parte importante del trabajo de los equipos de SRE.
En el caso de Magnolia, el equipo de SRE tiene la función de ejecutar y operar sistemas complejos a gran escala para clientes internos y externos en la nube. Quienes lo conforman son personas proactivas e innovadoras que proporcionan diversos enfoques de ingeniería de software para resolver los desafíos que plantea tanto a nivel operativo como a nivel de desarrollo y mantenimiento de infraestructura. Cualquiera que forme parte de ese equipo desempeña un papel importante en el desarrollo de los productos y servicios de la empresa.
El SRE en Magnolia trabaja en el corazón de nuestro sistema de producción, supervisando el desempeño del servicio y que todo esté en orden, definiendo y administrando la infraestructura como código (IaC) en la nube, mejorando los pipelines de CI/CD, construyendo los sistemas de monitorización e implementando los sistemas de aprovisionamiento y orquestación.
Además, los miembros del equipo de SRE colaboran en el diseño, construcción y despliegue de servicios escalables, en las revisiones de la arquitectura, en las pruebas de vulnerabilidad y en las revisiones de seguridad.
Para entrar a formar parte de este equipo hace falta tener un grado en Informática o en un campo técnico relacionado, o experiencia práctica equivalente, además de experiencia comprobada con infraestructura en la nube (AWS y Terraform), herramientas de administración de configuración (Ansible), entrega continua y tecnologías de contenedores (Docker, Kubernetes).
En una posición de SRE es muy importante la capacidad de análisis y solución de problemas distribuidos en la producción a gran escala. Es importante tener experiencia en programación con uno o más lenguajes relevantes: Java, Python, Bash, Go, JavaScript, así como en la operación, optimización y escalado de bases de datos SQL, tecnología de contenedores y clústeres gestionados con Kubernetes.
Hay que estar familiarizado con los estándares de seguridad y operación, así como con las mejores prácticas sobre datos personales. Y en Magnolia, además valoramos mucho las habilidades de comunicación sólidas y la pasión por lo que hacemos.