La ingeniería de confiabilidad del sitio ( SRE ) es un conjunto de principios y prácticas [1] que incorpora aspectos de la ingeniería de software y los aplica a problemas de infraestructura y operaciones . [2] Los principales objetivos son crear sistemas de software escalables y altamente fiables . [2] La ingeniería de confiabilidad del sitio está estrechamente relacionada con DevOps , un conjunto de prácticas que combinan el desarrollo de software y las operaciones de TI, y SRE también se ha descrito como una implementación específica de DevOps. [2] [3]
Historia
El campo de la ingeniería de confiabilidad del sitio se originó en Google con Ben Treynor Sloss, [4] [5] quien fundó un equipo de confiabilidad del sitio después de unirse a la empresa en 2003. [6] En 2016, Google empleó a más de 1,000 ingenieros de confiabilidad del sitio. [7] Después de originarse en Google en 2003, el concepto se extendió a la industria de desarrollo de software en general y, posteriormente, otras empresas comenzaron a emplear ingenieros de confiabilidad del sitio. [8] La posición es más común en las empresas web más grandes, ya que las empresas pequeñas a menudo no operan a una escala que requeriría SRE dedicados. [8] Las empresas que han adoptado el concepto incluyen Dropbox , Airbnb , IBM , [9] y Netflix . [7] Según un informe de 2021 del DevOps Institute, el 22% de las organizaciones en una encuesta de 2.000 encuestados habían adoptado el modelo SRE. [10] [11]
Definición
La ingeniería de confiabilidad del sitio, como función laboral, puede ser realizada por profesionales individuales u organizada en equipos que generalmente son 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 la capacidad . [12] Los ingenieros de confiabilidad del sitio a menudo tienen experiencia en ingeniería de software , ingeniería de sistemas o administración de sistemas . [13] Los enfoques de la ingeniería de confiabilidad del sitio incluyen automatización, diseño de sistemas y mejoras en la resiliencia del sistema . [13]
La ingeniería de confiabilidad del sitio, como un conjunto de principios y prácticas, puede ser realizada por cualquier persona. SRE es similar a la ingeniería de seguridad en la forma en que se espera que cualquier persona contribuya a las buenas prácticas de seguridad, pero una empresa puede decidir eventualmente contratar especialistas para el trabajo. Por el contrario, para proteger los sistemas de Internet, las empresas pueden contratar ingenieros de seguridad y, para definir y garantizar sus objetivos de confiabilidad, las empresas pueden contratar SRE en su lugar.
La ingeniería de confiabilidad del sitio también se ha descrito como una implementación específica de DevOps [2] [3], pero se enfoca específicamente en la construcción de sistemas confiables, mientras que DevOps se enfoca más ampliamente en la infraestructura. [2]
Stephen Gossett escribió en Built In que algunas empresas han cambiado el nombre de sus equipos de operaciones a equipos SRE con pocos cambios significativos. [8] Esto también se percibe como cierto para los equipos de operaciones con el nombre de equipos DevOps.
Principios y practicas
Hay varios intentos de definir una lista canónica de principios de ingeniería de confiabilidad del sitio [14] [15] . Tienen en común algunas características como sigue:
- Automatización o eliminación de cualquier cosa repetitiva que también sea rentable para automatizar o eliminar.
- Evitación para perseguir mucha más fiabilidad de la estrictamente necesaria. Definir lo que es necesario es una práctica en sí misma (consulte la lista a continuación).
- Diseño de sistemas con un sesgo hacia la reducción de riesgos de disponibilidad, latencia y eficiencia.
- Observabilidad, como en la capacidad de poder hacer preguntas arbitrarias sobre su sistema sin tener que saber de antemano lo que quería preguntar. [dieciséis]
Las prácticas de ingeniería de confiabilidad del sitio también varían según la compañía, pero la lista a continuación se ve con relativa frecuencia implementada al menos parcialmente:
- La gestión del trabajo como la implementación del primer principio esbozado anteriormente.
- Definición y medición de objetivos de confiabilidad: SLI , SLO y presupuestos de errores.
- Diseño de sistemas no abstractos a gran escala ( NALSD ) con un enfoque en la confiabilidad.
- Diseñar e implementar la observabilidad.
- Definir, probar y ejecutar un proceso de gestión de incidentes .
- Planificación de capacidad .
- Gestión de cambios y versiones, incluido CI / CD .
- Ingeniería del caos .
Implementaciones
Los equipos de ingeniería de confiabilidad del sitio interactúan con los otros equipos dentro de sus empresas y los principios y prácticas de SRE en diversas formas. Aquí hay una lista de diferentes implementaciones del equipo SRE: [17]
- Kitchen Sink, también conocido como "Everything SRE": el alcance de los servicios o flujos de trabajo cubiertos generalmente no tiene límites.
- Infraestructura: se centra en la confiabilidad de los sistemas detrás de escena que ayudan a que los trabajos de otros equipos sean más eficientes. A menudo se confunden con los equipos de "Plataforma" o los equipos de "Operaciones de plataforma". Los equipos de Infraestructura SRE pueden emparejarse con uno o más equipos de ingeniería de plataforma, pero difieren en que los equipos de Infraestructura SRE se enfocan en realizar la mayor parte, si no todo, del trabajo descrito en la lista de principios y prácticas anterior. Los equipos de plataforma tienden a centrarse en construir la plataforma y, aunque la confiabilidad es deseable, esa no es su única prioridad.
- Herramientas: se centra en herramientas para medir, mantener y mejorar la confiabilidad del sistema.
- Producto / aplicación: equipo SRE para producto y / o aplicación. Algunas grandes empresas tienden a dotar de personal a varios de ellos.
- Integrado: por lo general, practicantes individuales de SRE o parejas integradas dentro de un equipo de ingeniería de software para aplicar la mayoría de los principios y prácticas descritos anteriormente.
- Consultoría: consulte cómo implementar los principios y prácticas de la SRE. Suelen ser SRE experimentados que han trabajado en equipos en una o varias de las implementaciones anteriores. Los SRE de los equipos de SRE de consultoría externa a menudo se denominan "ingenieros de confiabilidad del cliente". Rara vez, o nunca, cambian la configuración o el código del cliente.
Las grandes empresas que han adoptado SRE tienden a tener una combinación de las implementaciones descritas anteriormente, incluidos varios equipos de la misma implementación, por ejemplo, varios equipos de SRE de producto / aplicación para satisfacer demandas específicas de varios productos y un equipo de SRE de infraestructura para emparejarse con una plataforma grupo de ingeniería para cumplir con los objetivos de confiabilidad de una plataforma común para ambos productos / aplicaciones.
Industria
La organización USENIX ha celebrado una conferencia anual SREcon desde 2014 para ingenieros de confiabilidad de sitios en la industria, y también organiza conferencias regionales con temas similares. [18]
Ver también
- Ingeniería del caos
- Computación en la nube
- Centro de datos
- Recuperación de desastres
- Software de alta disponibilidad
- Infraestructura como código
- Operaciones, administración y gestión
- Jefe de operaciones
- Ingeniería de confiabilidad
- Administracion del sistema
Referencias
- ^ "Evaluación de dónde se encuentra su equipo en el espectro SRE" . Blog de Google Cloud . Consultado el 26 de junio de 2021 .
- ^ a b c d e Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall, eds. (2016). Ingeniería de confiabilidad del sitio: cómo Google administra los sistemas de producción . Sebastopol, CA: O'Reilly Media . ISBN 978-1-4919-5118-7. OCLC 945577030 .
- ^ a b 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 .
- ^ Hill, Patrick. "¿Te encanta DevOps? Espera hasta que conozcas 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 . Consultado el 17 de junio de 2021 .
- ^ a b Fischer, Donald (2 de marzo de 2016). "¿Son los ingenieros de confiabilidad del sitio los próximos científicos de datos?" . TechCrunch . Consultado el 17 de junio de 2021 .
- ^ a b c Gossett, Stephen (1 de junio de 2020). "¿Qué es un ingeniero de confiabilidad del sitio? ¿Qué hace un SRE?" . Construido en . Consultado el 17 de junio de 2021 .
- ^ "Ingeniería de confiabilidad del sitio" . IBM Cloud Education . IBM . 12 de noviembre de 2020 . Consultado el 21 de junio de 2021 .
- ^ Oehrlich, Eveline; Groll, Jayne; Garbani, Jean-Pierre (2021). Mejora de las habilidades 2021 Enterprise DevOps SkillsReport (PDF) (Informe). Instituto DevOps . Consultado el 17 de junio de 2021 .
- ^ Oehrlich, Eveline (4 de mayo de 2021). "Lo que se necesita para ser un ingeniero de confiabilidad de sitios" . TechBeacon . Micro Focus . Consultado el 17 de junio de 2021 .
- ^ Treynor, Ben. "En conversación" (entrevista). Entrevistado por Niall Murphy. Ingeniería de confiabilidad del sitio de Google.
- ^ a b Jones, Chris; Underwood, Todd; Nukala, Shylaja (junio de 2015). "Contratación de ingenieros de confiabilidad del sitio" (PDF) . ; entrada: . Vol. 40 no. 3. págs. 35–39 . Consultado el 17 de junio de 2021 .
- ^ "Los 7 principios de la SRE [y cómo ponerlos en práctica]" . www.blameless.com . Consultado el 26 de junio de 2021 .
- ^ "Evaluar dónde se encuentra su equipo en el espectro SRE" . Blog de Google Cloud . Consultado el 26 de junio de 2021 .
- ^ "Aprenda sobre la observabilidad | Panal" . docs.honeycomb.io . 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 2021 .
- ^ "Usenix SREcon" . USENIX . 2021 . Consultado el 17 de junio de 2021 .
Otras lecturas
- Blank-Edelman, David N., ed. (2018). Buscando SRE: Conversaciones sobre la ejecución de sistemas de producción a escala (1 ed.). Sebastopol, CA: O'Reilly Media . ISBN 978-1491978863. OCLC 1052565720 .
- 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 . 2 . Upper Saddle River, Nueva Jersey: Addison-Wesley . ISBN 978-0-13-347854-9. OCLC 891786231 .
enlaces externos
- Impresionante lista de recursos de ingeniería de confiabilidad del sitio
- Cómo enumeran los recursos de SRE
- SRE Boletín semanal semanal dedicado a SRE