La gestión de versiones es el proceso de gestionar, planificar, programar y controlar la construcción de un software a través de diferentes etapas y entornos; incluye pruebas e implementación de versiones de software . [1] [2]
Las organizaciones que han adoptado el desarrollo de software ágil 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 la forma en que el software pasa del desarrollo a un lanzamiento. [3] Uno de los objetivos de la entrega continua y DevOps es lanzar aplicaciones más confiables de manera más rápida y frecuente. El movimiento de la aplicación desde una "compilación" a través de diferentes entornos hasta la producción como "lanzamiento" es parte del proceso de entrega continua. [4] Los administradores de versiones están comenzando a utilizar herramientas como la automatización de versiones de aplicaciones y herramientas de integración continua para ayudar a avanzar en el proceso de entrega continua e incorporar una cultura de DevOps mediante la automatización de una tarea para que pueda realizarse de manera más rápida, confiable y segura. repetible. Más lanzamientos de software han llevado a una mayor dependencia de las herramientas de automatización y gestión de lanzamientos 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 las versiones a entornos de prueba y en vivo", [6] y el proceso de gestión de cambios [ 7] En las organizaciones ITIL, los lanzamientos tienden a ser menos frecuentes que en un entorno de desarrollo ágil. Los procesos de lanzamiento son administrados por equipos de operaciones de TI que utilizan sistemas de emisión de tickets de gestión de servicios de TI, con menos enfoque en la automatización de los procesos de lanzamiento. [8]