IntegracionContinua

Alcanzando la agilidad con Integración Continua

Alcanzando la agilidad con Integración Continua
En: IntegracionContinua

El termino Integración continua es una de las 12 prácticas de la Programación Extrema, fue propuesto por Martin Fowler y lo define así:

Práctica de desarrollo software donde los miembros del equipo integran su trabajo frecuentemente, al menos una vez al día. Cada integración se verifica con una compilación automática (incluyendo pruebas) para detectar errores de integración tan pronto como sea posible.

Integración Continua no requiere de ninguna herramienta en particular, es una práctica y por lo tanto hay una gran variedad de herramientas en cada tecnología.

¿Porque nos convierte en ágiles?

Cuantas veces te habrá pasado que descargas un código que no compila o detectas que un bug en una funcionalidad y ni se sabe hace cuanto lleva eso así.
Además tradicionalmente las pruebas se hacían al final del proceso de desarrollo y de forma manual. Encontrar un error complejo al final del ciclo de desarrollo en las pruebas era algo para echarse a temblar.

Integración Continua requiere que los desarrolladores integren código en un repositorio compartido varias veces al día. Cada check-in o push, según el tipo de repositorio, es verificado por una compilación automática, este proceso requiere que las pruebas estén automatizadas lo máximo posible porque entran en el proceso de compilación automático también, permitiendo a los equipos detectar problemas en una fase temprana del desarrollo, porque las pruebas se hacen desde el inicio y de forma automática.

Integrando de forma regular, detectas errores más rápidamente y se localizan más fácil.

Beneficios

Al tener un sistema que verifica las integraciones frecuentes, se dedica menos tiempo a investigar donde están los fallos y podemos dedicar más tiempo los que más nos gusta que es programar.

La Integración continua es barata, sino la aplicas el tiempo entre integraciones es mucho más largo y esto dificulta encontrar y solucionar problemas, lo que lleva a un coste mayor.

Al estar las pruebas automatizadas lo máximo posible dedicamos menos tiempo a depurar y más a añadir características.

Permite entregar software más rápido, al estar validando constantemente, somos capaces de entregar release más frecuentemente.

Prácticas clave

Estas son algunas de las prácticas clave para aplicar correctamente Integración Continua.

  • Mantén un repositorio único (ejemplos: svn, tfs, github, bitbucket,etc)
  • Automatiza la compilación (ejemplos: MSBuild, Ant, Gradle)
  • Haz que tu compilación se pruebe así misma (automatización de test)
  • Cada Check-in debería compilar en un servidor de integración continua (ejemplos: Jenkins, Bambo, TeamCity)
  • Mantén la compilación rápida
  • Prueba en un clon del servidor de producción
  • Haz fácil para todo el mundo obtener el último ejecutable
  • Todo el mundo puede ver que está ocurriendo
  • Automatiza el despliegue

Conclusiones

La Integración Continua nos permite detectar de manera temprana, errores que son generados por algún integrante del equipo de desarrollo, cada cambio que un desarrollador realice en un repositorio compartido será descargado, compilado, testeado (en base a pruebas unitarias y pruebas de aceptación) por el servidor de integración continua.

Más de xurxodev | Desarrollador Freelance
¡Genial! Te has inscrito con éxito.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a xurxodev | Desarrollador Freelance.
Su enlace ha caducado.
¡Éxito! Comprueba en tu correo electrónico el enlace mágico para iniciar sesión.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.