¿Qué es la ingeniería de fiabilidad del sitio (SRE)?

La ingeniería de fiabilidad del sitio es el proceso que consiste en utilizar procesos de operaciones y asignarlos al equipo de ingeniería de software para la automatización.

Los equipos de TI buscan continuamente adoptar metodologías de SRE. La ingeniería de fiabilidad del sitio toma las prácticas de operaciones y se las asigna a ingenieros de software para que automaticen las tareas, la resolución de problemas y la gestión de sistemas que llevan a cabo las personas. El equipo de SRE es responsable de la gestión del cambio, la respuesta a emergencias, la supervisión, la disponibilidad, el rendimiento, la latencia, la eficiencia y la planificación de la capacidad de los servicios, generalmente creando software para automatizar los procesos.

SRE es un gran activo para lograr la escalabilidad y la fiabilidad del software, ya que los sistemas se pueden gestionar a través de código, para lograr un equilibrio entre la fiabilidad de un producto y sus características y el lanzamiento de nuevos productos y funcionalidades.

Debemos el término "SRE" a Ben Treynor Sloss, miembro del equipo de Google

Ben Treynor Sloss, miembro de Google, es la mente creadora de SRE, término que describe como "lo que sucede cuando un ingeniero de software se encarga de lo que solía llamarse operaciones". El concepto surgió después de una revisión de los conflictos existentes entre el equipo de operaciones, cuyo objetivo es garantizar que las funciones no causen daños a otros sistemas ni sean perjudiciales para los usuarios finales, y los equipos de desarrollo, que desarrollan nuevas funciones y quieren lanzarlas tan pronto como estén listas para su despliegue. La SRE es la conciliación entre ambas realidades.

Un equipo de ingenieros de Google escribió un libro sobre SRE

Google publicó un libro sobre SRE que está disponible de forma gratuita en línea. Ofrece un profundo análisis sobre la función de SRE y las prácticas recomendadas para su implementación. Son de especial relevancia las partes II y III, sobre los principios y las prácticas respectivamente.

Principios de SRE: los principios fundamentales de SRE, según Google, son los siguientes:

  • Aceptar el riesgo: proporcionar enfoques neutrales para la gestión de servicios mediante presupuestos de errores.
  • Objetivos de nivel de servicio: proporcionar recomendaciones para cada indicador a partir de los acuerdos y examinar cómo la SRE aplica los términos.
  • Eliminar el esfuerzo: dejar atrás las tareas rutinarias y repetitivas que carecen de valor.
  • Supervisión de sistemas distribuidos: evitar carecer de visibilidad sobre lo que está pasando en la organización por razones de fiabilidad.
  • Ingeniería de lanzamientos: encargarse cuidadosamente de los lanzamientos para garantizar que sean coherentes y no causen interrupciones.
  • Simplicidad: un sistema demasiado complejo puede disminuir la fiabilidad y complicar las cosas en vez de simplificarlas.

Prácticas de SRE: la ingeniería de fiabilidad del sitio ejecuta sistemas relacionados para usuarios externos e internos, y es responsable de los servicios. Para un correcto funcionamiento de los servicios es necesario planificar la capacidad, abordar las causas raíz de las interrupciones y desarrollar sistemas de supervisión. La jerarquía que establece Google para un servicio fiable es la siguiente:

  • Producto: la parte más alta de la jerarquía de fiabilidad. El producto debe ser viable y fiable.
  • Desarrollo: la ingeniería de software y el diseño del sistema operan desde dentro de la empresa.
  • Planificación de la capacidad: el equilibro entre la inversión y el resultado garantiza que la capacidad empleada se aprovecha correctamente.
  • Pruebas y procedimientos de lanzamiento: después de comprender lo que ha salido mal, hay que prevenirlo activamente. Es imprescindible analizar con detalle los productos antes de su lanzamiento.
  • Análisis de la causa raíz/balance: crear una cultura en la que no se busque culpabilizar y se fomente abordar la solución de los problemas para evitar incidentes repetidos.
  • Respuesta a incidentes: estar disponible, mantenerse en contacto con los sistemas, resolver los problemas de forma eficaz y planificar con detalle antes de actuar.
  • Supervisión: detectar los problemas antes que el usuario final.
What-is-AIOps-1

La excelencia de SRE requiere experiencia

El candidato ideal para ser un ingeniero de fiabilidad del sitio es alguien con amplia experiencia en software; no se trata de una función de nivel básico. La correcta ejecución de la SRE requiere fluidez en la ingeniería de software y comprensión de sistemas de gran tamaño y complejidad.

SRE es una filosofía

El ingeniero de fiabilidad del sitio necesita tener la mentalidad correcta para el puesto. Las habilidades técnicas son imprescindibles, pero es clave poseer también una comprensión conceptual de las operaciones. Es igual de importante que los ingenieros de SRE conozcan a fondo los procesos tradicionales de desarrollo de software, como que comprendan todos los procesos de la empresa de forma integral y busquen avanzar hacia un sistema fiable.

La SRE debe ser un catalizador para el cambio

Todos los componentes de la empresa deberían procurar ser lo más fiables posible y aplicar los principios clave de la SRE. Aplica un modelo de fiabilidad para cada equipo y tómate el tiempo necesario para analizar cómo la fiabilidad puede adaptarse a cada equipo y afectar a todos los miembros de la empresa.

Funciones y responsabilidades del ingeniero de fiabilidad del sitio

Los nuevos lanzamientos se aprueban en función del rendimiento actual del producto: las aplicaciones generalmente no están operativas todo el tiempo. El equipo de SRE es el encargado de crear un acuerdo de nivel de servicio que defina el sistema y de determinar cómo se utilizará para los usuarios finales. Un aspecto común de los acuerdos de nivel de servicio es el presupuesto de error o el nivel máximo de umbral para interrupciones y errores.

Los ingenieros de fiabilidad del sitio pueden crear código

Los equipos de desarrollo y SRE comparten personal, lo que significa que un ingeniero más es un desarrollador menos y viceversa. El sistema se autorregula para evitar problemas entre los desarrolladores y los ingenieros de fiabilidad del sitio en cuanto a necesidades de personal. Los ingenieros de SRE también pueden codificar y desarrollar, por lo que trabajan bien dentro de equipos de desarrollo.

Los ingenieros de SRE pueden moverse entre proyectos, ya que la SRE fomenta un fuerte sentido de motivación y dedicación para que los miembros del equipo puedan alcanzar sus objetivos y metas personales.

Funciones y responsabilidades comunes de un ingeniero de fiabilidad del sitio

  • Crear software para ayudar a las operaciones y a los equipos
  • Corregir problemas de asignación a instancias superiores
  • Optimizar los procesos de disponibilidad
  • Documentar el conocimiento del equipo
  • Llevar a cabo revisiones tras un incidente

Los ingenieros de fiabilidad del sitio pueden encajar en el centro de las operaciones de TI, en ingeniería de software o el departamento de soporte, y proporcionarán una base sólida y una conexión entre los equipos, lo que contribuye a una retroalimentación continua, la colaboración y la fiabilidad.

Los expertos en fiabilidad del sitio pueden hacer que la SRE funcione en tu empresa

Los ingenieros de fiabilidad del sitio analizan las necesidades generales para guiar a los diferentes equipos hacia un objetivo único.

La automatización es fundamental para la SRE

Buena parte de la responsabilidad del equipo de SRE reside en hacerse cargo de ineficiencias y de cuestiones que pueden automatizarse. Las tareas que consumen mucho tiempo se dejan atrás y la eficiencia aumenta al reducirse el trabajo manual.

La SRE no es solo para empresas tecnológicas

Las prácticas de SRE no solo se deben aplicar en el sector tecnológico. La cultura de ingeniería de fiabilidad del sitio se puede ampliar a sectores como el comercio electrónico, el servicio al cliente o la fabricación.

DevOps es el método para crear y entregar un buen software, combinando el desarrollo y las operaciones de software con la intención de fusionar las operaciones y las funciones de desarrollo. La SRE suele estar más centrada en la parte del desarrollo que en la parte de operaciones de DevOps.

Obtén más información acerca de DevOps
Ofrece operaciones modernas para los equipos de DevOps y SRE

Los contenedores de Linux pueden proporcionar la tecnología necesaria para un desarrollo nativo en la nube, ya que admiten la unificación del entorno para la integración, la automatización, el desarrollo y la entrega. Kubernetes puede automatizar los contenedores necesarios de Linux.

No hay un conjunto de herramientas único y uniforme para la SRE. Sin embargo, es esencial establecer las funciones de SRE dentro de la empresa teniendo en cuenta la automatización para la posibilidad de escalar y replicar.

ServiceNow proporciona un mayor valor gracias a que aúna el trabajo de varios equipos, registra sus microservicios, correlaciona datos observables, proporciona métricas de fiabilidad, automatiza cambios y predice errores; todo ello manteniendo la integridad de las herramientas existentes.

Capacidades que se expanden con tu empresa

Crea tu próximo plan de transformación de SRE con ServiceNow.