Este documento describe la integración continua con TFS 2012. Explica que la integración continua involucra integrar el trabajo de forma frecuente, como mínimo diaria, y verificar cada integración automáticamente para detectar errores temprano. También cubre las prácticas de integración continua como automatizar la construcción y pruebas, y entregar cambios diariamente. Finalmente, ofrece consejos para configurar builds y entornos de despliegue en TFS para lograr la integración continua.
4. Durante el Desarrollo
¿Qué has hecho ayer en todo el día?
…Subir el proyecto a preproducción
5. …Mantenimiento
¡La web de producción esta grabando en la BD de
preproducción!
Este… ayer subí la corrección de un bug….
¡Además ahora las formulas dan valores incorrectos!
6. Integración Continua
Martin Fowler:“La integración continua es una práctica
de desarrollo de software en la cuál los miembros de un
equipo integran su trabajo frecuentemente, como mínimo de
forma diaria. Cada integración se verifica mediante una
herramienta de construcción automática para detectar los
errores de integración tan pronto como sea posible.”
7. ¿Que perseguimos con la CI?
Ser capaces de controlar la “salud” de nuestro proyecto durante todo el ciclo
de desarrollo y mantenimiento
Que el código que hay en nuestro repositorio “Funcione”
Invertir menos tiempo en integración.
Incrementar la visibilidad del proceso. Cualquiera puede acceder a la versión
actual desplegada y validar que lo que está terminado lo este realmente.
Reducir el riesgo del proyecto, gracias a la visibilidad de avance.
Incrementar la autonomía de los Testers. Disponen de los últimos avances
desarrollados disponibles para probar.
Dedicar menos tiempo a la creación y despliegue de versiones
Incrementar la confianza entre los usuarios de negocio y el equipo de
proyecto.
8. Practicas de Integración Continua
Mantener un único repositorio de código fuente
Automatizar la construcción del proyecto
Hacer que la construcción del proyecto ejecute sus propios tests
Entregar los cambios a la línea principal todos los días
Construir la línea principal en la máquina de integración
Mantener una ejecución rápida de la construcción del proyecto
Probar en una réplica del entorno de producción
Hacer que todo el mundo pueda obtener el último ejecutable de forma fácil
Publicar qué está pasando
Automatizar el despliegue
12. Team Foundation Server 2012
Fácil de desplegar
Fácil de utilizar
Bien integrado a Visual Studio (My Work,Code Review)
Ahora mas flexible para trabajar desde la Web
Workspaces locales
No solo .Net
13. Team Foundation Service
Escalabilidad en la nube Y
Facilidad de Mantenimiento
Alojado en Azure
Actualizaciones transparentes y
rápidas
Build en la nube
Múltiples proyectos
Se tiene una colección entera
¡Listo para probar!
14. Server vs. Service
Server Service
Work Items, Source Control, & Build
Agile Product/Project Management
Test Case Management
Heterogeneous Development
Near-zero setup and administration
Collaborate with anyone, from anywhere
Virtual Test Lab Management
SharePoint Integration
Data Warehouse & Reporting
16. Arquitectura
Visual Studio Unit Command Line TeamBuild Unit Test
Test Explorer Runner Activity
Visual Studio Unit Test Platform
MS-Test MS-Test
NUnit xUnit.net QUnit MORE!
Managed Native
17. Usa el framework que quieres usar
Soporte “In the box” para
lMS-Test Managed
lMS-Test Native (**New**)
Plugins the 3ros actualmente bajo desarrollo
lNUnit
lXunit.Net
lSQL Server Unit Testing
l...
20. Team Foundation Build
Considerado parte del núcleo de la plataforma TFS 2012
Muy integrado con otros servicios y características de TFS
lVersion Control
lWork Item Tracking
lTesting
Permite análisis de tendencias históricas
Los miembros del equipo pueden ser notificados del estado de la build, para prevenir checkin que no
sean correctivos
MSBuild hace el “building”, Windows Workflow hace la orquestación
Extensible: Soporte Java, Maven, Ant vía TFS Build Extensions
21. Arquitectura de Team Foundation Build
Application Build
Tier Controller
Symbol
Server
Build
Agent
Drop
Build Server
22. Team Build Process
Controlado por un archivo XAML Windows Workflow 4.0
Tres plantillas de proceso “out-of-the-box”
lDefaultTemplate
lUpgradeTemplate
lLabDefaultTemplate (y….)
Almacenado en TFS
Se pueden crear plantillas de build personalizadas
23. Soporte para Tests en Team Build
lSi el test funciona en VS, funciona en Team Build
lFrameworks de 3ras partes
lVisual Studio Fakes Isolation Framework (Nuevo en VS 2012)
lCode Coverage
lMas…
lTeam Build en la nube
lTest Impact Analysis
24. Reforzando el factor humano
Establecer políticas de Check-in, shelve y Code Review
Configurar bien las alertas
Detenerse cuando la Build se cae
Si se cae la Build no es el fin del mundo
Antes de hacer check-in, Get latest versión y probar en local
Probar en ambiente de Integración
Validar siempre la actualización del Modelo de BD
Considerar CodeAnalysis, StyleCop y opcionalmente convertir warning en
errors
26. Bueno, pero.. yo no uso la nube
Prepara tu entorno de Builds
lLibrerías de 3ros
lVisual Studio si el proyecto es Web
lSlow Cheetah
lPermisos
lSQL Server Data Tools
Define y Prepara tu(s) entorno(s) de despliegue
lMS Deploy
lWeb Sites en IIS (1 por cada entorno de Despliegue)
lNunca copies .config a mano!
l/p:DeployOnBuild=true;PublishProfile=MiProfile;Password=xxx;
lConfigura bien tus Logs