atsistemas - presentación integración continua aug barcelona enero13
DESCRIPTION
TRANSCRIPT
Integración continuaIrene Comalada – atSistemas
Índice
1- Introducción2- Procedimiento3- Caso práctico4- Conclusiones5- Foro abierto
● 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.
1. Introducción
Integración Continua
● 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.
2. Procedimiento
IC - Procedimiento
3. Caso práctico
ObjetivosOBJETIVOSDescripció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 .
3. Caso práctico
Pila tecnológica
Cobertura
● 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.
3. Caso práctico
Tareas a realizar
3. Caso práctico – Diagrama de sistemas
Jenkins masterNexus
SVN
Jenkins SlaveJira
Oracle
Sonar
SVN failover
Jira failover Sonar failover
3. Caso práctico - Desarrollo
IDERepositorio Local Maven
IDERepositorio Local Maven
Repostorio de Artefactos Corporativo
Internet
Repositorios Públicos
Repositorio de Código
Dependencias
CambiosCambios
Servidor de Integración Continua
Dependencias
Notificaciones
Servidor de Análisis de Calidad
Gestiona Ejecución
Entorno de Pruebas
Consulta
Etiqueta
Publica artefactos
3. Caso práctico - Despliegues
Repostorio de Artefactos Corporativo
Internet
Repositorios Públicos
Recoge artefactos
Entorno de Pruebas
Despliega
Servidor de Integración Continua
Jira
Petición de despliegue
Actualización de resultado
3. Caso práctico - Demostración
Jira
3. Caso práctico - Demostración
Jenkins
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.
3. Caso práctico - Demostración
Bamboo
● A nivel de proyecto
● A nivel de versión
3. Caso práctico - Demostración
Nexus
3. Caso práctico - Demostración
Sonar
Nota: no es una pantalla Sonar del proyecto real. No se ha obtenido el permiso necesario.
3. Caso prácticoCONSECUCIÓN DE OBJETIVOS
Consecución Descripción Métrica
Reducción del número de errores encontrados en entornos de preproducción y producción.
Reducción del 75% de los errores
Automatizar la auditoría del códigoEn una posible nueva fase. Con
Selenium.
Reducción del Código inestable subido a SVN (con errores o incompleto)
Reducción del 50% de los errores
Reducir las colisiones en las modificaciones de código simulténo en trabajo de desarrollo en equipo
Avisos y notificaciones mail
Control de dependencias con Maven Sistema transitivo y de herencias
Agilizar los procesos de despliegue de versión en los entornos.
Creación de workflows y despliegue según entorno
Cobertura de las pruebas unitarias y ratio de éxito. Métrica en Sonar
Garantizar la ausencia de errores en los test de regresión
En una posible nueva fase.Con Selenium
Monitorización del cumplimiento de las buenas prácticas
Métrica en Sonar
Reuducir el tiempo del ciclo de vida de testeo . Reducción del 50% del tiempo
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.
Foro abierto
http://kcy.me/e6eu
Muchas gracias por vuestra atención