Topics Devops ¿Qué es un ingeniero de confiabilidad del sitio?

¿Qué es un ingeniero de confiabilidad del sitio?


Los ingenieros de confiabilidad del sitio (SRE) tienen un amplio conocimiento de la tecnología detrás del sitio web o la aplicación de su organización. También entienden las necesidades y requisitos comerciales de sus clientes.

Ingeniero de confiabilidad del sitio

Un ingeniero de confiabilidad del sitio (SRE) es quien aplica los principios básicos de la informática y la ingeniería de software para diseñar y desarrollar sistemas informáticos escalables, distribuidos y confiables. El término, acuñado por Google, se refiere a tratar las operaciones de manera similar a un problema de software, ya que tiene como objetivo desarrollar sistemas de software a gran escala para proporcionar soluciones automatizadas a problemas operativos complejos.

En esencia, un ingeniero de confiabilidad del sitio se basa en un conjunto de prácticas de desarrollo que integran aspectos de la informática y la ingeniería de software en las operaciones, con el objetivo de mejorar el flujo de trabajo diario, así como la eficiencia y fiabilidad del sistema. En esencia, los ingenieros de confiabilidad del sitio (SRE) son responsables de proporcionar, proteger y desarrollar los sistemas y servicios de software de una empresa.

En este artículo, exploraremos las actividades diarias de los ingenieros de confiabilidad del sitio, el valor que aportan a los equipos de DevOps y a las empresas, así como sus principales responsabilidades. También profundizaremos en cómo medir la confiabilidad del sitio y explicaremos la diferencia entre los ingenieros de confiabilidad del sitio y DevOps. Finalmente, este artículo explorará la ingeniería de confiabilidad del sitio como una opción profesional.

¿Qué hace un ingeniero de confiabilidad del sitio?

Los ingenieros de fiabilidad del sitio realizan muchas actividades diferentes y dividen su tiempo entre tareas de administración del sistema y desarrollo de software. En general, gestionan varios proyectos, configuran la infraestructura y asisten a reuniones de ingeniería.Las tareas de administración de sistemas generalmente incluyen mantener la confiabilidad y el rendimiento, solucionar problemas y errores, automatizar tareas, responder a incidentes y gestionar las responsabilidades bajo demanda de guardia.

En cuanto a las tareas de desarrollo, los ingenieros de fiabilidad del sitio dedican una gran parte de su tiempo a desarrollar procesos o metodologías basados en infraestructura que serán utilizados por los ingenieros de software en el equipo de fiabilidad del sitio o en entornos multifuncionales. Por ejemplo, podrían desarrollar un proceso para el monitoreo continuo del rendimiento y la latencia del servicio.En el ciclo de desarrollo, los ingenieros de confiabilidad del sitio trabajan en estrecha colaboración con los gerentes de producto y sus equipos, garantizando que la visión establecida para un producto sea compatible con los requisitos no funcionales del sistema, es decir, rendimiento, latencia, disponibilidad y seguridad. También colaboran con los equipos de ingeniería en la fase de desarrollo del proceso de construcción para garantizar una eficiencia óptima en la entrega.

Qué aportan los ingenieros de confiabilidad del sitio a una organización

Al aplicar una mentalidad rigurosa de ingeniería de software a la administración de sistemas, los ingenieros de confiabilidad del sitio actúan como un nexo entre el desarrollo de software y las operaciones. Los ingenieros de confiabilidad del sitio generan y documentan información crucial específica del campo y del proyecto, y garantizan que sea accesible. Ofrecen un sólido manual de pautas operativas que elimina la necesidad de trabajo práctico y la redundancia. Los mejores ingenieros de confiabilidad del sitio logran un equilibrio entre impulsar un crecimiento constante del producto y mantener la fiabilidad para los clientes.

A través de la rigurosa aplicación de los principios de ingeniería de software a las operaciones, los ingenieros de confiabilidad del sitio incrementan significativamente la confiabilidad del software en los productos de la organización.

¿Cuáles son las responsabilidades laborales de un ingeniero de confiabilidad del sitio?

Un ingeniero de confiabilidad del sitio (SRE) es responsable de mantener la fiabilidad del sistema. Esto implica facilitar respuestas automatizadas, optimizadas y eficientes a errores, así como reducir el margen de error humano a gran escala. Los ingenieros de confiabilidad del sitio dedican gran parte de su tiempo a eliminar puntos críticos, configurar herramientas internas, establecer y probar puntos de referencia del sistema. También desarrollan y supervisan pipelines de ingeniería robustos para garantizar la operatividad diaria del producto. Los ingenieros de confiabilidad del sitio trabajan estrechamente con los equipos de desarrollo, y aplican un enfoque de ingeniería de software para abordar los desafíos operativos y mejorar la estabilidad del sistema.

En términos generales, son responsables del rendimiento, la disponibilidad, la confiabilidad, la eficiencia, la gestión de cambios, la supervisión y la respuesta a emergencias de un sistema. Estas son otras tareas fundamentales de los SRE:

  • Supervisión de indicadores de nivel de servicio (SLI) y definición de objetivos de nivel de servicio (SLO): los SRE facilitan la definición de la SLI adecuados para conseguir un rendimiento eficiente mediante una correcta utilización de los recursos y la disminución de errores. También establecen SLO para revisar objetivos internos, como la alta disponibilidad.

  • Evaluación de riesgos y presupuesto para errores: son responsables de establecer el objetivo de confiabilidad para los sistemas, incluso asumiendo riesgos calculados en el lanzamiento subsecuente de productos.

  • Supervisión de resultados: la gestión de tickets, el registro de eventos y las alertas (que indican distintos niveles de acciones humanas necesarias) son tareas críticas de los SRE.

  • Previsión de la demanda y planificación de la capacidad: los proyectos requieren evaluaciones minuciosas para planificar la demanda futura, las interrupciones y emergencias. Un SRE trabaja en conjunto con el gerente de producto para realizar estas tareas.

  • Colaboración: los SRE deben colaborar con numerosos equipos diversos, difundir las prácticas recomendadas y revisar las decisiones más adecuadas en términos de confiabilidad para mejorar el desarrollo de productos entre departamentos.

  • Elaboración de retrospectivas: los informes retrospectivos ayudan al equipo a aprender de los incidentes para prevenir que vuelvan a ocurrir.

Cómo medir la confiabilidad del sitio

La confiabilidad del sitio generalmente se mide en tres dimensiones.

En primer lugar, se encuentran los SLI, que se utilizan para medir el uso del sistema a nivel general, las disminuciones del rendimiento, las interrupciones, los errores, el tráfico y varios otros factores. Los SLI están directamente vinculados a la experiencia del usuario: si los indicadores no son favorables, la satisfacción del cliente se ve afectada.

En segundo lugar, se encuentran los SLO, que definen el nivel objetivo de confiabilidad para un producto o servicio. Por ejemplo, si tenemos un SLI que requiere que la latencia de las solicitudes sea inferior a 500 ms en los últimos 15 minutos con un percentil del 95 %, un SLO del 99 % necesitaría que el SLI sea del 99 %. Estos son objetivos internos que el equipo de confiabilidad del sitio y las partes interesadas internas (incluidos los desarrolladores y gerentes de producto) deben acordar.

Por último, se encuentra el Acuerdo de nivel de servicio (SLA). Este puede ser un acuerdo implícito o explícito a nivel empresarial entre una empresa y sus clientes, señalando las consecuencias si la organización no cumple con el SLA. También pueden incluir presupuestos de errores, que miden el riesgo que puede asumir un SRE al proporcionar servicios, como mantenimiento y mejoras, sin comprometer los SLA.

Comparación entre ingenieros de confiabilidad del sitio e ingenieros de DevOps

La diferencia entre ambos roles radica principalmente en que los ingenieros de confiabilidad del sitio centran sus esfuerzos en mejorar la disponibilidad y la fiabilidad del sistema, mientras que los ingenieros de DevOps orientan su trabajo hacia la velocidad y la automatización del desarrollo y la implementación.

Los ingenieros de confiabilidad del sitio deben escribir e implementar software de manera eficiente, al tiempo que investigan la fiabilidad de su código e e implementan soluciones innovadores para corregir errores. Mientras que los ingenieros de DevOps buscan automatizar los procesos y monitorear a lo largo del ciclo de vida del producto, los SRE minimizan los riesgos al evaluar las redundancias y acelerar el crecimiento.

Cómo convertirse en ingeniero de confiabilidad del sitio

Para convertirse en ingeniero de confiabilidad del sitio, un profesional de la tecnología necesita algunos años de experiencia y conocimientos en uno o más lenguajes de programación, como Python, Ruby o Java. También debe contar con experiencia en generación de script de shell, en el uso de sistemas de control de versiones como Git con GitLab, y en la automatización de pruebas continuas y pipelines de integración continua y entrega continua (CI/CD).

Además, los candidatos potenciales a SRE deben tener conocimientos en bases de datos SQL y NoSQL. También es recomendable contar con experiencia en contenedorización, como Docker y Kubernetes.

Conclusión

La ingeniería de confiabilidad del sitio se centra en el diseño y desarrollo de sistemas informáticos escalables, distribuidos y fiables. Su jornada laboral se dedica a realizar tareas de administración del sistema y al desarrollo de software. Al aportar una mentalidad de ingeniería de software a la administración de sistemas, actúan como un nexo entre el desarrollo de software y las operaciones.

La ingeniería de confiabilidad del sitio es una profesión variada, gratificante y lucrativa.

¿Todo listo para comenzar?

Descubra lo que su equipo puede hacer con una plataforma de DevSecOps unificada.