SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
INTEGRACIÓN CONTINUA CON
         TEAM FOUNDATION SERVER
                                          http://blogs.msdn.com/rido



                  Conceptos Avanzados de compilación
Madrid 20070628
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

Agenda
    ALM/SDLC


    BUILD


    Pruebas y Entornos


    Herramientas


    Integración Continua con TFS

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
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
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

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 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
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
                                        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
    
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

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
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
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
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
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)           MSbuild (csc.exe) / devenv
Pruebas                NUnit                    MSTest / TeamBuild
Análisis Estático      FxCop*                   FxCop
Integración Continua   CruiseControl.Net        Team Foundation
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
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)
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
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)
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
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
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
             Estático
     Pruebas unitarias

    ¿Cada cuanto tiempo lanzo el proceso¿


     Cada   semana, día, hora…
    Proceso desatendido


    ¿Cuantas tareas incluyo en el proceso?

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
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
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
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
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)
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

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)
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)Gustavo Veliz
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesRodrigo Corral
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasRodrigo Corral
 
DevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continuaDevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continuaDavid Alvarez Palomo
 
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25Demian Raschkovan
 
Dynamics saturday madrid 2019 jose antonio estevan share
Dynamics saturday madrid 2019   jose antonio estevan shareDynamics saturday madrid 2019   jose antonio estevan share
Dynamics saturday madrid 2019 jose antonio estevan shareDemian Raschkovan
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioOsvaldo
 
DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)XebiaLabs
 
Liquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programarLiquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programarSoftware Guru
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryJuan Mauricio
 

La actualidad más candente (20)

Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)Presentacion de integracion continua (lima agile)
Presentacion de integracion continua (lima agile)
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágiles
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Una introducción a la Integración continua
Una introducción a la Integración continuaUna introducción a la Integración continua
Una introducción a la Integración continua
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
DevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continuaDevOps. Integre las operaciones para una entrega continua
DevOps. Integre las operaciones para una entrega continua
 
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25Dynamics saturday madrid 2019   avanade dynamics saturday madrid 2019 2019.05.25
Dynamics saturday madrid 2019 avanade dynamics saturday madrid 2019 2019.05.25
 
Dynamics saturday madrid 2019 jose antonio estevan share
Dynamics saturday madrid 2019   jose antonio estevan shareDynamics saturday madrid 2019   jose antonio estevan share
Dynamics saturday madrid 2019 jose antonio estevan share
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
20150416 releasemanagement
20150416 releasemanagement20150416 releasemanagement
20150416 releasemanagement
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)DevOps Seminar Slides (Spanish version)
DevOps Seminar Slides (Spanish version)
 
Liquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programarLiquid Day - Capitalizando la automatizacion sin programar
Liquid Day - Capitalizando la automatizacion sin programar
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous delivery
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 

Destacado

Scrum With Team Foundation Server 2010
Scrum With Team Foundation Server 2010Scrum With Team Foundation Server 2010
Scrum With Team Foundation Server 2010Aaron Bjork
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Continuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation ServerContinuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation ServerDaniel Ştefănescu
 
Je démarre avec TFS 2012
Je démarre avec TFS 2012Je démarre avec TFS 2012
Je démarre avec TFS 2012Cédric Leblond
 

Destacado (6)

Scrum With Team Foundation Server 2010
Scrum With Team Foundation Server 2010Scrum With Team Foundation Server 2010
Scrum With Team Foundation Server 2010
 
Clean code
Clean codeClean code
Clean code
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Continuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation ServerContinuous Delivery With Team Foundation Server
Continuous Delivery With Team Foundation Server
 
TFS
TFSTFS
TFS
 
Je démarre avec TFS 2012
Je démarre avec TFS 2012Je démarre avec TFS 2012
Je démarre avec TFS 2012
 

Similar a Continuous Integración con TFS

Productividad en el Equipo de Desarrollo de Software
Productividad en el Equipo de Desarrollo de SoftwareProductividad en el Equipo de Desarrollo de Software
Productividad en el Equipo de Desarrollo de Softwarejuliocasal
 
Plataforma Oracle para BPM
Plataforma Oracle para BPMPlataforma Oracle para BPM
Plataforma Oracle para BPMCROSSNET S.A.C.
 
Mejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation ServerMejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation ServerDaniel Laco
 
Diferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoftDiferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoftunemi
 
Diferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoftDiferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoftunemi
 
Alineamiento liderazgo y cultura de calidad (2012)
Alineamiento liderazgo y cultura de calidad (2012)Alineamiento liderazgo y cultura de calidad (2012)
Alineamiento liderazgo y cultura de calidad (2012)Ricardo HIRATA O.
 
Cómo incrementar la competitividad de la empresa a través de plm
Cómo incrementar la competitividad de la empresa a través de plmCómo incrementar la competitividad de la empresa a través de plm
Cómo incrementar la competitividad de la empresa a través de plmGCG
 
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrolloBcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrolloAlex Ballarin
 
Sesion 1 teoría asi 2010 i
Sesion 1 teoría asi 2010 iSesion 1 teoría asi 2010 i
Sesion 1 teoría asi 2010 iJulio Pari
 
Validacion de la Solucion
Validacion de la SolucionValidacion de la Solucion
Validacion de la SolucionMario Solarte
 
Gestion de proyectos de desarrollo de software
Gestion de proyectos de desarrollo de softwareGestion de proyectos de desarrollo de software
Gestion de proyectos de desarrollo de softwareDiego Morales
 

Similar a Continuous Integración con TFS (20)

Productividad en el Equipo de Desarrollo de Software
Productividad en el Equipo de Desarrollo de SoftwareProductividad en el Equipo de Desarrollo de Software
Productividad en el Equipo de Desarrollo de Software
 
Plataforma Oracle para BPM
Plataforma Oracle para BPMPlataforma Oracle para BPM
Plataforma Oracle para BPM
 
Rup
RupRup
Rup
 
Watch
WatchWatch
Watch
 
Expo 12207
Expo 12207Expo 12207
Expo 12207
 
Mejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation ServerMejoras en el proceso de desarrollo con Team Foundation Server
Mejoras en el proceso de desarrollo con Team Foundation Server
 
Diferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoftDiferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoft
 
Diferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoftDiferencia entre metodología xp extreme programming y estilo moprosoft
Diferencia entre metodología xp extreme programming y estilo moprosoft
 
Alineamiento liderazgo y cultura de calidad (2012)
Alineamiento liderazgo y cultura de calidad (2012)Alineamiento liderazgo y cultura de calidad (2012)
Alineamiento liderazgo y cultura de calidad (2012)
 
Webinar Oracle Application Testing Suite
Webinar Oracle Application Testing SuiteWebinar Oracle Application Testing Suite
Webinar Oracle Application Testing Suite
 
Cómo incrementar la competitividad de la empresa a través de plm
Cómo incrementar la competitividad de la empresa a través de plmCómo incrementar la competitividad de la empresa a través de plm
Cómo incrementar la competitividad de la empresa a través de plm
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrolloBcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
Bcn Dev Conference - Mejorando la gestion de los equipos de desarrollo
 
Rup
RupRup
Rup
 
Sesion 1 teoría asi 2010 i
Sesion 1 teoría asi 2010 iSesion 1 teoría asi 2010 i
Sesion 1 teoría asi 2010 i
 
Admon proyectos-tenologicos-parte0
Admon proyectos-tenologicos-parte0Admon proyectos-tenologicos-parte0
Admon proyectos-tenologicos-parte0
 
CMMI
CMMICMMI
CMMI
 
Validacion de la Solucion
Validacion de la SolucionValidacion de la Solucion
Validacion de la Solucion
 
Gestion de proyectos de desarrollo de software
Gestion de proyectos de desarrollo de softwareGestion de proyectos de desarrollo de software
Gestion de proyectos de desarrollo de software
 
Acs
AcsAcs
Acs
 

Continuous Integración con TFS

  • 1. INTEGRACIÓN CONTINUA CON TEAM FOUNDATION SERVER http://blogs.msdn.com/rido Conceptos Avanzados de compilación Madrid 20070628
  • 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. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  • 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. 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. 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 
  • 8. Demo Aplicación de Ejemplo 
  • 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
  • 13. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  • 14. Pasos para crear una versión Obtener Compilar Analizar Probar Archivar Fuentes
  • 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. 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. 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. 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. 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. 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. Demo Compilar con MSBuild 
  • 22. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  • 23. La versión en los entornos
  • 24. Pruebas en el ciclo de vida Cada Cada Cada Cada Versión Iteración Día Hora
  • 25. Demo Descripción Entornos 
  • 26. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  • 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. 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. 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. 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. 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. 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. 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. Demo Crear una BuildType con TFS 
  • 35. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. RangersCI Compatible con Orcas 
  • 49. Demo Integración continua con TFS v1 (Rangers CI)  Integración continua con TFS v2 Orcas 
  • 50. Agenda ALM/SDLC  BUILD  Pruebas y Entornos  Herramientas  Integración Continua con TFS 
  • 51. Preguntas? Sugerencias para mejorar este contenido   http://blogs.msdn.com/rido