stringtranslate.com

DevOps

DevOps es una metodología en la industria del desarrollo de software y de TI. Utilizado como un conjunto de prácticas y herramientas, DevOps integra y automatiza el trabajo de desarrollo de software ( Dev ) y operaciones de TI ( Ops ) como un medio para mejorar y acortar el ciclo de vida de desarrollo de sistemas . [1]

Historia

A finales de los 80 y principios de los 90 comenzaron a aparecer propuestas para combinar metodologías de desarrollo de software con conceptos de implementación y operaciones. [2]

Alrededor de 2007 y 2008, aquellos dentro de las comunidades de desarrollo de software y TI expresaron su preocupación de que la separación entre las dos industrias, donde uno escribía y creaba software completamente separado de aquellos que implementaban y respaldaban el software, estaba creando un nivel fatal de disfunción dentro de la industria. industria. [3]

En 2009, se celebró la primera conferencia denominada DevOps Days en Gante , Bélgica . La conferencia fue fundada por el consultor, director de proyectos y practicante ágil belga Patrick Debois. [4] [5] La conferencia ahora se ha extendido a otros países. [6]

En 2012, Alanna Brown en Puppet Labs publicó por primera vez un informe llamado "Estado de DevOps" . [7] [8]

A partir de 2014, Nicole Forsgren , Gene Kim, Jez Humble y otros publicaron el informe anual sobre el estado de DevOps . Afirmaron que la adopción de DevOps se estaba acelerando. [9] [10] También en 2014, Lisa Crispin y Janet Gregory escribieron el libro More Agile Testing, que contiene un capítulo sobre pruebas y DevOps. [11] [12]

En 2016, las métricas de DORA para el rendimiento (frecuencia de implementación, tiempo de entrega de cambios) y estabilidad (tiempo medio de recuperación, tasa de fallas de cambios) se publicaron en el informe Estado de DevOps. [7] Sin embargo, la metodología y las métricas de la investigación fueron criticadas por los expertos. [13] [14] [15] [16]

Ver también

Muchas de las ideas fundamentales para las prácticas de DevOps están inspiradas o reflejan otras prácticas bien conocidas, como el ciclo Planificar-Hacer-Verificar-Actuar de Lean y Deming , hasta The Toyota Way y el enfoque ágil de descomponer componentes y tamaños de lotes. [17] Contrariamente al enfoque prescriptivo "de arriba hacia abajo" y al marco rígido de ITIL en la década de 1990, DevOps es "de abajo hacia arriba" y flexible, ya que fue creado por ingenieros de software para sus propias necesidades. [18]

Ágil

Las motivaciones de lo que se ha convertido en DevOps moderno y varias prácticas estándar de DevOps, como la creación y prueba automatizadas, la integración continua y la entrega continua , se originaron en el mundo ágil, que data (informalmente) de la década de 1990 y formalmente de 2001. Los equipos de desarrollo ágiles utilizan métodos como la programación extrema no podrían "satisfacer al cliente mediante la entrega temprana y continua de software valioso" [19] a menos que asumieran la responsabilidad de las operaciones y la infraestructura de sus aplicaciones, automatizando gran parte de ese trabajo. Debido a que Scrum surgió como el marco ágil dominante a principios de la década de 2000 y omitió las prácticas de ingeniería que formaban parte de muchos equipos ágiles, el movimiento para automatizar operaciones y funciones de infraestructura se separó de Agile y se expandió a lo que se ha convertido en DevOps moderno. Hoy en día, DevOps se centra en la implementación de software desarrollado, ya sea que se desarrolle utilizando metodologías orientadas a Agile u otras metodologías.

ArchOps

ArchOps presenta una extensión para la práctica de DevOps, a partir de artefactos de arquitectura de software , en lugar de código fuente, para la implementación de operaciones. [20] ArchOps afirma que los modelos arquitectónicos son entidades de primera clase en el desarrollo, implementación y operaciones de software.

Integración y entrega continua (CI/CD)

La automatización es un principio fundamental para lograr el éxito de DevOps y CI/CD es un componente crítico. [21] Además, la colaboración y la comunicación mejoradas entre y dentro de los equipos ayudan a lograr un tiempo de comercialización más rápido , con riesgos reducidos. [22]

Ingeniería de confiabilidad del sitio

En 2003, Google desarrolló la ingeniería de confiabilidad del sitio (SRE), un enfoque para lanzar nuevas funciones continuamente en sistemas de alta disponibilidad a gran escala manteniendo al mismo tiempo una experiencia de usuario final de alta calidad. [23] Si bien SRE es anterior al desarrollo de DevOps, generalmente se los considera relacionados entre sí.

Sistema de producción Toyota, pensamiento lean, kaizen

El sistema de producción de Toyota, también conocido bajo el acrónimo TPS, fue la inspiración del pensamiento lean con su enfoque en la mejora continua , kaizen , flujo y lotes pequeños. El principio del cable andon para crear retroalimentación rápida, enjambrar y resolver problemas proviene del TPS. [24] [25]

DevSecOps, desplazando la seguridad hacia la izquierda

DevSecOps es una mejora de DevOps para permitir que las prácticas de seguridad se integren en el enfoque de DevOps. A diferencia del modelo tradicional de equipo de seguridad centralizado, cada equipo de entrega está capacitado para incluir los controles de seguridad correctos en la entrega de su software. Las prácticas y pruebas de seguridad se realizan en una etapa más temprana del ciclo de vida de desarrollo, de ahí el término " desplazamiento a la izquierda ". La seguridad se prueba en tres áreas principales: estática, composición de software y dinámica.

En las pruebas dinámicas, también llamadas pruebas de caja negra , el software se prueba sin conocer sus funciones internas. En DevSecOps, esta práctica puede denominarse prueba dinámica de seguridad de aplicaciones (DAST) o prueba de penetración. El objetivo es la detección temprana de defectos, incluidos los scripts entre sitios y las vulnerabilidades de inyección SQL . Los tipos de amenazas son publicados por el proyecto de seguridad de aplicaciones web abiertas , por ejemplo su TOP10, [26] y por otros organismos.

DevSecOps también se ha descrito como un cambio cultural que implica un enfoque holístico para producir software seguro mediante la integración de educación en seguridad, seguridad por diseño y automatización de la seguridad. [27]

Enlaces adicionales

Cambio cultural

Las iniciativas DevOps pueden crear cambios culturales en las empresas [28] al transformar la forma en que las operaciones , los desarrolladores y los evaluadores colaboran durante los procesos de desarrollo y entrega. [29] Lograr que estos grupos trabajen de manera cohesiva es un desafío crítico en la adopción empresarial de DevOps. [30] [31] DevOps tiene tanto que ver con la cultura como con la cadena de herramientas. [32]

Microservicios

Aunque en principio es posible practicar DevOps con cualquier estilo arquitectónico, el estilo arquitectónico de microservicios se está convirtiendo en el estándar para construir sistemas implementados continuamente. Un servicio de tamaño pequeño permite que surja la arquitectura de un servicio individual a través de una refactorización continua. [33]

Automatización de DevOps

También respalda la coherencia, la confiabilidad y la eficiencia dentro de la organización y, por lo general, está habilitado mediante un repositorio de código compartido o control de versiones. Como plantea la hipótesis del investigador de DevOps Ravi Teja Yarlagadda: "A través de DevOps, se supone que todas las funciones se pueden llevar a cabo, controlar y gestionar en un lugar central utilizando un código simple". [34]

Automatización con control de versiones.

Muchas organizaciones utilizan el control de versiones para impulsar las tecnologías de automatización de DevOps, como máquinas virtuales , contenedorización (o virtualización a nivel de sistema operativo ) y CI/CD . El documento "DevOps: desarrollo de una cadena de herramientas en el ámbito bancario" señala que con equipos de desarrolladores trabajando en el mismo proyecto, "todos los desarrolladores necesitan realizar cambios en la misma base de código y, a veces, editar incluso los mismos archivos. Para un trabajo eficiente, hay Tiene que ser un sistema que ayude a los ingenieros a evitar conflictos y conservar el historial del código base", [35] con el sistema de control de versiones Git y la plataforma GitHub como ejemplos.

GitOps

GitOps evolucionó a partir de DevOps. El estado específico de la configuración de implementación está controlado por la versión . Debido a que el control de versiones más popular es Git , el enfoque de GitOps lleva el nombre de Git . Los cambios en la configuración se pueden gestionar mediante prácticas de revisión de código y se pueden revertir mediante el control de versiones. Básicamente, se realiza un seguimiento de todos los cambios en un código, se marcan como favoritos y se puede facilitar la realización de actualizaciones en el historial. Como explica Red Hat , "la visibilidad del cambio significa la capacidad de rastrear y reproducir problemas rápidamente, mejorando la seguridad general". [36]

Referencias

  1. ^ Courtemanche, Meredith; Mel, Emily; Gills, Alexander S. "¿Qué es DevOps? La guía definitiva". Objetivo tecnológico . Consultado el 22 de enero de 2023 .
  2. ^ Chapman, M., Gatti, N: Un modelo de ciclo de vida del servicio, Actas de TINA '93, págs. I-205 – I-215, septiembre de 1993.
  3. ^ Atlassiano. "Historia de DevOps". Atlassiano . Consultado el 23 de febrero de 2023 .
  4. ^ Mezak, Steve (25 de enero de 2018). "Los orígenes de DevOps: ¿Qué hay en un nombre?". devops.com . Consultado el 6 de mayo de 2019 .
  5. ^ Debois, Patrick (9 de octubre de 2008). "Ágil 2008 Toronto". "Suficiente información documentada" . Consultado el 12 de marzo de 2015 .
  6. ^ Debois, Patricio. "Días de DevOps". Jornadas DevOps . Consultado el 31 de marzo de 2011 .
  7. ^ ab Alana Brown; Nicole Forsgren; Jez Humilde; Nigel Kersten; Gene Kim (2016). "Informe sobre el estado de DevOps de 2016" (PDF) . Puppet Labs, DORA (DevOps Research . Consultado el 6 de mayo de 2019 .
  8. ^ "Marioneta - Alanna Brown". Laboratorios de marionetas . Consultado el 27 de abril de 2019 .
  9. ^ Nicole Forsgren; Gene Kim; Nigel Kersten; Jez humilde (2014). "Informe sobre el estado de DevOps de 2014" (PDF) . Puppet Labs, IT Revolution Press y ThoughtWorks . Consultado el 27 de abril de 2019 .
  10. ^ "Informe sobre el estado de DevOps de 2015" (PDF) . Laboratorios de marionetas, Pwc, IT Revolution Press. 2015. Archivado desde el original (PDF) el 6 de mayo de 2019 . Consultado el 6 de mayo de 2019 .
  11. ^ "Pruebas más ágiles" (PDF) . Octubre de 2014 . Consultado el 6 de mayo de 2019 .
  12. ^ Crispín, Lisa; Gregory, Janet (octubre de 2014). Pruebas más ágiles. Addison-Wesley. ISBN 9780133749571. Consultado el 6 de mayo de 2019 .
  13. ^ Turner, Graham (20 de noviembre de 2023). "Informe: los ingenieros de software enfrentan reacciones violentas por informar irregularidades". DÍGITO . Consultado el 5 de enero de 2024 .
  14. ^ Saran, acantilado. "Los ingenieros de software se preocupan por hablar - Computer Weekly". ComputerWeekly.com . Consultado el 5 de enero de 2024 .
  15. ^ "El 75% de los ingenieros de software enfrentaron represalias la última vez que denunciaron irregularidades: ETHRWorldSEA". ETHRWorld.com .
  16. ^ Cummins, acebo. "Holly Cummins en X". X.com . Consultado el 5 de enero de 2024 .
  17. ^ Klein, Brandon Thorin (1 de mayo de 2021). "DevOps: una comprensión concisa de la filosofía y la ciencia de DevOps". Osti.gov . doi :10.2172/1785164. OSTI  1785164. S2CID  236606284.
  18. ^ "La historia y evolución de DevOps | Tom Geraghty". 5 de julio de 2020 . Consultado el 29 de noviembre de 2020 .
  19. ^ "Principios detrás del Manifiesto Ágil". agilemanifesto.org . Consultado el 6 de diciembre de 2020 .
  20. ^ Castellanos, Camilo; Correal, Darío (15 de septiembre de 2018). "Ejecución de modelos arquitectónicos para análisis de Big Data". Arquitectura de software . Apuntes de conferencias sobre informática. vol. 11048. págs. 364–371. doi :10.1007/978-3-030-00761-4_24. ISBN 978-3-030-00760-7.
  21. ^ Humilde, Jez; Farley, David (2011). Entrega continua: lanzamientos de software confiables a través de la automatización de compilación, prueba e implementación . Pearson Education Inc. ISBN 978-0-321-60191-9.
  22. ^ Chen, Lianping (2015). "Entrega continua: enormes beneficios, pero también desafíos". Software IEEE . 32 (2): 50–54. doi :10.1109/MS.2015.27. S2CID  1241241.
  23. ^ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (abril de 2016). Ingeniería de confiabilidad del sitio . Medios O'Reilly. ISBN 978-1-4919-2909-4.
  24. ^ Analizando el ADN de DevOps, Brent Aaron Reed, Willy Schaub, 14 de noviembre de 2018.
  25. ^ Gene Kim; Patricio Debois; John Willis; Jezz humilde (2016). El manual de DevOps: cómo crear agilidad, confiabilidad y seguridad de primer nivel en organizaciones tecnológicas .
  26. ^ "TOP10 DE OWASP". Archivado desde el original el 8 de junio de 2023 . Consultado el 8 de junio de 2023 .
  27. ^ Wilson, Glenn (diciembre de 2020).'DevSecOps: una guía para líderes para producir software seguro con flujo, retroalimentación y mejora continua comprometidos'. Repensar la prensa. ISBN 978-1781335024.
  28. ^ Análisis de tecnologías emergentes: DevOps es un cambio cultural, no una tecnología (informe). Garner.
  29. ^ Loukides, Mike (7 de junio de 2012). "¿Qué es DevOps?". Medios O'Reilly .
  30. ^ "Glosario de TI de Gartner: devops". Gartner . Consultado el 30 de octubre de 2015 .
  31. ^ Jones, Esteban; Noppen, Joost; Lettice, Fiona (21 de julio de 2016). Actas del segundo taller internacional sobre DevOps consciente de la calidad - QUDOS 2016 (PDF) . págs. 7-11. doi :10.1145/2945408.2945410. ISBN 9781450344111. S2CID  515140.
  32. ^ Mandi Walls (25 de septiembre de 2015). "Construyendo una cultura DevOps". O'Reilly.
  33. ^ Chen, Lianping; Ali Babar, Mahoma (2014). "Conferencia IEEE/IFIP 2014 sobre arquitectura de software". La 11ª Conferencia de Trabajo IEEE/IFIP sobre Arquitectura de Software (WICSA 2014) . IEEE. págs. 195-204. doi :10.1109/WICSA.2014.45. ISBN 978-1-4799-3412-6.
  34. ^ Teja Yarlagadda, Ravi (9 de marzo de 2021). "DevOps y sus prácticas". SSRN  3798877.
  35. ^ Morisio, Maurizio (16 de abril de 2021). DevOps: desarrollo de una cadena de herramientas en el ámbito bancario. Politécnico de Turín (laurea) . Consultado el 16 de agosto de 2021 .
  36. ^ "¿Qué es GitOps?". www.redhat.com . Consultado el 30 de marzo de 2023 .