XP: Continuous Integration
Introducción
Integrar es difícil
Número de bugs
Número de componentes
Tiempo desde la última integración
Nos gustaría evitar integrar
Reemplazar grandes y largas fases de integración
Por pequeñas y frecuentes
Minimizar el esfuerzo de integración
Componentes
Developer
Version Control Repository
Continuous Integration Server
Build Script
Feedback Mechanism
Ventajas
Reduce riesgos
Falta de un software desplegable
Descubrimiento tardío de los defectos
Falta de visibilidad en el proyecto
Baja calidad del software
Reduce procesos manuales repetitivos
No hay puntos de integración
Los builds ya no son eventos
Genera software desplegable en cualquier momento y lugar
Habilita la visibilidad del proyecto
Aumenta la confianza del software en el equipo
Mejora la calidad del software
Prácticas
Un solo repositorio
Build automático
Tests automáticos
Todos deben hacer commit a diario
Build rápido
El ambiente de testing debe ser un clon de producción
Obtener el último ejecutable debe ser fácil
Todos pueden ver que está sucediendo
Deploy automático
Continuous Database Integration
Automatizar la integración con la BD
Usar un sandbox para la BD
Utilizar un repositori para compartir los scripts de BD
El equipo de desarrollo puede modificar la BD
El DBA debe ser parte del equipo de desarrollo
Continuous Testing
Automatizar los tests
Unit Tests
Component Tests
System Tests
Functional Tests
Categorizar los tests
Correr los tests rápidos primero
Escribir los tests para los defectos
Limitar los asserts en cada test
Continuous Inspection
Reducir la complejidad de código
Realizar revisiones de diseño continuas
Mantener los estándares con auditorías de código
Reducir el código duplicado
Evaluar la cobertura de código
Continuous Deployment
Desplegar software funcionando
En cualquier momento
En cualquier lugar
Etiquetar los artefactos del repositorio
Producir un ambiente limpio
Etiquetar los builds
Correr todos los tests
Crear reportes con feedback del build
Capacidad de hacer un rollback del release
Continuous Feedback
Utilizar mecanismos de feedback
Información correcta
Personas correctas
Vía correcta
Momento correcto
Madurez
CI Maturity
Servidores CI
Hudson
http://hudson-ci.org/
Continuum
http://continuum.apache.org/
Cruise Control
http://cruisecontrol.sourceforge.net/
CruiseControl.NET
http://confluence.public.thoughtworks.org/display/CCNET
TeamCity
http://www.jetbrains.com/teamcity/
Referencias
Paul M. Duvall, Continuous Integration, Addison Wesley 2009
http://martinfowler.com/articles/continuousIntegration.html
http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html
http://www.slideshare.net/drluckyspin/continuous-integration
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
http://www.integratebutton.com/
Acerca de
Topic
Topic
XP: Continuous Integration
Added: 2011-04-29 22:16:59
From: (Joined 2009-12-01 22:08:05)
12 views |0 downloads
XP: Continuous Integration