Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
La ingeniería de confiabilidad del sitio (SRE) abarca principios y prácticas que integran la ingeniería de software con la infraestructura y las operaciones de TI [1] para mejorar la escalabilidad y la confiabilidad del sistema. SRE comparte similitudes con DevOps , que se centra en el desarrollo de software y las prácticas operativas.
El campo de SRE se originó en Google con Ben Treynor Sloss, [2] [3] quien fundó un equipo de confiabilidad del sitio en 2003. [4] El concepto se expandió dentro de la industria del desarrollo de software, lo que llevó a varias empresas a emplear ingenieros de confiabilidad del sitio. [5] Para marzo de 2016, Google tenía más de 1,000 ingenieros de confiabilidad del sitio en el personal. [6] Los equipos de SRE dedicados son comunes en las empresas de desarrollo web más grandes. El equipo de DevOps a veces cumple el doble propósito de SRE en empresas medianas y pequeñas. [5] Las organizaciones que han adoptado el concepto incluyen Airbnb , Dropbox , IBM , [7] LinkedIn , [8] Netflix , [6] y Wikimedia . [9]
La ingeniería de confiabilidad del sitio como función laboral puede ser realizada por colaboradores individuales u organizada en equipos, responsables de una combinación de lo siguiente dentro de una organización de ingeniería más amplia: disponibilidad del sistema , latencia , rendimiento , eficiencia, gestión de cambios , monitoreo , respuesta a emergencias y planificación de capacidad . [10] Los ingenieros de confiabilidad del sitio a menudo tienen antecedentes en ingeniería de software , ingeniería de sistemas o administración de sistemas . [11] Los enfoques de SRE incluyen automatización, diseño de sistemas y mejoras en la resiliencia del sistema . [11]
El conjunto de principios y prácticas de la ingeniería de confiabilidad de sitios puede ser realizado por cualquier persona. Si bien otros miembros del equipo deben llevar a cabo buenas prácticas, como en el caso de la ingeniería de seguridad , una empresa puede eventualmente contratar especialistas e ingenieros para el trabajo. [ cita requerida ]
SRE se considera una implementación específica de DevOps ; [12] SRE se centra específicamente en la construcción de sistemas confiables, mientras que DevOps cubre un alcance más amplio. [13] [14] [15] A pesar de tener diferentes enfoques, algunas empresas han cambiado el nombre de sus equipos de operaciones a equipos SRE con pocos cambios significativos. [5]
Se han realizado múltiples intentos de definir una lista canónica de principios de ingeniería de confiabilidad del sitio, pero si bien no hay consenso, las siguientes características generalmente se incluyen en la mayoría de las definiciones: [1] [16]
Las prácticas de ingeniería de confiabilidad del sitio también varían ampliamente, pero la lista a continuación se considera relativamente común como implementada al menos parcialmente:
Los equipos de SRE colaboran con otros departamentos dentro de las organizaciones para implementar los principios de manera eficaz. A continuación se presenta una descripción general de las prácticas comunes: [18]
Kitchen Sink se refiere al alcance expansivo y a menudo ilimitado de servicios y flujos de trabajo que supervisan los equipos de SRE. A diferencia de los roles tradicionales con límites claramente definidos, los SRE tienen varias responsabilidades, incluida la optimización del rendimiento del sistema, la gestión de incidentes y la automatización. Este enfoque holístico permite a los SRE abordar múltiples desafíos, lo que garantiza que los sistemas funcionen de manera eficiente y evolucionen en respuesta a las demandas y complejidades cambiantes. Al adoptar esta perspectiva integral, los equipos de SRE están destinados a promover la mejora continua y la resiliencia.
Los equipos de SRE de infraestructura se centran en mantener y mejorar la confiabilidad de los sistemas que respaldan los flujos de trabajo de otros equipos. Si bien a veces colaboran con los equipos de ingeniería de plataformas, su principal responsabilidad es garantizar el tiempo de actividad, el rendimiento y la eficiencia. Los equipos de plataformas, por otro lado, desarrollan principalmente el software y los sistemas que se utilizan en toda la organización. Si bien la confiabilidad es un objetivo para ambos, los equipos de plataformas priorizan la creación y el mantenimiento de las herramientas y los servicios que utilizan las partes interesadas internas, mientras que los equipos de SRE de infraestructura tienen la tarea de garantizar que esos sistemas funcionen sin problemas y cumplan con los estándares de confiabilidad.
Los equipos utilizan una variedad de herramientas para medir, mantener y mejorar la confiabilidad del sistema. Estas herramientas desempeñan un papel en la supervisión del rendimiento, la identificación de problemas y la facilitación del mantenimiento proactivo. Por ejemplo, Nagios Core se utiliza ampliamente para la supervisión y alerta del sistema, mientras que Prometheus (software) es popular para recopilar y consultar métricas en entornos nativos de la nube. Al aprovechar estas herramientas, los equipos de SRE pueden garantizar un rendimiento óptimo y responder rápidamente a posibles desafíos de confiabilidad.
Los equipos de SRE dedicados a productos o aplicaciones específicos son comunes en las grandes organizaciones [ cita requerida ] . Estos equipos son responsables de garantizar la confiabilidad, la escalabilidad y el rendimiento de los servicios clave. En las empresas más grandes, es habitual tener varios equipos de SRE, cada uno de ellos centrado en diferentes productos o aplicaciones, lo que garantiza que cada área reciba atención especializada para cumplir con los objetivos de rendimiento y disponibilidad.
En un modelo integrado, los SRE individuales o pequeños pares de SRE se integran en equipos de ingeniería de software. Estos SRE trabajan en estrecha colaboración con los desarrolladores y aplican principios básicos de SRE, como la automatización, la supervisión y la respuesta a incidentes, directamente al ciclo de vida del desarrollo de software. Este enfoque ayuda a mejorar la confiabilidad, el rendimiento y la colaboración entre los SRE y los desarrolladores.
Los equipos de consultoría de SRE se especializan en asesorar a las organizaciones sobre la implementación de los principios y prácticas de SRE. Estos equipos, que suelen estar compuestos por SRE experimentados con amplia experiencia en diversas implementaciones, brindan información y orientación adaptadas a las necesidades específicas de la organización. Cuando trabajan directamente con los clientes, a estos SRE se los suele denominar "ingenieros de confiabilidad del cliente".
En las grandes organizaciones que han adoptado SRE, es común un modelo híbrido [ cita requerida ] . Este modelo incluye varias implementaciones, como múltiples equipos de SRE de productos/aplicaciones dedicados a abordar las necesidades de confiabilidad únicas de diferentes productos. Un equipo de SRE de infraestructura puede colaborar con un grupo de ingeniería de plataforma para lograr objetivos de confiabilidad compartidos para una plataforma unificada que admita todos los productos y aplicaciones.
Desde 2014, la organización USENIX ha organizado la conferencia anual SREcon, que reúne a ingenieros de confiabilidad de sitios de diversas industrias. Esta conferencia es una plataforma para que los profesionales compartan conocimientos, exploren las mejores prácticas y discutan las tendencias en ingeniería de confiabilidad de sitios. [19]
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace )