Presentacion de integracion continua (lima agile)

22
Edwin Farfan Colan Consultor Java SCJP 5.0 AP JOEDAYZ E-mail: [email protected] Blog: www.edwinfarfan.blogspot.com Twitter: edwinfarfan

description

 

Transcript of Presentacion de integracion continua (lima agile)

Page 1: Presentacion de integracion continua (lima agile)

Edwin Farfan ColanConsultor Java SCJP 5.0AP JOEDAYZE-mail: [email protected]: www.edwinfarfan.blogspot.comTwitter: edwinfarfan

Page 2: Presentacion de integracion continua (lima agile)

Integración Continua

Power tools getting all together

Page 3: Presentacion de integracion continua (lima agile)

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

Page 4: Presentacion de integracion continua (lima agile)

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

Page 5: Presentacion de integracion continua (lima agile)

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

Page 6: Presentacion de integracion continua (lima agile)

Subversion

Nexus

SonarHudson

MySql

Internet

Developer

FeedBack

Developer

Developer

Commit

Commit

Commit

Page 7: Presentacion de integracion continua (lima agile)

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

Page 8: Presentacion de integracion continua (lima agile)

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.

Page 9: Presentacion de integracion continua (lima agile)

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 .

Page 10: Presentacion de integracion continua (lima agile)

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.

Page 11: Presentacion de integracion continua (lima agile)

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

Page 12: Presentacion de integracion continua (lima agile)

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.

Page 13: Presentacion de integracion continua (lima agile)

Nexus

Page 14: Presentacion de integracion continua (lima agile)

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.

Page 15: Presentacion de integracion continua (lima agile)
Page 16: Presentacion de integracion continua (lima agile)

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.

Page 17: Presentacion de integracion continua (lima agile)

Sonar

Page 18: Presentacion de integracion continua (lima agile)

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

Page 19: Presentacion de integracion continua (lima agile)

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.

Page 20: Presentacion de integracion continua (lima agile)

RECURSOS

Page 21: Presentacion de integracion continua (lima agile)

Herramientas

Page 22: Presentacion de integracion continua (lima agile)

Gracias