atSistemas - Presentación Integración Continua AUG Barcelona enero13

1,347 views
1,155 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,347
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
33
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

atSistemas - Presentación Integración Continua AUG Barcelona enero13

  1. 1. Integración continuaIrene Comalada – atSistemas
  2. 2. Índice1- Introducción2- Procedimiento3- Caso práctico4- Conclusiones5- Foro abierto
  3. 3. 1. IntroducciónIntegración Continua● Objetivo: Realización de despliegues diarios o suficientemente a menudo como para justificar montar una estructura de despliegues, compilación y propagación de nuevas versiones.● Permite que la construcción y ejecución de pruebas sea realizada cada vez que el código cambia o cuando se configure.● Detección y solución de dependencias e incompatibilidades en el código.● El proceso de build diario minimiza los riesgos de integración porque los problemas son identificados continuamente.● Comprueba la calidad de código.
  4. 4. 2. ProcedimientoIC - Procedimiento● Los desarrolladores del equipo hacen modificaciones en el código fuente, compilan y ejecutan las pruebas unitarias automatizadas y hacen el check-in (o commit) del código en la línea activa del desarrollo en la herramienta de control de versiones.● La herramienta de integración continua verifica si nuevo código se ha colocado en la línea activa del software de control de versiones.● La herramienta de integración continua extrae todo el código fuente y compila en el servidor de preproducción que tiene por objetivo generar builds limpios.● Si compila, se ejecuta: compilar y ejecutar pruebas unitarias, pruebas de aceptación, generar información de las pruebas, de la cobertura y de análisis estático de código.● Se actualizan los datos con los resultados.● La herramienta envía mensajes (por email) para el equipo informando el resultado del proceso de build durante la integración continua.
  5. 5. 3. Caso prácticoObjetivos OBJETIVOS Descripción Reducción del número de errores encontrados en entornos de preproducción y producción. Automatizar la auditoría del código Reducción del Código inestable subido a SVN (con errores o incompleto) Reducir las colisiones en las modificaciones de código simulténo en trabajo de desarrollo en equipo Reducción del número de errores encontrados en entornos de preproducción y producción. Agilizar los procesos de despliegue de versión en los entornos. Cobertura de las pruebas unitarias Garantizar la ausencia de errores en los test de regresión Monitorización del cumplimiento de las buenas prácticas Reducir el tiempo del ciclo de vida de testeo .
  6. 6. 3. Caso prácticoPila tecnológica Cobertura
  7. 7. 3. Caso prácticoTareas a realizar● Definición del plan de implantación.● Instalación de los productos: Jira, Jenkins, Nexus, Sonar, SVN.● Configuración de los productos.● Creación de las comunicaciones a medida.● Creación de reglas de validación a medida.
  8. 8. 3. Caso práctico – Diagrama de sistemas Oracle SVN failover SVNJenkins Slave Jenkins master Jira Sonar Nexus Jira failover Sonar failover
  9. 9. 3. Caso práctico - Desarrollo Internet Repostorio de IDE Artefactos Corporativo Repositorio Local Maven Dependencias Repositorios Públicos Publica artefactos Dependencias Notificaciones IDE Repositorio Local Maven Etiqueta CambiosCambios Servidor de Integración Entorno de Pruebas Repositorio de Código Continua Consulta Gestiona Ejecución Servidor de Análisis de Calidad
  10. 10. 3. Caso práctico - Despliegues Internet Repostorio de Artefactos Corporativo Repositorios Públicos Recoge artefactos Petición de despliegue Despliega Actualización de resultadoJira Servidor de Integración Entorno de Pruebas Continua
  11. 11. 3. Caso práctico - DemostraciónJira
  12. 12. 3. Caso práctico - DemostraciónJenkins
  13. 13. 3. Caso práctico - Demostración Jenkins● Ofrece plugin de integración Jira: detecta el identificador de issue en el mensaje de confirmación y lo comenta con el resultado del build.
  14. 14. 3. Caso práctico - DemostraciónBamboo ● A nivel de proyecto ● A nivel de versión
  15. 15. 3. Caso práctico - DemostraciónNexus
  16. 16. 3. Caso práctico - Demostración SonarNota: no es una pantalla Sonar del proyecto real. No se ha obtenido el permiso necesario.
  17. 17. 3. Caso práctico CONSECUCIÓN DE OBJETIVOSConsecución Descripción Métrica Reducción del número de errores encontrados en Reducción del 75% de los errores entornos de preproducción y producción. En una posible nueva fase. Con Automatizar la auditoría del código Selenium. Reducción del Código inestable subido a SVN (con errores Reducción del 50% de los errores o incompleto) Reducir las colisiones en las modificaciones de código Avisos y notificaciones mail simulténo en trabajo de desarrollo en equipo Control de dependencias con Maven Sistema transitivo y de herencias Agilizar los procesos de despliegue de versión en los Creación de workflows y despliegue entornos. según entorno Cobertura de las pruebas unitarias y ratio de éxito. Métrica en Sonar En una posible nueva fase. Garantizar la ausencia de errores en los test de regresión Con Selenium Métrica en Sonar Monitorización del cumplimiento de las buenas prácticas Reuducir el tiempo del ciclo de vida de testeo . Reducción del 50% del tiempo
  18. 18. 4. Conclusiones● Tener métricas de la cálidad de código es vital para iniciar un proceso de mejora continua “No se puede mejorar aquello que no se puede medir”● Invertir en calidad de código es altamente rentable● Es posible mejorar la calidad del código a la vez que se desarrolla sin necesidad de parar el desarrollo● IC y TDD te permiten no sólo aumentar la calidad del código sino aumentar la productividad de todo el equipo de desarrollo● Asegurar la calidad código desarrollo es asegurar el éxito de la puesta en producción.● La formación y hacerse propia las herramientas y metodologías de trabajo son imprescindibles para garantizar un éxito duradero en el tiempo.
  19. 19. Foro abierto
  20. 20. http://kcy.me/e6eu
  21. 21. Muchas gracias por vuestra atención

×