Presentacion de integracion continua (lima agile)

Post on 02-Dec-2014

3.386 views 0 download

description

 

Transcript of Presentacion de integracion continua (lima agile)

Edwin Farfan ColanConsultor Java SCJP 5.0AP JOEDAYZE-mail: edwin.farfan@joedayz.orgBlog: www.edwinfarfan.blogspot.comTwitter: edwinfarfan

Integración Continua

Power tools getting all together

Los proyectos de software implican un gran número de archivos que necesitan ser integrados juntos para construir un solo producto.

Este proceso puede tardar tiempo valioso para nuestro proyecto, además realizar esta tarea es repetitiva.

Luego de esta integración algún código desarrollado por otro desarrollador puede causar conflictos con otro código que ya está implementado.

Introducción

El objetivo es automatizar tareas que son repetitivas (compilar, ejecución de pruebas, construcción, deployar, documentación). Y que estas tareas sean ejecutadas lo más a menudo posible y de manera automática para así poder detectar fallos cuanto antes.

Te permite estar siempre informado sobre el estado de tu proyecto.

Integración Continua

Integración continua

La Integración Continua está asociado con las metodologías de programación extrema (XP) y desarrollo ágil.

Es una metodología centrada a disminuir la carga de trabajo a los desarrolladores y la utilización de una mayor potencia del servidor

http://www.martinfowler.com/articles/continuousIntegration.html

Subversion

Nexus

SonarHudson

MySql

Internet

Developer

FeedBack

Developer

Developer

Commit

Commit

Commit

Que Necesitamos

Software- Control de Versiones (SVN)- Herramienta para generar Build y automización de tareas (Maven - Hudson)- Repositorio local Maven (Nexus)- Métricas y/o reportes de Analisis de código (Sonar)

Hardware- Servidor dedicado a IC- Espacio en el disco

Controlador de Versiones

Subversion sistema de control de versiones que administra y guarda cualquier fichero,mantiene un historial de cambios realizados.Nos permitirá tener nuestro código centralizado, descargar, actualizar y subir código que se encuentra en este repositorio.Hacer frecuentes commits acelerará la construcción del proyecto, además de encontrar rápido errores.

MavenHerramienta para la gestión y construcción de proyectos Java. Es la Base que se tiene para trabajar para la IC (con proyectos Java), ya que cuenta con comandos de compilacion, deploy, test, etc. Con un solo comando puede construir un proyecto .

Utiliza un Project Object Model (POM) para describir el proyecto de software a construir, sus dependencias de otros módulos y componentes externo, y el orden de construcción de los elementos.

Puedes generar un repositorio local para los Jars (o librerias), donde estarán almacenados localmente o remotamente en un servidor.

Nexus

Nexus es un administrador visual de repositorios para Maven.Nexus actúa como un repositorio de Maven público. Esto significa que los artefactos (jars) y sus dependencias, sólo tienen que descargar una vez, y después se descargan del Nexus.

Nexus

Hudson

Herramienta open source que nos ayuda a monotorizar la ejecución de tareas repetitivas como el compilar un proyecto cada cierto tiempo. Además se enfoca en la construcción y prueba los proyectos de software de forma continua y en monitorizar la ejecución de tareas ejecutadas externamente.Se integra fácilmente con Maven y tiene un sin numero de plugin que se pueden utilizar.

Sonar

Podemos controlar, lo que podemos medir.

Permite la verificación de la calidad del código java, calcula y muestra en formato web métricas de nuestros proyecto.

Herramientas como PMD, CheckStyle, FindBugs, Cobertura, etc; ya vienen embebidas en Sonar.

Sonar

Ventajas- Reducción del tiempo de integración.- Detección de errores lo más pronto posible.- Pruebas inmediatas tras un cambio en el código.- Disponibilidad del código para test, demos, etc.

Desventajas- Necesidad de un servidor dedicado para IC.- El impacto inmediato al subir código erróneo provoca que los desarrolladores no hagan tantos commits como sería conveniente como copia de seguridad

Conclusiones- La IC está enfocada a disminuir el riesgo y a la detención y solución temprana de problemas.- La IC nos brindará información en todo momento.- El éxito de la IC esta fuertemente ligada con las serie de pruebas (Cobertura) que se tiene en el proyecto.- Permite una rápida retroalimentación de nuestro proyecto.

RECURSOS

Herramientas

Gracias