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

Copiar URL

La ingeniería de confiabilidad del sitio (SRE) es un enfoque de ingeniería de software para las operaciones de TI. Los equipos de SRE utilizan el software como una herramienta para gestionar los sistemas, solucionar los problemas y automatizar las tareas operativas.

La SRE asigna las tareas que siempre han realizado los equipos de operaciones, muchas veces de forma manual, a los ingenieros o a los equipos de operaciones, que utilizan el software y la automatización para resolver los problemas y gestionar los sistemas de producción. 

Esta clase de ingeniería es una práctica valiosa para diseñar sistemas de software adaptables y muy confiables. Permite  usar el código para gestionar sistemas de gran tamaño, lo cual brinda una mayor capacidad de ajuste y sostenibilidad a los administradores de sistemas (sysadmins) que gestionan muchísimos equipos. 

El concepto de ingeniería de confiabilidad de sitio proviene del equipo de ingeniería de Google y se le atribuye a Ben Treynor Sloss. 

La SRE permite que los equipos encuentren el equilibrio entre el lanzamiento de funciones nuevas y la garantía de que sean confiables para los usuarios.

En este contexto, la estandarización y la automatización son dos elementos importantes del modelo de SRE. Los ingenieros de confiabilidad del sitio buscan la forma de mejorar y automatizar las tareas operativas.

En este sentido, la SRE permite mejorar la confiabilidad del sistema hoy y a medida que evolucione con el transcurso del tiempo. 

Además, respalda la transición de los equipos de un enfoque tradicional respecto de las operaciones de TI a uno de la nube.

Descubre el enfoque de la SRE de Red Hat

Para ser ingeniero de confiabilidad del sitio, es necesario contar con trayectoria en administración de sistemas, en desarrollo de software con experiencia adicional en operaciones, o en operaciones de TI con habilidades de desarrollo de software. 

Los equipos de SRE están a cargo de la implementación, la configuración y la supervisión del código. También se ocupan de la disponibilidad, la latencia, la gestión de los cambios, la respuesta ante emergencias y la gestión de la capacidad de los servicios en producción.

Además, definen el lanzamiento de las funciones nuevas con los acuerdos de nivel de servicio (SLA), los cuales determinan la confiabilidad del sistema mediante los indicadores de nivel de servicio (SLI) y los objetivos de nivel de servicio (SLO). 

Por un lado, los SLI miden los aspectos específicos sobre los niveles de servicio proporcionados. Los más importantes son la latencia de solicitudes, la disponibilidad, la tasa de errores y el rendimiento del sistema. Por el otro, los SLO dependen del valor o el rango deseado para un nivel de servicio específico que se basa en los SLI.

Por lo tanto, los SLO para la confiabilidad del sistema requerida se determinan en función del tiempo de inactividad que se considera aceptable, el cual se denomina "estimación de errores" y representa el límite máximo de interrupciones y errores permitidos. 

Con la SRE no se espera una confiabilidad del 100 %, sino que se planifican y se prevén las fallas.

Una vez que se haya establecido la estimación de errores, es posible que el equipo de desarrollo alcance su límite cuando lance una función nueva. Al utilizar este recurso junto con el SLO, puede determinar si debe lanzar un producto o un servicio según la estimación de errores disponible.

Si un servicio está dentro de los parámetros de estimación de errores permitidos, el equipo de desarrollo puede lanzarlo cuando lo desee. Sin embargo, si el sistema tiene demasiados errores o sufre interrupciones más prolongadas de lo que se prevé en la estimación, no se podrán realizar lanzamientos nuevos hasta que se ubique dentro de los parámetros.   

El equipo de desarrollo lleva a cabo pruebas de operaciones automatizadas para garantizar la confiabilidad. 

Los ingenieros de confiabilidad del sitio dividen su trabajo entre las tareas operativas y las de proyecto. Según las prácticas recomendadas de Google para la SRE, pueden dedicar hasta un 50 % del tiempo a las operaciones y, para no excederse, deben estar bajo supervisión.  

El resto del tiempo deben dedicarlo a las tareas de desarrollo, como crear funciones nuevas, ajustar el sistema e implementar la automatización.

El equipo de desarrollo puede ocuparse del resto del trabajo operativo y de los servicios con bajo rendimiento para evitar que los ingenieros pierdan demasiado tiempo en las operaciones de una aplicación o un servicio. 

La automatización es una parte esencial de las funciones de los ingenieros de confiabilidad del sitio. Si deben ocuparse de un problema en reiteradas ocasiones, probablemente automaticen la solución. 

Para la SRE es fundamental mantener el equilibrio entre las operaciones y las tareas de desarrollo. 

Lista de verificación: Cinco formas en que los ingenieros de confiabilidad del sitio pueden ayudarte

Recursos de Red Hat

DevOps es un modo de abordar la cultura, la automatización y el diseño de las plataformas para generar mayor valor empresarial y capacidad de respuesta mediante la prestación de servicios rápidos y de alta calidad. Se puede considerar a la SRE como una implementación de DevOps.

Tanto DevOps como la SRE se basan en las relaciones y la cultura del trabajo en equipo, y tienen como objetivo acercar los equipos de desarrollo con los de operaciones para prestar servicios con mayor rapidez. 

Con las prácticas de DevOps y la SRE, se pueden obtener beneficios como ciclos de vida de desarrollo de aplicaciones más rápidos, calidad y confiabilidad mejores de servicios y menor tiempo de TI por cada aplicación desarrollada.

No obstante, la diferencia entre SRE y DevOps es que la primera depende de los ingenieros de confiabilidad del sitio del equipo de desarrollo, quienes también deben tener experiencia en operaciones, para resolver los problemas de comunicación y de flujo de trabajo.

Es decir, en las funciones de la SRE se combinan tanto las habilidades de los equipos de desarrollo como las de los equipos de operaciones, ya que se superponen las responsabilidades. 

La SRE puede ayudar a los equipos de DevOps cuyos desarrolladores tengan demasiadas tareas operativas y necesiten a un especialista en dicho campo. 

Con respecto a la creación de código y el diseño de funciones nuevas, DevOps se centra en aportar eficiencia a todo el proceso de desarrollo, mientras que la SRE se ocupa de equilibrar la confiabilidad del sitio con la creación de funciones nuevas. 

Las plataformas de aplicaciones modernas que se basan en la tecnología de contenedores, Kubernetes y los microservicios son fundamentales para las prácticas de DevOps, ya que permiten ofrecer servicios de software seguros e innovadores.

Aprende a implementar DevOps con una plataforma de Kubernetes

Si bien la ingeniería de plataformas y la de confiabilidad del sitio se ocupan de la creación y el mantenimiento de los sistemas, la diferencia entre ambas radica en el enfoque de cada práctica. Los ingenieros de confiabilidad del sitio se centran en los equipos de operaciones de TI y los ayudan a utilizar el software como herramienta para gestionar los sistemas, resolver los problemas y automatizar las tareas.

En cambio, los ingenieros de plataformas se centran en los equipos de desarrollo y los ayudan a crear plataformas para gestionar los sistemas, resolver los problemas y automatizar los procesos de la etapa de desarrollo. 

Red Hat OpenShift para los ingenieros de plataformas

La SRE se basa en la automatización de las tareas operativas de rutina y la estandarización en todo el ciclo de vida de una aplicación. Red Hat® Ansible® Automation Platform es una plataforma integral y completa que permite que los equipos de SRE automaticen diversas tareas para volverse más ágiles, mejorar la colaboración e impulsar el crecimiento. Además, ofrece seguridad y soporte para las personas que trabajan en las áreas financieras, operativas y técnicas de la empresa. 

Específicamente, Ansible Automation Platform ofrece: 

  • La organización de la infraestructura en entornos locales y de nube para las instancias, el enrutamiento, el equilibrio de carga, los firewalls y mucho más 
  • La optimización de la infraestructura para ajustar los recursos de la nube y agregar o eliminar otros recursos como la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) según sea necesario 
  • Las operaciones de la nube, como la implementación de aplicaciones con los canales de integración y distribución continuas (CI/CD), la ejecución de parches en el sistema operativo y el mantenimiento
  • La continuidad empresarial, incluidas la copia y el traslado de los recursos fuera de la nube, la creación y la gestión de políticas para los backups, y la gestión de interrupciones y fallas

Red Hat Ansible Automation Platform: guía para principiantes

La SRE también depende de una base que permite desarrollar las aplicaciones directamente en la nube.Los contenedores de Linux® permiten que haya un entorno unificado para el desarrollo, la distribución, la integración y la automatización.

Por otro lado, Kubernetes es la forma moderna de automatizar las operaciones de los contenedores de Linux. Permite que los equipos gestionen los clústeres que los ejecutan en las nubes públicas, privadas o híbridas con mayor eficiencia.

Red Hat® OpenShift® es una plataforma de Kubernetes lista para las empresas que respalda las iniciativas de la SRE y ayuda a los equipos a transformar los procesos y la cultura, de manera que la infraestructura de TI se modernice y las empresas presten un mejor servicio a los clientes y logren sus objetivos. 

Prueba Red Hat OpenShift sin costo

Hub

Blogs de Red Hat

Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

Diferencias entre la ingeniería de plataformas y DevOps

Descubre las diferencias entre la ingeniería de plataformas y DevOps para adoptar un enfoque que responda a tus objetivos.

What is multi-cloud GitOps?

GitOps is a set of principles that guide your workflow and enables you to implement continuous deployment (CD) for cloud native applications. It helps you manage your cluster configuration and application deployments by introducing automation to a previously manual process.

¿Qué es una plataforma interna para desarrolladores?

Una plataforma interna para desarrolladores (IDP) consiste en un conjunto de tecnologías y herramientas de autoservicio que los desarrolladores necesitan para crear e implementar código.

DevOps: lecturas recomendadas

Artículos relacionados