atsistemas - presentación integración continua aug barcelona enero13

Post on 05-Dec-2014

1.115 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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

top related