integración continua con team foundation server
DESCRIPTION
Como implementar la integración continua con TFS v1, y OrcasTRANSCRIPT
![Page 1: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/1.jpg)
INTEGRACIÓN CONTINUA CON
TEAM FOUNDATION SERVER
Conceptos Avanzados de compilaciónMadrid 20070628
http://blogs.msdn.com/rido
![Page 2: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/2.jpg)
Introducción
Trabajo en equipo
Integrar componentes
¿Quien integra?
¿Cuando se integra?
¿Cuánto tardo?
¿Cómo se verifica?
Generar una versión
Compilación
Probar una versión
Visibilidad del progreso
Infrastructure
Architect
Solution
Architect
Project Manager
Developer
Tester
End User
![Page 3: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/3.jpg)
Agenda
ALM/SDLC
BUILD
Pruebas y Entornos
Herramientas
Integración Continua con TFS
![Page 4: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/4.jpg)
ALM=Application Lifecycle Management
ALM Platform Operations
Infrastructure/Operations
ALM Platform Monitoring
Platform Capacity Mgmt
Platform Design/TopologyMigration/Integration
Workflow Engine
ALM System Integration
Install/Setup
Security ImplementationOperations Role Guidance
Process/GovernanceProject Governance Ent Arch StandardsDev Methodology (SDLC)
Project Determination
Release Management
Compliance (SOX) Dev Standards/Policies
Architectural Governance
Secure Dev Lifecycle
Project Mgmt
KPI and Scorecards
Communication Mgmt
Task Management
Risk Mgmt
Portfolio Mgmt
PMO
Requirements Mgmt
Business Analyst
Business Archi (Motion)
Requirements Mgmt
Requirements Elicitation
SCM/Build Mgmt
Build Manager
Gated Build Process
Test Deployment
Continuous Integration
Build Management
Test Mgmt
Testing KPI’s
Incremental Testing
System Testing
Unit Testing
Test Cases
Test Strategy
Code Review Process
Coding Best Practices
Software Factories
Enterprise P&P
Develop Mgmt
Documentation Best Prac
Refactoring
Developer
User Acceptance TestingSCM Manager
SCM Management
Project Manager
DBA
Performance Testing
Test Manager
Secure Dev Best Prac
DB Development
![Page 5: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/5.jpg)
ALM=Application Lifecycle Management
ALM Platform Operations
Infrastructure/Operations
ALM Platform Monitoring
Platform Capacity Mgmt
Platform Design/TopologyMigration/Integration
Workflow Engine
ALM System Integration
Install/Setup
Security ImplementationOperations Role Guidance
Process/GovernanceProject Governance Ent Arch StandardsDev Methodology (SDLC)
Project Determination
Release Management
Compliance (SOX) Dev Standards/Policies
Architectural Governance
Secure Dev Lifecycle
Project Mgmt
KPI and Scorecards
Communication Mgmt
Task Management
Risk Mgmt
Portfolio Mgmt
PMO
Requirements Mgmt
Business Analyst
Business Archi (Motion)
Requirements Mgmt
Requirements Elicitation
SCM/Build Mgmt
Build Manager
Gated Build Process
Test Deployment
Continuous Integration
Build Management
Test Mgmt
Testing KPI’s
Incremental Testing
System Testing
Unit Testing
Test Cases
Test Strategy
Code Review Process
Coding Best Practices
Software Factories
Enterprise P&P
Develop Mgmt
Documentation Best Prac
Refactoring
Developer
User Acceptance TestingSCM Manager
SCM Management
Project Manager
DBA
Performance Testing
Test Manager
Secure Dev Best Prac
DB Development
![Page 6: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/6.jpg)
SDLC=SoftwareDevelopmentLifeCycle
¿Cómo se construye el software?
Proceso continuo
Análisis, Diseño, Desarrollo, Pruebas
Código Fuente
Es el entregable más importante
Gestionar el cambio
Repositorio
Concepto de versión
![Page 7: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/7.jpg)
Crear una versión
![Page 8: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/8.jpg)
Demo
Aplicación de Ejemplo
![Page 9: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/9.jpg)
Escenario
Gestionar los usuarios de una aplicación web:
Registro de usuarios (Nombre, contraseña, Email)
Almacén en SQLServer
Cifrar contraseñas
Validar Credenciales
Contraseñas Fuertes
Validar email
Comprobar que el email existe
Si falla el registro indicar porqué
Validación de usuarios
Usuario/Contraseña
![Page 10: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/10.jpg)
Demo:FabrikamMembershipProvider
![Page 11: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/11.jpg)
CredentialsValidator
![Page 12: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/12.jpg)
Fabrikam.Web
![Page 13: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/13.jpg)
Agenda
ALM/SDLC
BUILD
Pruebas y Entornos
Herramientas
Integración Continua con TFS
![Page 14: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/14.jpg)
Pasos para crear una versión
Obtener Fuentes
Compilar Analizar Probar Archivar
![Page 15: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/15.jpg)
Obtener Fuentes
No es sólo el código “compilable”
El árbol
lib,src,db,tools
Las referencias
internas, externas
La base de datos
esquema, datos
La configuración
Urls, Paths
El contenido
htm, img
Herramientas
extensiones a la build
Obtener Fuentes
Compilar Analizar Probar Archivar
![Page 16: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/16.jpg)
Compilar
Build
Clean
Incremental
Build Config
Debug/Release
CPUs 32, 64
Referencias
Build Numbers
Major.Minor.Build.Revision
IDE
Automation
Obtener Fuentes
Compilar Analizar Probar Archivar
CompileCode Binary
PreprocGrammar
Link
Raise
Errors
![Page 17: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/17.jpg)
Análisis Estático
Buscar errores conocidos
Reglas de verificación
Información de los errores
Obtener Fuentes
Compilar Analizar Probar Archivar
Code
CompileStatic
Analysis
Analyze
Code
Check
Rules
Raise
Errors
Binary
![Page 18: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/18.jpg)
Probar
Pruebas unitarias
Sólo prueban el código
Pruebas de integración
Prueban parte del sistema
Pruebas de rendimiento
Situaciones límite
Pruebas de aceptación
El cliente acepta el producto
Obtener Fuentes
Compilar Analizar Probar Archivar
![Page 19: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/19.jpg)
Archivar
Etiquetar
Build correcta
Fuentes
Binarios
Informes Análisis de código
Pruebas, tiempos
Build incorrecta
Motivo del error
Detalle del error
Diferencias con la última build correcta
Obtener Fuentes
Compilar Analizar Probar Archivar
![Page 20: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/20.jpg)
Anatomía de una build
Obtener Fuentes
Montar Árbol
Referencias
Base de datos
VersionarCompilar Debug
Compilar Release
CodeRules
CodeMetrics
UnitTest Instalable
Instalar
Configurar
IntegrationTest
LoadTest Reports
Archivar
Etiquetar
Definir Calidad
Asociar Cambios
Asociar Funcionalidad
Enviar Alertas
![Page 21: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/21.jpg)
Demo
Compilar con MSBuild
![Page 22: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/22.jpg)
Agenda
ALM/SDLC
BUILD
Pruebas y Entornos
Herramientas
Integración Continua con TFS
![Page 23: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/23.jpg)
La versión en los entornos
![Page 24: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/24.jpg)
Pruebas en el ciclo de vida
Ca
da
Hora
Ca
da
Día
Ca
da
Itera
ción
Cad
a
Vers
ión
![Page 25: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/25.jpg)
Demo
Descripción Entornos
![Page 26: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/26.jpg)
Agenda
ALM/SDLC
BUILD
Pruebas y Entornos
Herramientas
Integración Continua con TFS
![Page 27: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/27.jpg)
Herramientas
Objetivo Herramientas Comunidad Herramienta MS
Compilar NAnt (csc.exe) MSbuild (csc.exe) / devenv
Pruebas NUnit MSTest / TeamBuild
Análisis Estático FxCop* FxCop
Integración Continua CruiseControl.Net Team Foundation
![Page 28: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/28.jpg)
Probador
Desarrollador
Arquitecto
Jefe deProyectos
Analista deNegocio
Profesional de Base de Datos
Diseñador
Mejorar la
Calidad del
Software
Facilitar la
Colaboración en
Equipo
Incrementar la
Transparecia en
Proyectos
Visual Studio Team SystemSolución ALM (Application Lifecycle Management)
![Page 29: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/29.jpg)
Visual Studio Team System
Visual Studio Team Suite
Gu
íay P
roce
soM
icro
soft
So
luti
on
Fra
mew
ork
(M
SF)
Visual Studio Team Foundation Server
VisualStudio
IndustryPartners
SoftwareArchitects
SoftwareDevelopers
SoftwareTesters
DatabaseProfessionalsVisual
StudioTeam
Explorer Modelado de Aplicación
Modelado de Infraestructura
Análisis de Código
Ajuste de Rendimiento
Pruebas de BD
Pruebas Manuales
Gestión de Casos de Prueba
Visual Studio Professional Edition
Control de Código
Gestión del Cambio
(Workitem Tracking)
Informes
Portal de Proyecto
Gestión de Proyecto
Servicio de Integración
(Team Build)
Load Test Agent
Visio y Modelado UML
Modelado Clases
Pruebas Unitarias
Cobertura de Código
Code Control Proxy
Modelado de Despliegue
Pruebas de Carga
Despliegue de BD
Gestión de Cambiosde BD
![Page 30: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/30.jpg)
Custom reporting
tools
MS Excel
Team Foundation Data Tier
Version Control
Proxy Server
Report Client
Team Foundation Client Tier
CoreData
VersionControl
Work ItemsTeam Build
Data
SQLReportingServices
WindowsSharePoint
Services
SQL
Reporting
Services
Windows
SharePoint
Services
Work ItemTrackingService
VersionControlService
TeamBuild
Service
CoreServices
Warehouse
Adapters
Team Foundation App Tier
WSS
Proxies
SQL RS
ProxiesTeam Foundation Object Model
MS Excel
Plug-In
MS Project
Plug-InVisual Studio Packages
Internet Explorer
BuildProcess
VersionControlProxy
Service
VSTF
Clients of VSTF
VSTF Adjuncts
Build Machine
Arquitectura Técnica de TFS
![Page 31: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/31.jpg)
Configuraciones básicas de TFS
1 máquina
Demo/Evaluación
• Client
• Build
• App Tier
• Data Tier
1 usuario
2 Servidores
Equipo Grande
Client
Data Tier
App Tier
Requiere Active Directory
(2003 or 2000)
Build
(op.)
Version
Control
Proxy (op.)
50 - 500 usuarios
1 Servidor
Equipo Pequeño
Soporta:
• Workgroup
• Active Directory
(2003 or 2000)
• Client
• Build (op.)
• App Tier
• Data Tier
• Build (op.)
2 - 50 usuarios
![Page 32: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/32.jpg)
TeamBuild
Extensiones sobre MSBuild
Todos los tipos de proyecto de VS añaden sus extensiones
Se instala por separado a TFS
Soporte a varias máquinas de build
Definición de pasos (BuildSteps)
Extensible
Override BuildSteps
Usar Tareas Msbuild
MSbuildCommunityTasks
Microsoft.SDC
![Page 33: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/33.jpg)
TeamBuild::BuildSteps
BeforeEndToEndIteration BeforeCompile
BuildNumberOverrideTarget CoreCompile
InitializeEndToEndIteration AfterCompile
BeforeClean Compile
CoreClean GetChangeSetsAndUpdateWorkItems
AfterClean PostBuild
Clean BeforeTest
InitializeBuild CoreTest
BeforeGet Test
BeforeLabel AfterTest
Label PackageBinaries
AfterLabel TeamBuild
InitializeWorkspace BeforeDropBuild
CoreGet CoreDropBuild
AfterGet CopyLogFiles
PreBuild AfterDropBuild
![Page 34: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/34.jpg)
Demo
Crear una BuildType con TFS
![Page 35: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/35.jpg)
Agenda
ALM/SDLC
BUILD
Pruebas y Entornos
Herramientas
Integración Continua con TFS
![Page 36: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/36.jpg)
Integración Continua
Se integra el trabajo de los desarrolladores
Se verifica la calidad
Análisis Estático
Pruebas unitarias
¿Cada cuanto tiempo lanzo el proceso¿
Cada semana, día, hora…
Proceso desatendido
¿Cuantas tareas incluyo en el proceso?
![Page 37: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/37.jpg)
Mejoras en el SDLC
Minimizar la entropía
Pero… si en mi máquina funciona !!
Acelerar las pruebas de regresión
Facilitar la instalación de un puesto de desarrollo
Seguridad para afrontar los cambios
Los scripts de build y las pruebas unitarias sirven de
documentación
![Page 38: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/38.jpg)
El ritual de CheckIn
Bajarse la última versión
Modificar/Añadir código
Ejecutar las pruebas en local
Bajarse la última versión
Ejecutar las pruebas en local
Hacer CheckIn
Ver los cambios en el servidor
Si se ha roto la build, arreglarla
Nunca dejar la build rota más de 24 horas
![Page 39: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/39.jpg)
Bases de datos
Las bases de datos son código
Tablas, Vistas, Procedimientos
Se deben tratar como texto
Versionar todo (schema, data)
Los DBA se deben implicar en el proceso
Una BBDD por desarrollador y por entorno
Gestión de datos de prueba
Usar VS4DB
Incluye scripts de MSBuild
![Page 40: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/40.jpg)
Pruebas en la integración continua
Pruebas unitarias
Si ó Si
Pruebas de integración
Puede…
Pruebas de aceptación/rendmiento
Muy complicado hacerlo en el mismo flujo
Dependen de una instalación
![Page 41: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/41.jpg)
Gestión de proyecto con IC
Obtener estadísticas de las builds
Transparencia
Si no hay checkIns algo va mal
Negociar el mantenimiento de la build vs Nueva
funcionalidad
Configurar la IC es la primera tarea del proyecto
Todo el equipos puede obtener la última versión
fácilmente (sobre todo los testers)
![Page 42: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/42.jpg)
Optimizar el tiempo de build
Partir soluciones
El cuello de botella suelen ser las pruebas
Si no corren en segundos, no son unitarias
Desacoplar
MVC/MVP
Mocks y Stubs
Varios tipos de build
![Page 43: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/43.jpg)
Tipos de Build
Build para integración continua (BVT)
Rápida, Sencilla
Build diaria/nocturna (Nightly)
Incluir verificación, release, etc…
Build de Pruebas
Run Test Code (Load, Acceptance)
Completa
Generar versión definitiva (Alpha, Beta, RC, RTM)
![Page 44: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/44.jpg)
BVT
Obtener Fuentes
Montar Árbol
Referencias
Base de datos
VersionarCompilar Debug
Compilar Release
CodeRules
CodeMetrics
UnitTest Instalable
Instalar
Configurar
IntegrationTest
LoadTest Reports
Archivar
Etiquetar
Definir Calidad
Asociar Cambios
Asociar Funcionalidad
Enviar Alertas
![Page 45: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/45.jpg)
Nightly
Obtener Fuentes
Montar Árbol
Referencias
Base de datos
VersionarCompilar Debug
Compilar Release
CodeRules
CodeMetrics
UnitTest Instalable
Instalar
Configurar
IntegrationTest
LoadTest Reports
Archivar
Etiquetar
Definir Calidad
Asociar Cambios
Asociar Funcionalidad
Enviar Alertas
![Page 46: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/46.jpg)
Test
Obtener Fuentes
Montar Árbol
Referencias
Base de datos
VersionarCompilar Debug
Compilar Release
CodeRules
CodeMetrics
UnitTest Instalable
Instalar
Configurar
IntegrationTest
LoadTest Reports
Archivar
Etiquetar
Definir Calidad
Asociar Cambios
Asociar Funcionalidad
Enviar Alertas
![Page 47: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/47.jpg)
Integración Continua con TFS
MSBuild, TeamBuild (incluido en TFS)
V1 no incluye IC
Extensibilidad de TFS
Soluciones de terceros basadas en BisSuscribe
No se soportan builds en paralelo
V2 si incluye IC
Configurar parámetros de build
Retention Policy
Encolar Builds
![Page 48: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/48.jpg)
RangersCI
Compatible con Orcas
![Page 49: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/49.jpg)
Demo
Integración continua con TFS v1 (Rangers CI)
Integración continua con TFS v2 Orcas
![Page 50: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/50.jpg)
Agenda
ALM/SDLC
BUILD
Pruebas y Entornos
Herramientas
Integración Continua con TFS
![Page 51: Integración Continua con Team Foundation Server](https://reader033.vdocuments.net/reader033/viewer/2022042713/54821079b47959d80c8b4691/html5/thumbnails/51.jpg)
Preguntas?
Sugerencias para mejorar este contenido
http://blogs.msdn.com/rido