Ingeniería de confiabilidad del sitio

Uso de prácticas de ingeniería de software para TI

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.

Historia

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]

Definición

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]

Principios y prácticas

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]

  • Automatización de tareas repetitivas para lograr una mayor rentabilidad
  • Limite la búsqueda de la confiabilidad a los objetivos de confiabilidad predefinidos. Definir estos objetivos de confiabilidad es una de las prácticas de SRE (consulte la lista de prácticas a continuación).
  • Diseño de sistemas con un sesgo hacia la reducción de riesgos de disponibilidad, latencia y eficiencia.
  • Observabilidad, es decir, la capacidad de hacer preguntas arbitrarias sobre un sistema sin tener que saber de antemano qué preguntar. [17]

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:

  • La gestión del trabajo como aplicación del primer principio expuesto anteriormente.
  • Definición y medición de objetivos de confiabilidad: SLI , SLO y presupuestos de error.
  • Diseño de sistemas a gran escala no abstractos (NALSD) con enfoque 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 lanzamientos, incluyendo CI/CD .
  • Ingeniería del caos .

Implementaciones

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]

Fregadero de cocina, también conocido como "Todo SRE"

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.

Infraestructura

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.

Herramientas

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.

Producto o aplicación

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.

Incorporado

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.

Consultante

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.

Industria

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]

Véase también

Referencias

  1. ^ ab "Evaluación de la posición de su equipo en el espectro de SRE". Blog de Google Cloud . Consultado el 26 de junio de 2021 .
  2. ^ Hill, Patrick. "¿Te encanta DevOps? Espera a conocer SRE". Atlassian . Consultado el 17 de junio de 2021 .
  3. ^ "¿Qué es SRE?". Red Hat . Consultado el 17 de junio de 2021 .
  4. ^ Treynor, Ben (2014). "Claves para SRE". USENIX SREcon14 . Consultado el 17 de junio de 2021 .
  5. ^ abc Gossett, Stephen (1 de junio de 2020). "¿Qué es un ingeniero de confiabilidad del sitio? ¿Qué hace un SRE?". Built In . Consultado el 17 de junio de 2021 .
  6. ^ ab Fischer, Donald (2 de marzo de 2016). "¿Son los ingenieros de confiabilidad de sitios los próximos científicos de datos?". TechCrunch . Consultado el 17 de junio de 2021 .
  7. ^ "Ingeniería de confiabilidad del sitio". IBM Cloud Education . IBM . 12 de noviembre de 2020 . Consultado el 21 de junio de 2021 .
  8. ^ "Ingeniería de confiabilidad del sitio (SRE)". engineering.linkedin.com . Consultado el 12 de marzo de 2024 .
  9. ^ "SRE - Wikitecnología". wikitech.wikimedia.org . Consultado el 17 de octubre de 2021 .
  10. ^ Treynor, Ben. "En conversación" (Entrevista). Entrevista realizada por Niall Murphy. Ingeniería de confiabilidad del sitio de Google.
  11. ^ ab Jones, Chris; Underwood, Todd; Nukala, Shylaja (junio de 2015). "Contratación de ingenieros de confiabilidad del sitio" (PDF) . ;login: . Vol. 40, no. 3. págs. 35–39 . Consultado el 17 de junio de 2021 .
  12. Dave Harrison (9 de octubre de 2018). «Entrevista con Betsy Beyer y Stephen Thorne de Google» . Consultado el 24 de julio de 2024 .
  13. ^ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall, eds. (2016). Ingeniería de confiabilidad del sitio: cómo Google ejecuta los sistemas de producción. Sebastopol, CA: O'Reilly Media . ISBN 978-1-4919-5118-7.OCLC 945577030  .
  14. ^ Vargo, Seth; Fong-Jones, Liz (1 de marzo de 2018). ¿Cuál es la diferencia entre DevOps y SRE? (La clase SRE implementa DevOps) (Video). Google .
  15. ^ "¿Qué es SRE? - Explicación de SRE - AWS". Amazon Web Services, Inc. Recuperado el 5 de noviembre de 2022 .
  16. ^ "Los 7 principios de la SRE [y cómo ponerlos en práctica]". www.blameless.com . Consultado el 26 de junio de 2021 .
  17. ^ "Aprenda sobre observabilidad | Honeycomb". docs.honeycomb.io . Consultado el 26 de junio de 2021 .
  18. ^ "SRE en Google: Cómo estructurar tu equipo de SRE". Blog de Google Cloud . Consultado el 26 de junio de 2021 .
  19. ^ "Usenix SREcon". USENIX . 2021 . Consultado el 17 de junio de 2021 .

Lectura adicional

  • 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 de DevOps y SRE para servicios web. Vol. 2. Upper Saddle River, NJ: Addison-Wesley . ISBN 978-0133478549.OCLC 891786231  .
  • Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard, eds. (2016). Ingeniería de confiabilidad del sitio: cómo Google ejecuta los sistemas de producción. O'Reilly . ISBN 978-1491929124.
  • Blank-Edelman, David N., ed. (2018). En busca de la SRE: conversaciones sobre la ejecución de sistemas de producción a escala (1.ª ed.). Sebastopol, CA: O'Reilly. ISBN 978-1491978863.OCLC 1052565720  .
  • Beyer, Betsy; Murphy, Niall; Kawahara, Kent; Rensin, David; Thorne, Stephen (2018). Manual de trabajo sobre confiabilidad del sitio: formas prácticas de implementar la confiabilidad del sitio . O'Reilly. ISBN 978-1492029502.
  • Welch, Nat (2018). SRE en el mundo real: la 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). Construcción de sistemas seguros y confiables: mejores prácticas para diseñar, implementar y mantener sistemas . O'Reilly. ISBN 978-1-4920-8312-2.OCLC 1129470292  .
  • Rosenthal, Jones, Casey, Nora (2020). Ingeniería del caos: resiliencia del sistema en la práctica . O'Reilly. ISBN 978-1492043867.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  • Lista de recursos de ingeniería de confiabilidad de sitios impresionante
  • Cómo se enumeran los recursos de SRE
  • Boletín semanal de SRE Week dedicado a SRE
  • Página de inicio de SRE en Google para obtener más información sobre SRE en Google
  • Centro de aprendizaje de confiabilidad de Komodor K8s con recursos para SRE que trabajan con Kubernetes
  • SRE: ¿Qué necesitas saber para dominar este rol? Lista de recursos
Retrieved from "https://en.wikipedia.org/w/index.php?title=Site_reliability_engineering&oldid=1254463893"