
Una cadena de herramientas de DevOps es un conjunto o combinación de herramientas que ayudan en la entrega, el desarrollo y la gestión de aplicaciones de software a lo largo del ciclo de vida del desarrollo de sistemas, según la coordinación de una organización que utiliza prácticas de DevOps .
En general, las herramientas DevOps se adaptan a una o más actividades, lo que respalda iniciativas DevOps específicas: planificar, crear, verificar, empaquetar, lanzar, configurar, monitorear y controlar versiones. [1] [2]
Cadenas de herramientas
En el campo del software , una cadena de herramientas es el conjunto de herramientas de programación que se utiliza para realizar una tarea compleja de desarrollo de software o para crear un producto de software, que normalmente es otro programa informático o un conjunto de programas relacionados. En general, las herramientas que forman una cadena de herramientas se ejecutan de forma consecutiva, de modo que la salida o el estado del entorno resultante de cada herramienta se convierte en la entrada o el entorno de inicio de la siguiente, pero el término también se utiliza para referirse a un conjunto de herramientas relacionadas que no necesariamente se ejecutan de forma consecutiva. [3] [4] [5]
Como DevOps es un conjunto de prácticas que enfatiza la colaboración y comunicación tanto de los desarrolladores de software como de otros profesionales de la tecnología de la información (TI), al mismo tiempo que automatiza el proceso de entrega de software y los cambios de infraestructura, su implementación puede incluir la definición de la serie de herramientas utilizadas en varias etapas del ciclo de vida; debido a que DevOps es un cambio cultural y una colaboración entre el desarrollo y las operaciones, no existe un producto que pueda considerarse una única herramienta DevOps. En cambio, se utiliza una colección de herramientas, potencialmente de una variedad de proveedores, en una o más etapas del ciclo de vida. [6] [7]
Etapas de DevOps
Plan
El plan se compone de dos cosas: “definir” y “planificar”. [8] Esta actividad se refiere al valor empresarial y a los requisitos de aplicación. En concreto, las actividades de “planificación” incluyen:
- Métricas de producción, objetos y retroalimentación
- Requisitos
- Métricas de negocios
- Actualizar métricas de lanzamiento
- Plan de lanzamiento, cronograma y análisis de negocio
- Política y requisitos de seguridad
En estas actividades participará una combinación de personal de TI: propietarios de aplicaciones comerciales, desarrollo de software , arquitectos de software , gestión de lanzamiento continuo , oficiales de seguridad y la organización responsable de gestionar la producción de la infraestructura de TI .
Crear
La creación se compone de la construcción, codificación y configuración del proceso de desarrollo de software . [8] Las actividades específicas son:
- Diseño del software y configuración
- Codificación que incluye calidad y rendimiento del código
- Compilación de software y rendimiento de la compilación
- Candidato de lanzamiento
Las herramientas y los proveedores de esta categoría suelen superponerse con otras categorías. Dado que DevOps trata de romper silos, esto se refleja en las actividades y las soluciones de productos. [ Aclaración necesaria ]
Verificar
La verificación está directamente asociada con la garantía de la calidad de la versión del software ; actividades diseñadas para garantizar que se mantenga la calidad del código y se implemente la más alta calidad en producción. [8] Las principales actividades en esto son:
- Prueba de aceptación
- Prueba de regresión
- Análisis de seguridad y vulnerabilidad
- Actuación
- Prueba de configuración
Las soluciones para verificar actividades relacionadas generalmente se dividen en cuatro categorías principales: automatización de pruebas , análisis estático, laboratorio de pruebas y seguridad.
Paquete
El paquete se refiere a las actividades involucradas una vez que la versión está lista para su implementación, a menudo también denominadas como preparación o preproducción / "preprod". [8] Esto a menudo incluye tareas y actividades como:
- Aprobaciones/preaprobaciones
- Configuración del paquete
- Lanzamientos activados
- Puesta en escena y retención de la liberación
Liberar
Las actividades relacionadas con el lanzamiento incluyen la programación, la orquestación, el aprovisionamiento y la implementación del software en el entorno de producción y de destino. [9] Las actividades de lanzamiento específicas incluyen:
- Coordinación de lanzamiento
- Implementación y promoción de aplicaciones
- Repliegues y recuperación
- Lanzamientos programados/temporizados
Las soluciones que cubren este aspecto de la cadena de herramientas incluyen la automatización del lanzamiento de aplicaciones , la automatización de la implementación y la gestión del lanzamiento .
Configurar
Las actividades de configuración se incluyen en el lado operativo de DevOps. Una vez implementado el software, es posible que se requieran actividades adicionales de configuración y aprovisionamiento de infraestructura de TI. [8] Las actividades específicas incluyen:
- Aprovisionamiento y configuración de infraestructura de almacenamiento, bases de datos y redes
- Provisión y configuración de aplicaciones.
Los principales tipos de soluciones que facilitan estas actividades son la automatización continua de la configuración , la gestión de la configuración y las herramientas de infraestructura como código . [10]
Monitor
El monitoreo es un eslabón importante en la cadena de herramientas de DevOps. Permite a la organización de TI identificar problemas específicos de versiones específicas y comprender el impacto en los usuarios finales. [8] Un resumen de las actividades relacionadas con el monitoreo son:
- Rendimiento de la infraestructura TI
- Respuesta y experiencia del usuario final
- Métricas y estadísticas de producción
La información proveniente de las actividades de monitoreo a menudo impacta las actividades del Plan requeridas para los cambios y para los nuevos ciclos de lanzamiento .
Control de versiones
El control de versiones es un vínculo importante en la cadena de herramientas de DevOps y un componente de la gestión de la configuración del software. El control de versiones es la gestión de los cambios en documentos, programas informáticos, sitios web de gran tamaño y otras colecciones de información. [8] Un resumen de las actividades relacionadas con el control de versiones son:
- Desarrollo no lineal
- Desarrollo distribuido
- Compatibilidad con sistemas y protocolos existentes
- Diseño basado en kits de herramientas
La información del control de versiones a menudo respalda las actividades de lanzamiento necesarias para los cambios y para los nuevos ciclos de lanzamiento .
Véase también
Referencias
- ^ Edwards, Damon (22 de agosto de 2023). "Integración de herramientas DevOps en una plataforma de entrega de servicios". dev2ops.org .
- ^ Seroter, Richard. "Explorando TODA la cadena de herramientas DevOps para equipos (en la nube)". infoq.com .
- ^ "Descripción general de la cadena de herramientas". nongnu.org . 2012-01-03 . Consultado el 2013-10-21 .
- ^ "Cadenas de herramientas". elinux.org . 8 de septiembre de 2013 . Consultado el 21 de octubre de 2013 .
- ^ Imran, Saed; Buchheit, Martin; Hollunder, Bernhard; Schreier, Ulf (29 de octubre de 2015). "Cadenas de herramientas en entornos ALM ágiles: una breve introducción". En camino hacia sistemas de Internet significativos: talleres OTM 2015. Apuntes de clase en informática. Vol. 9416. págs. 371–380. doi :10.1007/978-3-319-26138-6_40. ISBN 978-3-319-26137-9.
- ^ Loukides, Mike (7 de junio de 2012). "¿Qué es DevOps?".
- ^ Tendencias del mercado de Garner: DevOps: no es un mercado, sino una filosofía centrada en herramientas que respalda una cadena de valor de entrega continua (informe). Gartner. 18 de febrero de 2015.
- ^ abcdefg Evite el fracaso desarrollando una cadena de herramientas que posibilite DevOps (informe). Gartner. 16 de marzo de 2016.
- ^ Mejores prácticas en gestión de cambios, configuración y lanzamiento (informe). Gartner. 14 de julio de 2010.
- ^ Roger S. Pressman (2009). Ingeniería de software: un enfoque práctico (7.ª edición internacional). Nueva York: McGraw-Hill.