INTEGRACIÓN CONTINUA CON
         TEAM FOUNDATION SERVER
                                          http://blogs.msdn.com/r...
Introducción
    Trabajo en equipo


    Integrar componentes


      ¿Quien integra?
    
     ¿Cuando se integra?
  ...
Agenda
    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

ALM=Application Lifecycle Management

                                                        Process/Governance
   Projec...
ALM=Application Lifecycle Management

                                                        Process/Governance
   Projec...
SDLC=SoftwareDevelopmentLifeCycle

    ¿Cómo se construye el software?


    Proceso continuo


     Análisis,   Diseño...
Crear una versión
Demo
    Aplicación de Ejemplo

Escenario
Gestionar los usuarios de una aplicación web:
  Registro de usuarios (Nombre, contraseña, Email)
    Almacén en ...
Demo:FabrikamMembershipProvider
CredentialsValidator
Fabrikam.Web
Agenda
    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

Pasos para crear una versión




Obtener   Compilar   Analizar   Probar   Archivar
Fuentes
Obtener Fuentes                         Obtener   Compilar   Analizar   Probar   Archivar
                                ...
Compilar                                         Obtener   Compilar    Analizar    Probar   Archivar
                     ...
Análisis Estático                      Obtener   Compilar   Analizar    Probar   Archivar
                                ...
Probar                                  Obtener   Compilar   Analizar   Probar   Archivar
                                ...
Archivar                                         Obtener   Compilar   Analizar   Probar   Archivar
                       ...
Anatomía de una build
  Obtener                                   Asociar        Asociar
                  UnitTest    Ins...
Demo
    Compilar con MSBuild

Agenda
    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

La versión en los entornos
Pruebas en el ciclo de vida




Cada      Cada        Cada   Cada
Versión   Iteración   Día    Hora
Demo
    Descripción Entornos

Agenda

    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

Herramientas

Objetivo               Herramientas Comunidad   Herramienta MS
Compilar               NAnt (csc.exe)        ...
Visual Studio Team System
Solución ALM (Application Lifecycle Management)



                                       Desarr...
Visual Studio Team System
                                                                                      Visual Stu...
Arquitectura Técnica de TFS
 Team Foundation Client Tier                                           Version Control        ...
Configuraciones básicas de TFS
                                                                     50 - 500 usuarios

   ...
TeamBuild
    Extensiones sobre MSBuild


        Todos los tipos de proyecto de VS añaden sus extensiones
    

    Se ...
TeamBuild::BuildSteps
BeforeEndToEndIteration       BeforeCompile
BuildNumberOverrideTarget     CoreCompile
InitializeEndT...
Demo
    Crear una BuildType con TFS

Agenda
    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

Integración Continua
    Se integra el trabajo de los desarrolladores


    Se verifica la calidad


     Análisis
    ...
Mejoras en el SDLC
    Minimizar la entropía


     Pero…   si en mi máquina funciona !!
    Acelerar las pruebas de reg...
El ritual de CheckIn
    Bajarse la última versión


    Modificar/Añadir código


    Ejecutar las pruebas en local


...
Bases de datos
    Las bases de datos son código


     Tablas,
            Vistas, Procedimientos
     Se deben tratar...
Pruebas en la integración continua
    Pruebas unitarias


     Si   ó Si
    Pruebas de integración


     Puede…

  ...
Gestión de proyecto con IC
    Obtener estadísticas de las builds


    Transparencia


     Si   no hay checkIns algo ...
Optimizar el tiempo de build
    Partir soluciones


    El cuello de botella suelen ser las pruebas


     Sino corren...
Tipos de Build
    Build para integración continua (BVT)


     Rápida,     Sencilla
    Build diaria/nocturna (Nightly)...
BVT
  Obtener                                   Asociar        Asociar
                  UnitTest    Instalable
  Fuentes ...
Nightly
  Obtener                                   Asociar        Asociar
                  UnitTest    Instalable
  Fuen...
Test
  Obtener                                   Asociar        Asociar
                  UnitTest    Instalable
  Fuentes...
Integración Continua con TFS
    MSBuild, TeamBuild (incluido en TFS)


    V1 no incluye IC


     Extensibilidad de T...
RangersCI
    Compatible con Orcas

Demo
    Integración continua con TFS v1 (Rangers CI)


    Integración continua con TFS v2 Orcas

Agenda
    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

Preguntas?
    Sugerencias para mejorar este contenido


     http://blogs.msdn.com/rido
Upcoming SlideShare
Loading in...5
×

Integración Continua con Team Foundation Server

10,026

Published on

Como implementar la integración continua con TFS v1, y Orcas

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,026
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
498
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Integración Continua con Team Foundation Server

  1. 1. INTEGRACIÓN CONTINUA CON TEAM FOUNDATION SERVER http://blogs.msdn.com/rido Conceptos Avanzados de compilación Madrid 20070628
  2. 2. Introducción Trabajo en equipo  Integrar componentes  ¿Quien integra?   ¿Cuando se integra? Developer  ¿Cuánto tardo? Solution Infrastructure Architect  ¿Cómo se verifica? Architect Generar una versión  Compilación  Tester Probar una versión Project Manager  End User Visibilidad del progreso 
  3. 3. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  4. 4. ALM=Application Lifecycle Management Process/Governance Project Governance Dev Methodology (SDLC) Ent Arch Standards Architectural Governance Project Determination Dev Standards/Policies Secure Dev Lifecycle Compliance (SOX) Release Management Develop Mgmt Mgmt Project Mgmt Requirements SCM/Build Mgmt Test Mgmt PMO Enterprise P&P Requirements Elicitation Build Management Test Strategy Portfolio Mgmt Software Factories Requirements Mgmt SCM Management Test Cases Continuous Integration Risk Mgmt Coding Best Practices Business Archi (Motion) Unit Testing Task Management Code Review Process Business Analyst Test Deployment System Testing KPI and Scorecards Refactoring Gated Build Process Incremental Testing Communication Mgmt Documentation Best Prac Testing KPI’s Build Manager Project Manager User Acceptance Testing SCM Manager Secure Dev Best Prac DB Development Performance Testing Test Manager Developer DBA Install/Setup Workflow Engine ALM Platform Operations ALM Platform Monitoring Security Implementation ALM System Integration Operations Role Guidance Platform Capacity Mgmt Platform Design/Topology Migration/Integration Infrastructure/Operations
  5. 5. ALM=Application Lifecycle Management Process/Governance Project Governance Dev Methodology (SDLC) Ent Arch Standards Architectural Governance Project Determination Dev Standards/Policies Secure Dev Lifecycle Compliance (SOX) Release Management Develop Mgmt Mgmt Project Mgmt Requirements SCM/Build Mgmt Test Mgmt PMO Enterprise P&P Requirements Elicitation Build Management Test Strategy Portfolio Mgmt Software Factories Requirements Mgmt SCM Management Test Cases Continuous Integration Risk Mgmt Coding Best Practices Business Archi (Motion) Unit Testing Task Management Code Review Process Business Analyst Test Deployment System Testing KPI and Scorecards Refactoring Gated Build Process Incremental Testing Communication Mgmt Documentation Best Prac Testing KPI’s Build Manager Project Manager User Acceptance Testing SCM Manager Secure Dev Best Prac DB Development Performance Testing Test Manager Developer DBA Install/Setup Workflow Engine ALM Platform Operations ALM Platform Monitoring Security Implementation ALM System Integration Operations Role Guidance Platform Capacity Mgmt Platform Design/Topology Migration/Integration Infrastructure/Operations
  6. 6. SDLC=SoftwareDevelopmentLifeCycle ¿Cómo se construye el software?  Proceso continuo   Análisis, Diseño, Desarrollo, Pruebas Código Fuente   Esel entregable más importante  Gestionar el cambio  Repositorio Concepto de versión 
  7. 7. Crear una versión
  8. 8. Demo Aplicación de Ejemplo 
  9. 9. 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
  10. 10. Demo:FabrikamMembershipProvider
  11. 11. CredentialsValidator
  12. 12. Fabrikam.Web
  13. 13. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  14. 14. Pasos para crear una versión Obtener Compilar Analizar Probar Archivar Fuentes
  15. 15. Obtener Fuentes Obtener Compilar Analizar Probar Archivar 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 
  16. 16. Compilar Obtener Compilar Analizar Probar Archivar Fuentes Build  Clean  Code Binary Compile  Incremental Build Config  Debug/Release   CPUs 32, 64 Referencias Raise Grammar  Preproc Errors Link Build Numbers  Major.Minor.Build.Revision  IDE  Automation 
  17. 17. Análisis Estático Obtener Compilar Analizar Probar Archivar Fuentes Buscar errores conocidos  Reglas de verificación  Información de los errores  Static Code Binary Compile Analysis Raise Check Analyze Errors Rules Code
  18. 18. Probar Obtener Compilar Analizar Probar Archivar Fuentes 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
  19. 19. Archivar Obtener Compilar Analizar Probar Archivar Fuentes 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
  20. 20. Anatomía de una build Obtener Asociar Asociar UnitTest Instalable Fuentes Cambios Funcionalidad Definir Montar Árbol CodeMetrics Instalar Enviar Alertas Calidad Referencias CodeRules Configurar Etiquetar Compilar Integration Base de datos Archivar Release Test Compilar Versionar LoadTest Reports Debug
  21. 21. Demo Compilar con MSBuild 
  22. 22. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  23. 23. La versión en los entornos
  24. 24. Pruebas en el ciclo de vida Cada Cada Cada Cada Versión Iteración Día Hora
  25. 25. Demo Descripción Entornos 
  26. 26. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  27. 27. 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
  28. 28. Visual Studio Team System Solución ALM (Application Lifecycle Management) Desarrollador Profesional de Diseñador Base de Datos Arquitecto Probador Analista de Jefe de Negocio Proyectos Incrementar la Facilitar la Mejorar la Transparecia en Colaboración en Calidad del Proyectos Equipo Software
  29. 29. Visual Studio Team System Visual Studio Team Suite Software Software Database Software Guía y Proceso Microsoft Solution Framework (MSF) Visual Visual Architects Developers Professionals Testers Studio Studio Team Industry Modelado de Análisis de Código Pruebas Manuales Despliegue de BD Explorer Partners Aplicación Pruebas de Carga Gestión de Cambios Ajuste de Modelado de de BD Rendimiento Infraestructura Gestión de Casos de Pruebas de BD Prueba Modelado de Despliegue Pruebas Unitarias Cobertura de Código Modelado Clases Visio y Modelado UML Visual Studio Professional Edition Load Test Agent Code Control Proxy Visual Studio Team Foundation Server Gestión de Proyecto Control de Código Informes Servicio de Integración Gestión del Cambio (Team Build) Portal de Proyecto (Workitem Tracking)
  30. 30. Arquitectura Técnica de TFS Team Foundation Client Tier Version Control Build Machine Proxy Server MS Project Visual Studio Packages Version Plug-In Build Control Process Proxy MS Excel Service Internet Explorer Plug-In SQL RS WSS VSTF Team Foundation Object Model Proxies Proxies Report Client Clients of VSTF VSTF Adjuncts Custom reporting Team Foundation App Tier tools Work Item Version Team Core SQL Windows Adapters Tracking Control Build Reporting SharePoint Services MS Excel Service Service Service Services Services SQL Windows Core Version Team Build Warehouse Work Items Reporting SharePoint Data Control Data Services Services Team Foundation Data Tier
  31. 31. Configuraciones básicas de TFS 50 - 500 usuarios 2 Servidores Equipo Grande 2 - 50 usuarios Client 1 Servidor 1 usuario Equipo Pequeño 1 máquina Build Demo/Evaluación • Client (op.) • Build (op.) • Client • Build App Tier • App Tier • Data Tier • App Tier • Data Tier Version • Build (op.) Control Proxy (op.) Soporta: • Workgroup Data Tier • Active Directory (2003 or 2000) Requiere Active Directory (2003 or 2000)
  32. 32. 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
  33. 33. 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
  34. 34. Demo Crear una BuildType con TFS 
  35. 35. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  36. 36. 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? 
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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)
  42. 42. Optimizar el tiempo de build Partir soluciones  El cuello de botella suelen ser las pruebas   Sino corren en segundos, no son unitarias  Desacoplar  MVC/MVP  Mocks y Stubs Varios tipos de build 
  43. 43. 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)
  44. 44. BVT Obtener Asociar Asociar UnitTest Instalable Fuentes Cambios Funcionalidad Definir Montar Árbol CodeMetrics Instalar Enviar Alertas Calidad Referencias CodeRules Configurar Etiquetar Compilar Integration Base de datos Archivar Release Test Compilar Versionar LoadTest Reports Debug
  45. 45. Nightly Obtener Asociar Asociar UnitTest Instalable Fuentes Cambios Funcionalidad Definir Montar Árbol CodeMetrics Instalar Enviar Alertas Calidad Referencias CodeRules Configurar Etiquetar Compilar Integration Base de datos Archivar Release Test Compilar Versionar LoadTest Reports Debug
  46. 46. Test Obtener Asociar Asociar UnitTest Instalable Fuentes Cambios Funcionalidad Definir Montar Árbol CodeMetrics Instalar Enviar Alertas Calidad Referencias CodeRules Configurar Etiquetar Compilar Integration Base de datos Archivar Release Test Compilar Versionar LoadTest Reports Debug
  47. 47. 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
  48. 48. RangersCI Compatible con Orcas 
  49. 49. Demo Integración continua con TFS v1 (Rangers CI)  Integración continua con TFS v2 Orcas 
  50. 50. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  51. 51. Preguntas? Sugerencias para mejorar este contenido   http://blogs.msdn.com/rido
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×