Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Presentacion de integracion continua (lima agile)

3,165 views

Published on

  • Be the first to comment

Presentacion de integracion continua (lima agile)

  1. 1. Edwin Farfan Colan Consultor Java SCJP 5.0 AP JOEDAYZ E-mail: edwin.farfan@joedayz.org Blog: www.edwinfarfan.blogspot.com Twitter: edwinfarfan
  2. 2. Integración Continua Power tools getting all together
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. Subversion Nexus Sonar Hudson MySql Internet Developer FeedBack Developer Developer Commit Commit Commit
  7. 7. 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
  8. 8. 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.
  9. 9. Maven Herramienta 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 .
  10. 10. 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.
  11. 11. Puedes generar un repositorio local para los Jars (o librerias), donde estarán almacenados localmente o remotamente en un servidor.
  12. 12. 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.
  13. 13. Nexus
  14. 14. 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.
  15. 16. 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.
  16. 17. Sonar
  17. 18. 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
  18. 19. 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.
  19. 20. RECURSOS
  20. 21. Herramientas
  21. 22. Gracias

×