La gestión de versiones es el proceso de gestionar, planificar, programar y controlar la creación de un software a través de diferentes etapas y entornos; incluye la prueba y la implementación de versiones de software . [1] [2]
Las organizaciones que han adoptado el desarrollo ágil de software están viendo cantidades mucho mayores de lanzamientos [ cita requerida ] . Con la creciente popularidad del desarrollo ágil, un nuevo enfoque para los lanzamientos de software conocido como entrega continua está comenzando a influir en cómo el software pasa del desarrollo al lanzamiento. [3] Uno de los objetivos de la entrega continua y DevOps es lanzar aplicaciones más confiables más rápido y con mayor frecuencia. El movimiento de la aplicación desde una "compilación" a través de diferentes entornos hasta la producción como un "lanzamiento" es parte del proceso de entrega continua. [4] Los administradores de lanzamiento están comenzando a utilizar herramientas como la automatización del lanzamiento de aplicaciones y las herramientas de integración continua para ayudar a avanzar en el proceso de entrega continua e incorporar una cultura de DevOps al automatizar una tarea para que se pueda realizar de manera más rápida, confiable y repetible. Más lanzamientos de software han llevado a una mayor dependencia de las herramientas de automatización y gestión de lanzamiento para ejecutar estos complejos procesos de lanzamiento de aplicaciones. [5]
En las organizaciones que gestionan las operaciones de TI utilizando el paradigma de gestión de servicios de TI , específicamente el marco ITIL , la gestión de versiones se guiará por los conceptos y principios de ITIL. Existen varios procesos formales de ITIL que están relacionados con la gestión de versiones, principalmente el proceso de gestión de versiones e implementación, que "tiene como objetivo planificar, programar y controlar el movimiento de versiones a entornos de prueba y en vivo", [6] y el proceso de habilitación de cambios. [7] En las organizaciones ITIL, las versiones tienden a ser menos frecuentes que en un entorno de desarrollo ágil. Los procesos de versión son administrados por equipos de operaciones de TI utilizando sistemas de tickets de gestión de servicios de TI, con menos enfoque en la automatización de los procesos de versión. [8]