Warning: Undefined variable $firstImage in /var/www/www-root/data/www/spawiki/modules/blogs.php on line 327
Integración continua de múltiples etapas

Integración continua de múltiples etapas

Editar artículo

La integración continua de múltiples etapas es una técnica de desarrollo de software destinada a lograr una actividad de desarrollo paralelo altamente integrada mientras se reduce el alcance de los problemas de integración.

Contenido
  • 1 teoría
  • 2 Prácticas recomendadas
    • 2.1 Práctica recomendada # 1
    • 2.2 Práctica recomendada # 2
  • 3 ventajas
  • 4 herramientas
  • 5 Véase también
  • 6 referencias

Teoría

La integración continua de múltiples etapas aprovecha un patrón unificador básico de desarrollo de software: el software se mueve en etapas desde un estado de inmadurez a un estado de madurez, y el trabajo se divide en unidades lógicas realizadas por equipos interdependientes que integran las diferentes partes juntas tiempo extraordinario. Lo que cambia de una tienda a otra es la cantidad de etapas, la cantidad y el tamaño de los equipos y la estructura de las interdependencias de los equipos.

Prácticas recomendadas

La integración continua de múltiples etapas es una expansión sobre la integración continua, se supone que ya está siguiendo esas prácticas recomendadas.

Cuanto más grande y / o complejo sea el proyecto, mayor será la probabilidad de que el proyecto se vuelva inestable. Las alertas y las compilaciones rotas aumentan a medida que crece el proyecto. El progreso disminuye y la línea principal se vuelve cada vez más inestable. El riesgo de fallas en la construcción aumenta exponencialmente a medida que aumenta el número y las ubicaciones de los desarrolladores.

Práctica recomendada # 1

Cada desarrollador trabaja en su propia tarea. A medida que realizan cambios, se realiza una integración continua con la rama de ese equipo. Si no tiene éxito, entonces ese desarrollador (posiblemente con la ayuda de sus compañeros de equipo) arregla la rama. Cuando hay un problema, solo ese equipo se ve afectado, no todo el esfuerzo de desarrollo. Esto es similar a cómo funciona detener la línea en una instalación moderna de fabricación ajustada. Si alguien en la línea tira del cable de "detener la línea", solo afectará a un segmento de la línea, no a toda la línea.

Es digno de mención que en los últimos años el modelo de rama de "tema" o "función" ha ganado popularidad sobre el modelo de rama basado en equipos. Vea, por ejemplo, el popular modelo de ramificación de Git-Flow

Con frecuencia, el equipo decidirá pasar a la segunda fase: integración con la línea principal. En esta fase, el equipo hace lo mismo que haría un individuo en el caso del desarrollo principal. La rama del equipo debe tener todos los cambios de la línea principal fusionados (el equivalente a una actualización del espacio de trabajo), debe haber una compilación exitosa y todas las pruebas deben pasar. La integración con la línea principal será más fácil de lo habitual porque solo estarán las funciones preintegradas, no las funciones en proceso. Luego, los cambios del equipo se fusionan en la línea principal, lo que desencadenará un ciclo de compilación y prueba en la línea principal. Si eso pasa, entonces el equipo vuelve a la primera fase en la que los desarrolladores individuales trabajan en sus propias tareas. De lo contrario, el equipo trabaja para que la línea principal vuelva a funcionar, como si fuera un individuo trabajando en la línea principal.

Los cambios se propagan lo más rápido posible y se detienen solo cuando hay un problema. Idealmente, los cambios llegan al área de integración principal con la misma frecuencia que cuando se realiza el desarrollo de la línea principal. La diferencia es que menos problemas llegan hasta el área de integración principal. La integración continua de múltiples etapas permite que ocurra un alto grado de integración en paralelo al tiempo que reduce enormemente el alcance de los problemas de integración.

Práctica recomendada # 2

Para la integración continua de múltiples etapas, cada equipo debe tener su propia rama.

Ventajas

La integración continua de varias etapas tiene muchas ventajas:

  • Cuando las pruebas unitarias fallan o se descubre un error, los desarrolladores pueden revertir el código base a un estado libre de errores, sin perder tiempo depurando errores ;
  • Los problemas de integración se detectan y solucionan continuamente, sin interrupciones de última hora antes de las fechas de lanzamiento;
  • Alerta temprana de código roto / incompatible;
  • Alerta temprana de cambios conflictivos;
  • Prueba unitaria inmediata de todos los cambios;
  • Disponibilidad constante de una compilación "actual" para fines de prueba, demostración o lanzamiento;
  • El impacto inmediato de verificar el código incompleto o roto actúa como un incentivo para que los desarrolladores aprendan a trabajar de manera más gradual con ciclos de retroalimentación más cortos.

Herramientas

Las herramientas que admiten la integración continua de varias etapas incluyen:

Ver también

Referencias

  1. ^ http://www.ddj.com/development-tools/212201506 Integración continua de múltiples etapas fecha de acceso 25/02/2009, Poole, Damon, 02/12/2008 Dr. Dobb's, publicado por TechWeb
  2. ^ http://damonpoole.blogspot.com/2008/01/advanced-multi-stage-continous.html Integración avanzada de múltiples etapas, fecha de acceso 19-03-2009, Poole, Damon, 17-01-2009 Pensamientos sobre desarrollo ágil
  3. ^ http://nvie.com/posts/a-successful-git-branching-model/
  4. ^ http://www.cmcrossroads.com/content/view/12685/135/ Integración continua a gran escala, Poole, Damon, 2009-01-19 CMCrossroads Publicado por CMC Media
  5. ^ http://www.accurev.com/press-releases/030408-accurev-electriccloud.html Archivado el 20 de julio de 2008 en Wayback Machine AccuRev y Electric Cloud Partner para avanzar en la integración continua multietapa y las mejores prácticas ágiles escalables, fecha de acceso 2009 -03-19
  6. ^ http://www.accurev.com/press-releases/030408-accurev-electriccloud.html Archivado el 20 de julio de 2008 en Wayback Machine AccuRev y Electric Cloud Partner para avanzar en la integración continua multietapa y las mejores prácticas ágiles escalables, fecha de acceso 2009 -03-19
  7. ^ http://www.anthillpro.com/html/resources/build-pain-relief/team-based-streams.html Guía de construcción sin dolor: transmisiones basadas en equipos
  8. ^ http://jazz.net/
Contactos: mail@wikibrief.org
El contenido está disponible bajo la licencia CC BY-SA 3.0 (a menos que se indique lo contrario).