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, coordinado por una organización que utiliza prácticas de DevOps .
Por lo general, las herramientas de DevOps encajan en una o más actividades, lo que respalda iniciativas específicas de DevOps: planificar, crear, verificar, empaquetar, publicar, configurar, monitorear y controlar versiones. [1] [2]
Cadenas de herramientas
En 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 suele ser otro programa informático o un conjunto de programas relacionados. En general, las herramientas que forman una cadena de herramientas se ejecutan consecutivamente, por lo que la salida o el estado del entorno resultante de cada herramienta se convierte en el entorno de entrada o de inicio para la siguiente, pero el término también se usa cuando se hace referencia a un conjunto de herramientas relacionadas que no necesariamente ejecutado consecutivamente. [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 tecnología de la información (TI), mientras que automatiza el proceso de entrega de software y 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 de DevOps. En su lugar, se utiliza una colección de herramientas, posiblemente 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 comercial y los requisitos de aplicación. Específicamente, las actividades del "Plan" incluyen:
- Métricas de producción, objetos y comentarios
- Requisitos
- Métricas comerciales
- Actualizar las métricas de la versión
- Plan de lanzamiento, calendario y caso de negocio
- Política y requisito de seguridad
Una combinación del personal de TI estarán involucrados en estas actividades: los propietarios de aplicaciones de negocio, desarrollo de software , arquitectos de software , continua gestión de liberación , agentes de seguridad y la organización responsable de la gestión de la producción de la infraestructura de TI .
Crear
Create 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, incluida la calidad y el rendimiento del código
- Desarrollo de software y rendimiento de desarrollo
- Candidato de lanzamiento
Las herramientas y los proveedores de esta categoría a menudo se superponen con otras categorías. Debido a que DevOps se trata de romper silos, esto se refleja en las actividades y soluciones de productos . [ aclaración necesaria ]
Verificar
Verify está directamente asociado con garantizar 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 este ámbito son:
- Test de aceptación
- Pruebas 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.
embalaje
El empaquetado se refiere a las actividades involucradas una vez que la versión está lista para la implementación, a menudo también se denomina puesta en escena o preproducción / "preproducción". [8] Esto a menudo incluye tareas y actividades como:
- Aprobaciones / preaprobaciones
- Configuración del paquete
- Lanzamientos activados
- Liberar puesta en escena y retención
Lanzamiento
Las actividades relacionadas con la versión incluyen programación, orquestación, aprovisionamiento e implementación de software en el entorno de producción y de destino. [9] Las actividades de lanzamiento específicas incluyen:
- Coordinación de liberación
- Implementar y promover aplicaciones
- Fallbacks y recuperación
- Lanzamientos programados / cronometrados
Las soluciones que cubren este aspecto de la cadena de herramientas incluyen la automatización de versiones de aplicaciones , la automatización de la implementación y la gestión de versiones .
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] Actividades específicas que incluyen:
- Almacenamiento de infraestructura, aprovisionamiento y configuración de 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 la infraestructura como herramientas de código . [10]
Monitor
El monitoreo es un vínculo importante en una 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 Monitor son:
- Rendimiento de la infraestructura de TI
- Respuesta y experiencia del usuario final
- Estadísticas y métricas de producción
La información de las actividades de monitoreo a menudo impacta las actividades del Plan requeridas para cambios y nuevos ciclos de lanzamiento .
Control de versiones
El control de versiones es un vínculo importante en una 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 cambios en documentos, programas de computadora, sitios web grandes 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 herramientas
La información de Control de versiones a menudo admite las actividades de lanzamiento necesarias para los cambios y los nuevos ciclos de lanzamiento .
Ver también
Referencias
- ^ Edwards, Damon. "Integración de herramientas DevOps en una plataforma de prestación de servicios" . dev2ops.org .
- ^ Seroter, Richard. "Explorando TODA la cadena de herramientas de DevOps para equipos (en la nube)" . infoq.com .
- ^ "Descripción general de la cadena de herramientas" . nongnu.org . 2012-01-03 . Consultado el 21 de octubre de 2013 .
- ^ "Cadenas de herramientas" . elinux.org . 2013-09-08 . 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 . Apuntes de conferencias en Ciencias de la Computación . 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?" .
- ^ Garner Market Trends: 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.
- ^ a b c d e f g Evite fallas desarrollando una cadena de herramientas que habilite DevOps (informe). Gartner. 16 de marzo de 2016.
- ^ Mejores prácticas en la gestión de cambios, configuraciones y versiones (informe). Gartner. 14 de julio de 2010.
- ^ Roger S. Pressman (2009). Ingeniería de software: el enfoque de un practicante (7ª ed. Internacional). Nueva York: McGraw-Hill.