La ingeniería de confiabilidad de sitios ( SRE , por sus siglas en inglés) es una disciplina dentro del campo de la ingeniería de software y el soporte de infraestructura de TI que monitorea y mejora la disponibilidad y el rendimiento de los sistemas de software implementados y los servicios de software de gran tamaño (que deben ofrecer tiempos de respuesta confiables ante eventos como implementaciones de software nuevas, fallas de hardware y ataques de ciberseguridad). [ 1 ] Generalmente se enfoca en la automatización y una metodología de infraestructura como código . SRE utiliza elementos de ingeniería de software, infraestructura de TI, desarrollo web y operaciones [ 2 ] para contribuir a la confiabilidad. Es similar a DevOps , ya que ambos tienen como objetivo mejorar la confiabilidad y la disponibilidad de los sistemas de software implementados.
Historia
La ingeniería de confiabilidad de sitios (SRE) se originó en Google con Benjamin Treynor Sloss, [ 3 ] [ 4 ] quien fundó el equipo SRE en 2003. [ 5 ] El concepto se expandió dentro de la industria del desarrollo de software , lo que llevó a varias empresas a emplear ingenieros de confiabilidad de sitios . [ 6 ] Para marzo de 2016, Google tenía más de 1000 ingenieros de confiabilidad de sitios en su personal. [ 7 ] Los equipos SRE dedicados son comunes en las empresas de desarrollo web más grandes . [ 8 ] En las empresas medianas y pequeñas, los equipos DevOps a veces también realizan SRE. [ 6 ] Las organizaciones que han adoptado el concepto incluyen Airbnb , Dropbox , IBM , [ 9 ] LinkedIn , [ 10 ] Netflix , [ 7 ] y Wikimedia . [ 11 ]
Definición
Los ingenieros de confiabilidad de sitios (SRE) son responsables de una combinación de disponibilidad del sistema , latencia , rendimiento , eficiencia, gestión de cambios , monitoreo , respuesta a emergencias y planificación de capacidad . [ 12 ] Los SRE suelen tener experiencia en ingeniería de software , ingeniería de sistemas y/o administración de sistemas . [ 13 ] Los enfoques de los SRE incluyen la automatización , el diseño de sistemas y las mejoras a la resiliencia del sistema . [ 13 ]
SRE se considera una implementación específica de DevOps; [ 14 ] se centra específicamente en la construcción de sistemas confiables, mientras que DevOps abarca un ámbito de operaciones más amplio. [ 15 ] [ 16 ] [ 17 ] A pesar de tener enfoques diferentes, algunas empresas han renombrado sus equipos de operaciones como equipos SRE. [ 6 ]
Principios y prácticas
Las definiciones comunes de las prácticas incluyen (pero no se limitan a): [ 2 ] [ 18 ]
- Automatización de tareas repetitivas para lograr una mayor rentabilidad.
- Definir objetivos de fiabilidad para evitar esfuerzos interminables.
- Diseño de sistemas con el objetivo de reducir los riesgos para la disponibilidad, la latencia y la eficiencia.
- La observabilidad es la capacidad de formular preguntas arbitrarias sobre un sistema sin necesidad de saber de antemano qué preguntar.
Las definiciones comunes de los principios incluyen (pero no se limitan a):
- Gestión del trabajo manual, el trabajo manual se refiere al trabajo operativo manual, repetitivo y automatizable. [ 19 ]
- Definir y medir los objetivos de fiabilidad: SLI , SLO y presupuestos de errores.
- Diseño de sistemas a gran escala no abstractos (NALSD [ 20 ] ) con énfasis en la confiabilidad.
- Diseño e implementación de la observabilidad.
- Definir, probar y ejecutar un proceso de gestión de incidentes .
- Planificación de capacidad .
- Gestión de cambios y versiones, incluyendo CI/CD .
- Ingeniería del caos .
Despliegue
Los equipos SRE colaboran con otros departamentos dentro de las organizaciones para guiar la implementación de los principios mencionados. A continuación se presenta una descripción general de las prácticas comunes: [ 21 ]
Fregadero de cocina
El término "Kitchen Sink" [ 22 ] se refiere al amplio y, a menudo, ilimitado alcance de los 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 diversas responsabilidades, como la optimización del rendimiento del sistema, la gestión de incidentes y la automatización. Este enfoque permite a los SRE abordar múltiples desafíos, garantizando que los sistemas funcionen de manera eficiente y evolucionen en respuesta a las demandas y complejidades cambiantes.
Infraestructura
Los equipos de SRE de infraestructura se centran en mantener y mejorar la fiabilidad de los sistemas que dan soporte a los flujos de trabajo de otros equipos. Si bien a veces colaboran con los equipos de ingeniería de plataforma, su principal responsabilidad es garantizar la disponibilidad, el rendimiento y la eficiencia. Los equipos de plataforma, por otro lado, desarrollan principalmente el software y los sistemas que se utilizan en toda la organización. Aunque la fiabilidad es un objetivo para ambos, los equipos de plataforma priorizan la creación y el mantenimiento de las herramientas y los servicios que utilizan los usuarios internos, mientras que los equipos de SRE de infraestructura se encargan de garantizar que esos sistemas funcionen correctamente y cumplan con los estándares de fiabilidad.
Herramientas
Los equipos de SRE utilizan diversas herramientas con el objetivo de medir, mantener y mejorar la fiabilidad del sistema. Estas herramientas desempeñan un papel fundamental en la monitorización del rendimiento, la identificación de problemas y la facilitación del mantenimiento proactivo. Por ejemplo, Nagios Core se emplea habitualmente para la monitorización y las alertas del sistema, mientras que Prometheus (software) se utiliza con frecuencia para recopilar y consultar métricas en entornos nativos de la nube.
Producto o aplicación
En las grandes organizaciones, es común encontrar equipos SRE dedicados a productos o aplicaciones específicos. [ 21 ] 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 contar con varios equipos SRE, cada uno enfocado en diferentes productos o aplicaciones, lo que garantiza que cada área reciba atención especializada para cumplir con los objetivos de rendimiento y disponibilidad.
Incorporado
En un modelo integrado, los ingenieros de confiabilidad de sitios (SRE) individuales o pequeños equipos de SRE se integran en los equipos de ingeniería de software. Estos SRE colaboran con los desarrolladores, aplicando principios fundamentales de SRE —como la automatización, la monitorización y la respuesta a incidentes— directamente al ciclo de vida del desarrollo de software. Este enfoque busca mejorar la confiabilidad, el rendimiento y la colaboración entre los SRE y los desarrolladores.
Consultante
Los equipos de consultoría SRE se especializan en asesorar a las organizaciones sobre la implementación de principios y prácticas SRE. Generalmente compuestos por ingenieros SRE experimentados con trayectoria en diversas implementaciones, estos equipos brindan información y orientación para necesidades organizacionales específicas. Cuando trabajan directamente con los clientes, a estos ingenieros SRE se les suele denominar "ingenieros de confiabilidad del cliente " [ 23 ] .
En las grandes organizaciones que han adoptado SRE, es común un modelo híbrido . Este modelo incluye diversas implementaciones, como múltiples equipos SRE de producto/aplicación dedicados a abordar las necesidades específicas de confiabilidad de diferentes productos. Un equipo 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.
Industria
Desde 2014, la organización USENIX organiza 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 prácticas efectivas y debatan sobre las tendencias en ingeniería de confiabilidad de sitios. [ 24 ]
Véase también
Referencias
- ↑ "¿Qué es SRE? - Explicación de la ingeniería de confiabilidad del sitio - AWS" . Amazon Web Services, Inc. Consultado el 26 de diciembre de 2024 .
- 1 2 "Evaluar dónde se encuentra su equipo en el espectro SRE" . Blog de Google Cloud . Consultado el 26 de junio de 2021 .
- ↑ Hill, Patrick. "¿Te encanta DevOps? Espera a conocer a SRE" . Atlassian . Consultado el 17 de junio de 2021 .
- ↑ "¿Qué es SRE?" . Red Hat . Consultado el 17 de junio de 2021 .
- ↑ Treynor, Ben (2014). "Claves para SRE" . USENIX SREcon14 . Recuperado el 17 de junio de 2021 .
- 1 2 3 Gossett, Stephen (1 de junio de 2020). "¿Qué es un ingeniero de confiabilidad de sitios? ¿Qué hace un SRE?" . Built In . Recuperado el 17 de junio de 2021 .
- 1 2 Fischer, Donald (2 de marzo de 2016). "¿Son los ingenieros de confiabilidad de sitios los próximos científicos de datos?" . TechCrunch . Archivado del original el 12 de agosto de 2019 . Recuperado el 17 de junio de 2021 .
- ↑ Beres, Cristi (9 de octubre de 2024). "SRE y DevOps: Logrando la combinación perfecta de TI" . Synergo Group .
- ↑ "Ingeniería de confiabilidad de sitios" . IBM Cloud Education . IBM . 12 de noviembre de 2020. Consultado el 21 de junio de 2021 .
- ↑ "Ingeniería de confiabilidad de sitios (SRE)" . engineering.linkedin.com . Consultado el 12 de marzo de 2024 .
- ↑ «SRE-Wikitech» . wikitech.wikimedia.org . Consultado el 17 de octubre de 2021 .
- ↑ Treynor, Ben. "En conversación" (Entrevista). Entrevistado por Niall Murphy. Ingeniería de confiabilidad de sitios de Google.
- 1 2 Jones, Chris; Underwood, Todd; Nukala, Shylaja (junio de 2015). "Contratación de ingenieros de confiabilidad de sitios" (PDF) . ;login: . Vol. 40, n.° 3. págs. 35–39 . Archivado (PDF) del original el 24 de agosto de 2017. Recuperado el 17 de junio de 2021 .
- ↑ Dave Harrison (9 de octubre de 2018). "Entrevista con Betsy Beyer y Stephen Thorne de Google" . Consultado el 24 de julio de 2024 .
- ↑ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall, eds. (2016). Ingeniería de confiabilidad de sitios: Cómo Google gestiona sistemas de producción . Sebastopol, CA: O'Reilly Media . ISBN 978-1-4919-5118-7OCLC 945577030
- ↑ Vargo, Seth; Fong-Jones, Liz (1 de marzo de 2018). ¿Cuál es la diferencia entre DevOps y SRE? (clase SRE implementa DevOps) (Vídeo). Google . Archivado del original el 3 de diciembre de 2019. Recuperado el 8 de marzo de 2018 .
- ↑ "¿Qué es SRE? - Explicación de SRE - AWS" . Amazon Web Services, Inc. Consultado el 5 de noviembre de 2022 .
- ↑ "Principios de SRE de Google: Operaciones de SRE y cómo trabajan los equipos de SRE" . sre.google . Consultado el 28 de junio de 2026 .
- ↑ "Google SRE - ¿Qué es el trabajo arduo en SRE?: Entendiendo su impacto" . sre.google . Consultado el 26 de junio de 2026 .
- ↑ "Google SRE - Diseño de sistemas: Diseño de sistemas grandes no abstractos" . sre.google . Consultado el 26 de junio de 2026 .
- 1 2 "SRE en Google: Cómo estructurar tu equipo SRE" . Blog de Google Cloud . Consultado el 26 de junio de 2021 .
- ↑ "SRE en Google: Cómo estructurar tu equipo SRE" . Blog de Google Cloud . Consultado el 26 de junio de 2026 .
- ↑ "Presentación de Google Customer Reliability Engineering" . Blog de Google Cloud . Consultado el 26 de junio de 2026 .
- ↑ "Usenix SREcon" . USENIX . 2021. Consultado el 17 de junio de 2021 .
Lecturas adicionales
- Limoncelli, Tom; Chalup, Strata R.; Hogan, Christina J. (septiembre de 2014). La práctica de la administración de sistemas en la nube: prácticas DevOps y SRE para servicios web . Vol. 2. Upper Saddle River, NJ: Addison-Wesley . ISBN 978-0133478549OCLC 891786231
- Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard, eds. (2016). Ingeniería de confiabilidad de sitios: cómo Google gestiona sus sistemas de producción . O'Reilly . ISBN 978-1491929124.
- Blank-Edelman, David N., ed. (2018). Buscando SRE: Conversaciones sobre la gestión de sistemas de producción a escala (1.ª ed.). Sebastopol, CA: O'Reilly. ISBN 978-1491978863OCLC 1052565720
- Beyer, Betsy; Murphy, Niall; Kawahara, Kent; Rensin, David; Thorne, Stephen (2018). The Site Reliability Workbook: Practical Ways to Implement SRE . O'Reilly. ISBN 978-1492029502.
- Welch, Nat (2018). SRE en el mundo real: Guía de supervivencia para responder a una interrupción del sistema y maximizar el tiempo de actividad . Packt . ISBN 978-1788628884.
- Adkins, Heather; Beyer, Betsy; Blankinship, Paul; Lewandowski, Piotr; Oprea, Ana; Stubblefield, Adam (2020). Creación de sistemas seguros y fiables: Mejores prácticas para el diseño, la implementación y el mantenimiento de sistemas . O'Reilly. ISBN 978-1-4920-8312-2OCLC 1129470292
- Rosenthal, Casey; Jones, Nora (2020). Ingeniería del caos: resiliencia de sistemas en la práctica . O'Reilly. ISBN 978-1492043867.
Enlaces externos
- Lista de recursos excelentes sobre ingeniería de confiabilidad de sitios (SRE).
- Cómo se enumeran los recursos de SRE
- Boletín semanal de SRE dedicado a SRE
- Página de inicio de SRE en Google para obtener más información sobre SRE en Google.
- Presentaciones de 2003
- Ingeniería de confiabilidad
- Ingeniería de software