Aplicación de patrones CI/CD modernos a Monorepositorios Multiaplicación Legacy - Del 1:1 al 1:N.
Un repositorio con cientos de proyectos no debe impedir que haga Integración Continua.
José María Gutiérrez Ramírez
Technology Architect Associate Manager y defensor de DevOps como filosofía de trabajo.
Juan Manuel Cintas Peña
- Advanced App Engineering Sr Analyst Java Technology Architect Over 13 years of working experience Microservices junkie Very interested in automation and testing Speaker at Local Java Events (Málaga JUG)
Rafa Molina
Technology Architect Associate Manager en Accenture. Especializado principalmente en bakcend Java y SpringFramework. Interesado en tecnologías Cloud & DevOps. Apasionado del Surf y el mar.
No video of the event yet, sorry!
En esta charla vamos a presentar una implementación que permite aplicar el modelo de Integración Continua/Despliegue Continuo (CI/CD) a repositorios, que pueden o no ser legacy, basándonos en un enfoque moderno a través de pipelines de Jenkins implementados con jenkinsfiles. La estrategia propuesta pretende solventar los retos que se plantean al trabajar con monorepositorios de código que albergan múltiples aplicaciones, aportando a la vez un alto grado de flexibilidad y adaptabilidad gracias al modelo de implementación de ese entorno de integración continua que vamos a describir.
¿Por qué nos planteamos hacer esto? La razón para abordar esta implementación parte de reforzar la idea de que no hay una única estrategia válida de gestión de la configuración en la que deba existir una relación 1:1 entre repositorio y aplicación. En el día a día no siempre nos encontramos con proyectos que cuentan con un repositorio de código o conjunto de repositorios de código con la que, a veces, se tiende a considerar, una estructura estándar de gestión de la configuración en la que cada aplicación tiene su repositorio específico (modelo 1:1) organizado en las ramas y etiquetas que se estimen necesarias. Es habitual encontrar el caso en el que la totalidad del código de las aplicaciones del cliente/proyecto se encuentra albergado en un único repositorio de código (monorepositorio en el modelo 1:N) estructurado de tal forma que todas las aplicaciones están distribuidas en diferentes carpetas organizadas siguiendo diversos criterios, habitualmente propios y específicos de ese cliente/proyecto.
Tanto el modelo repo-app 1:1 como el modelo 1:N presentan pros y cons y existe una motivación detrás de cada una de estas opciones: una gestión del ciclo de vida de CI/CD en el que los pipelines deben respetar las interdependencias existentes entre las diferentes aplicaciones del monorepositorio en cuestión es una razón de peso para considerar dicho modelo como el adecuado. Y todo esto nos plantea retos en cuanto a la generación de una definición de integración continua que se adapte a esta casuística descrita en la que múltiples aplicaciones comparten un único repositorio y cuyo ciclo de vida debe orquestarse atendiendo a la interdependencia entre ellas.
- Date:
- 2019 May 25 - 10:30
- Duration:
- 45 min
- Room:
- Sala 2 - 0 A.D.
- Conference:
- Opensouthcode 2019
- Language:
- Spanish; Castilian
- Track:
- Difficulty:
- Easy
- Build an API with HMVC and BDD
- Start Time:
- 2019 May 25 10:00
- Room:
- Aula 1 - Minetest
- Talleres de creación de videojuegos en Scratch
- Start Time:
- 2019 May 25 10:00
- Room:
- Aula 2 -Wesnoth
- OOP to FP mindshift
- Start Time:
- 2019 May 25 10:30
- Room:
- Sala 3 - Freeciv
- Cómo Krita puede ayudarnos en nuestros procesos creativos
- Start Time:
- 2019 May 25 10:30
- Room:
- Sala 1 - Flightgear