La Ingeniería de Confiabilidad del Sitio o Site Reliability Engineering (SRE) pisa fuerte en el mundo del desarrollo del software. Como nexo entre desarrollo y operaciones, constituye una parte necesaria de cualquier organización que apunta a funcionar como una máquina bien aceitada. En síntesis, el SRE intenta solucionar un problema muy extendido en las empresas: los silos.
Sin embargo, muchos desconocen los requisitos laborales para convertirse en un ingeniero de confiabilidad del sitio. Con esta guía podrás interiorizarte acerca de las herramientas requeridas para triunfar en esta función, ya que se trata de un puesto crucial y de alta cualificación.
Entonces, veamos qué se necesita para convertirse en un ingeniero de confiabilidad del sitio, un rol que sirve de nexo entre los equipos.
¿Qué hace un ingeniero de confiabilidad del sitio?
Un ingeniero de confiabilidad del sitio es una mezcla entre un desarrollador y un experto en operaciones de IT. Cuenta con grandes habilidades para identificar puntos ciegos y debilidades estructurales en infraestructuras y sistemas.
Pero, como no sucede con muchos profesionales de operaciones de IT, también tienen la aptitud, voluntad y autoridad para escribir y desplegar proactivamente código que aborde problemas potenciales y resuelva o evite incidentes.
Con este tipo de enfoque, el SRE se conecta con la cultura de DevOps, que prioriza la eficiencia, y corrige muchos puntos ciegos de este marco. Sólo con tomarte el tiempo para rastrear los inconvenientes de confiabilidad y crear un equipo acorde, resolverás cuestiones fundamentales en una fase más temprana del proceso de desarrollo del software.
Seguramente escuchaste a los equipos de IT quejarse de que los desarrolladores no son responsables de las aplicaciones creadas. La ingeniería de confiabilidad del sitio soluciona este tema al impulsar al área de operaciones a expresar sus inquietudes al otro sector, generando un bucle de feedback constante entre ambos. Así, el SRE añade valor de forma previsora y retroactiva, fomentando un vínculo mucho más estrecho y cohesivo entre todos.
¿Existe una dualidad entre DevOps vs. SRE? No son excluyentes: las empresas que utilizan DevOps también adoptan un enfoque SRE para mejorar la confiabilidad. La razón principal es que esta última facilita una mayor visibilidad y más cantidad de métricas de las aplicaciones dinámicas que dependen de la automatización. Así que no están separados el uno del otro. De hecho, comparten metodologías que pueden aumentar su eficacia.
Habilidades y cualificaciones de los SRE
El ingeniero de confiabilidad del sitio debe contar con varias habilidades para cumplir con el trabajo. Algunas de ellas son:
- Crear software y sistemas a la vez que gestionan la infraestructura de la plataforma y las aplicaciones.
- Saber codificar, normalmente en una variedad de lenguajes, tanto de forma estructurada como OOP. Los m Ruby, C/C++ y JavaScript.
- Tener una licenciatura en Informática o alguna disciplina equivalente altamente técnica. Es preferible haber trabajado en Ingeniería Técnica.
- Comprender una variedad de sistemas operativos -en especial, Linux, pero también otros- ya que los utilizará con regularidad.
- Saber gestionar el proceso de integración continua/desarrollo continuo (CI/CD). Probablemente se le encargará la creación de este canal desde cero.
- Contar con experiencia en tecnologías distribuidas basadas en la nube como Ceph, HDFS, NFS y S3, así como marcos de gestión de recursos dinámicos (como Kubernetes, Mesos o Yarn).
- Disponer de profundos conocimientos de control de versiones (como Git) y herramientas de monitoreo, como Grafana, así como de diversas bases de datos (como NoSQL y MySQL).
- Gestionar y asociarse con equipos de desarrollo a través de ciclos de pruebas y lanzamientos exigentes.
- Y por último, están las habilidades blandas que necesita dominar: comunicarse eficazmente con distintas personas, equipos y en múltiples situaciones. No hay cualificaciones reales para estas habilidades, pero el candidato sabrá si no las tiene o, peor aún, lo sabrán los empleadores.
Funciones y responsabilidades cotidianas de un ingeniero de confiabilidad del sitio
Antes de averiguar si el trabajo es para ti, necesitas conocer cuáles son las responsabilidades cotidianas de un ingeniero de confiabilidad del sitio:
- Crear servicios de software para DevOps, ITOps y equipos de atención al cliente. Esto significa que trabajarás de forma proactiva para facilitar las tareas al personal de IT y de soporte. Te encargarás de generar herramientas internas para gestionar incidentes.
- Resolver casos de escalado de soporte. Si bien verás menos incidentes críticos en producción, esta seguirá siendo una parte importante de tu trabajo diario. Además, al contar con los conocimientos requeridos sobre lo que ocurre en el proceso de desarrollo del software, te convertirás en un referente a la hora de orientar al personal y a las herramientas hacia donde más se necesitan.
- Hacer que las rotaciones y los procesos de guardia sean los más adecuados. Además, el ingeniero de confiabilidad del sitio suele actualizar los libros de ejecución, las herramientas y la documentación, lo que les permite (ya sea a ellos o a otros) responder a los incidentes de forma proactiva.
- Documentar los conocimientos para que sean compartidos. Como los SRE están expuestos a todo el ciclo de desarrollo, pueden aprovechar y crear artículos a lo largo de un proceso histórico. Esto también significa que los equipos disponen de bases de conocimiento cuando las precisen.
- Realizar revisiones posteriores a los incidentes. Los ingenieros de confiabilidad ayudan a los involucrados a reflexionar sobre los incidentes y aprender de sus errores, para que no vuelva a ocurrir lo mismo. Esta capacidad de cortar los problemas de raíz resulta una de las mayores optimizaciones del ciclo de vida del desarrollo del software.
- Ofrecer soluciones que aprovechen las mejores herramientas de automatización disponibles. Y, en algunos casos, la entrega de aplicaciones internas que implican una mejora en la experiencia de los empleados al reducir el trabajo no especializado.
Consejos para preparar una entrevista para el cargo de SRE
Si bien no todas las organizaciones funcionan de la misma manera, hay algunas preguntas recurrentes que puedes esperar en una entrevista para el cargo de SRE.
Consideremos este ejercicio de juego de roles y guiémonos por algunas posibles respuestas.
“¿Cuál es la diferencia entre SRE y DevOps?”
La respuesta a esta pregunta resultará diferente dependiendo de ciertos factores. Por ejemplo, algunas organizaciones contarán con sus propios equipos e ingenieros dedicados a DevOps, mientras que otras simplemente seguirán esos principios como metodología general. En cualquier caso, aprovecha para destacar cómo lograste cerrar la brecha entre el desarrollo y las operaciones, lo cual permitió aumentar la eficiencia general.
“¿Qué es lo más atractivo de convertirse en un ingeniero de confiabilidad del sitio?”
Es importante que demuestres que estás interesado en conseguir el trabajo. Aunque un ingeniero de confiabilidad del sitio no siempre es considerado una profesión interesante, resulta vital y requiere habilidades que poseen pocas personas.
Este es tu momento para hablar en profundidad sobre cómo crearás servicios que mejoren la confiabilidad del sistema y aumenten la satisfacción de clientes y empleados.
Y, de hecho, formar parte de un equipo de SRE es apasionante porque puedes crear un impacto duradero en todo el ciclo de vida del desarrollo, desde los investigadores hasta los usuarios finales.
“¿Existen problemas con tu actual canal de desarrollo?”
Se trata de una pregunta un poco capciosa, en la que el entrevistador intentará determinar tu capacidad para evaluar cómo funciona tu canal de desarrollo y en qué medida puedes tomar decisiones inteligentes para mejorarlo.
En esta pregunta utilizarás todos los puntos destacados de la Ingeniería de Confiabilidad del Sitio, como la posibilidad de identificar los cuellos de botella en esta instancia y el monitoreo de las deficiencias, la comunicación a las partes interesadas de los problemas de confiabilidad y la determinación de los aspectos en los que tu equipo tiene la capacidad de mejorar la resistencia (sin mermar la productividad).
En definitiva, aquí debes demostrar tu capacidad para resolver problemas de alto nivel.
“¿Qué es un éxito para ti y para tu equipo, y cómo lo consigues?”
Esta pregunta evalúa cómo utilizaste las herramientas de monitoreo y cambios. Además, permite que los entrevistadores sepan la forma en que determinas si un sistema se ve "saludable".
Es importante que un equipo de SRE aproveche los resultados internos y externos para juzgar la salud general de un sistema. Por lo tanto, tiene que ser capaz de convertir esos datos en información práctica para el personal técnico y de IT.
“¿Cuál es tu experiencia con lenguajes de programación y otras herramientas?”
Primero querrán conocer tus antecedentes. Porque no te tomarán en un trabajo si no tienes determinados saberes.
“¿Cómo se llevan tus equipos de IT y operaciones?”
También es una pregunta un poco capciosa, porque un ingeniero de confiabilidad del sitio crea vínculos entre áreas que, de otro modo, estarían separadas. Por lo tanto, el entrevistador quiere saber si hiciste bien tu trabajo.
Además, es posible que te pregunten sobre los cuellos de botella de productividad. Así que aprovecha para dar a conocer tus conocimientos de SRE y relatar cómo trabajas para aumentar la eficiencia en todos los ámbitos.
La mayoría de las veces descubrirás que se trata de hacer accesible la información a todas las partes interesadas y de incrementar la visibilidad entre los departamentos.
“¿Cómo es tu sistema de atención continua? ¿Y cómo lo estructurarías idealmente?”
Como mencionamos anteriormente, la eficacia de las guardias y el cuidado de quienes la realizan son algunas de las principales preocupaciones diarias de un ingeniero de confiabilidad del sitio. Por lo tanto, en una entrevista para el cargo de SRE tendrás que demostrar cómo organizarías una experiencia de guardia eficiente y empática.
Cuando te pregunten al respecto, destaca la importancia de ofrecer una experiencia humana. Si bien es cierto que las herramientas y los procesos resultan esenciales, las personas constituyen la principal preocupación. Y no en qué medida la automatización hace que mejoren los tiempos de respuesta o las tasas de resolución.
Resumen
¿Qué aporta la Ingeniería de Confiabilidad del Sitio? Creemos que es un meta-equipo integrado, una colaboración entre áreas que hace que todos empujen hacia la misma dirección. Vivimos en un mundo integrado, y la tecnología no nos aísla sino que nos optimiza. En el desarrollo del software pasa lo mismo.
Otra parte importante del SRE es la autonomía, lo que significa que un ingeniero de confiabilidad del sitio tendrá un grado de libertad e independencia que otras funciones. Si te gusta hacer cambios organizativos o experimentos que conduzcan a una óptima confiabilidad del sistema, ésta es tu carrera. Además, probablemente mejorarás la vida de tus empleados, y eso no es poca cosa.
También aprenderás toda la gama de disciplinas de desarrollo del software y operaciones de IT. Esto significa que no sólo vincularás equipos diversos, sino que desplegarás constantemente tu conjunto de habilidades. Esto te llevará a ser mejor desarrollador, pero también mucho mejor gestor.
Preguntas frecuentes
¿Qué otras denominaciones puede tener un ingeniero de confiabilidad del sitio?
Aparte de ingeniero de confiabilidad del sitio, otros nombres comunes y casi sinónimos para esta función son ingeniero de DevOps, ingeniero de automatización o ingeniero de confiabilidad.
¿Cuál es la diferencia entre un SRE y un ingeniero de software?
Un ingeniero de confiabilidad del sitio es responsable de mantener la confiabilidad. Mientras que un ingeniero de software se centra principalmente en el desarrollo del software, no en los problemas de todo el sistema. Aunque esto no significa que ambas funciones sean independientes y no se superpongan: los dos apuntan a lo mismo, pero se centran en aspectos diferentes del proceso.