SlideShare a Scribd company logo
1 of 23
Integración Continua …¿Por qué?
¿Como?
Ernesto Cárdenas Cangahuala (@fisica3)
Software Engineer, Agilista, fotografo
aficionado
Erase una vez… un desarrollador
En la Universidad
 !En mi casa compilaba!
Durante el Desarrollo
 ¿Qué has hecho ayer en todo el día?
 …Subir el proyecto a preproducción
…Mantenimiento
 ¡La web de producción esta
grabando en la BD de
preproducción!
 Este… ayer subí la corrección
de un bug….
 ¡Además ahora las formulas
dan valores incorrectos!
Integración Continua
Martin Fowler:“La integración continua es una práctica
de desarrollo de software en la cuál los miembros de un
equipo integran su trabajo frecuentemente, como mínimo
de forma diaria. Cada integración se verifica mediante una
herramienta de construcción automática para detectar los
errores de integración tan pronto como sea posible.”
¿Que perseguimos con la CI?
Ser capaces de controlar la “salud” de nuestro proyecto durante todo el ciclo
de desarrollo y mantenimiento
Que el código que hay en nuestro repositorio “Funcione”
Invertir menos tiempo en integración.
Incrementar la visibilidad del proceso, feedback inmediato.
Reducir el riesgo del proyecto, gracias a la visibilidad de avance.
Incrementar la autonomía de los Testers, que prueben siempre lo ultimo
Dedicar menos tiempo a la creación y despliegue de versiones
Incrementar la confianza entre los usuarios de negocio y el equipo de
proyecto.
Practicas de Integración Continua
Mantener un único repositorio de código fuente
Automatizar la construcción del proyecto
Hacer que la construcción del proyecto ejecute sus propios tests
Construir la línea principal en la máquina de integración
Mantener una ejecución rápida de la construcción del proyecto
Probar en una réplica del entorno de producción
Hacer que todo el mundo pueda obtener el último ejecutable de forma fácil
Publicar qué está pasando (alertas!!!)
Automatizar el despliegue
Ok, ¿Cómo logramos eso?
Una visión general
Elementos
 Repositorio: Subversion, Mercurial, Team
Foundation Server, Git
 Servidor: Hudson/Jenkins, Team Foundation
Server, Bamboo, TeamCity
 Reglas: ANT, Nant, MSBuild/XAML
 Entorno(s) de despliegue: Web, Windows…
Team Foundation Build
 Considerado parte del núcleo de la plataforma TFS 2012
 Muy integrado con otros servicios y características de TFS
 Version Control
 Work Item Tracking
 Testing
 Permite análisis de tendencias históricas
 Los miembros del equipo pueden ser notificados del estado de la
build, para prevenir checkin que no sean correctivos
 MSBuild hace el “building”, Windows Workflow hace la orquestación
 Extensible: Soporte Java, Maven, Ant vía TFS Build Extensions
Arquitectura de Team Foundation
Build
Application
Tier
Build
Controller
Build
Agent
Symbol
Server
Drop
ServerBuild
Team Build Process
 Controlado por un archivo XAML Windows Workflow
4.0
 Tres plantillas de proceso “out-of-the-box”
 DefaultTemplate
 UpgradeTemplate
 LabDefaultTemplate (y….)
 Almacenado en TFS
 Se pueden crear plantillas de build personalizadas
Definiendo nuestra Build
Parametrizando
Revisión inmediata
Upss… un error
Seguimiento historico
Principios para el desarrollador
 Contribuye a menudo
 No contribuyas código roto
 Soluciona los build rotos inmediatamente
 Escribe tests automáticos
 Todos los tests deben pasar
Reforzando el factor humano
 Establecer políticas de Check-in, shelve y Code Review
 Configurar bien las alertas
 Detenerse cuando la Build se cae
 Si se cae la Build no es el fin del mundo
 Antes de hacer check-in, Get latest versión y probar en local
 Probar en ambiente de Integración
 Validar siempre la actualización del Modelo de BD
 Considerar CodeAnalysis, StyleCop y opcionalmente
convertir warning en errors
¿Preguntas?
Enlaces útiles
 El Bruno
 Jersson on the Block!
 SedoDream
 How to install Web Deploy on Windows Server 2012
 Consultor Internet

More Related Content

What's hot

Programación III. tp 02
Programación III. tp 02Programación III. tp 02
Programación III. tp 02
MultimediaUNLaR
 

What's hot (19)

Continuous Integration - Team city
Continuous Integration - Team cityContinuous Integration - Team city
Continuous Integration - Team city
 
Introducción a HockeyApp
Introducción a HockeyAppIntroducción a HockeyApp
Introducción a HockeyApp
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
Continuos Delivery Commit stage
Continuos Delivery Commit stageContinuos Delivery Commit stage
Continuos Delivery Commit stage
 
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFSALM Sessions 2012 - Entrega Continua con VS ALM y TFS
ALM Sessions 2012 - Entrega Continua con VS ALM y TFS
 
CI integración continua
CI   integración continuaCI   integración continua
CI integración continua
 
Integración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio OnlineIntegración y Entrega Continua con Visual Studio Online
Integración y Entrega Continua con Visual Studio Online
 
Programación III. tp 02
Programación III. tp 02Programación III. tp 02
Programación III. tp 02
 
Construir tests
Construir testsConstruir tests
Construir tests
 
Capitulo 2
Capitulo 2Capitulo 2
Capitulo 2
 
Construye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web ApiConstruye un backend para tus app móviles con con ASP.NET Web Api
Construye un backend para tus app móviles con con ASP.NET Web Api
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
 
Infraestructura como código
Infraestructura como códigoInfraestructura como código
Infraestructura como código
 
Tfs 2012 tutorial
Tfs 2012   tutorialTfs 2012   tutorial
Tfs 2012 tutorial
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos software
 
Symfony
SymfonySymfony
Symfony
 
Symfony
SymfonySymfony
Symfony
 
Modelo Integración Continua en entornos de QA
Modelo Integración Continua en entornos de QAModelo Integración Continua en entornos de QA
Modelo Integración Continua en entornos de QA
 

Viewers also liked

Viewers also liked (7)

Agile Open Lima VII
Agile Open Lima VIIAgile Open Lima VII
Agile Open Lima VII
 
Teoria introduccion agilismo (Scrum y Kanban)
Teoria introduccion agilismo (Scrum y Kanban)Teoria introduccion agilismo (Scrum y Kanban)
Teoria introduccion agilismo (Scrum y Kanban)
 
Gestión Ágil de Entornos de Despliegue en la Nube 2
Gestión Ágil de Entornos de Despliegue en la Nube 2Gestión Ágil de Entornos de Despliegue en la Nube 2
Gestión Ágil de Entornos de Despliegue en la Nube 2
 
Gestión Agil de Entornos de Despliegue en la Nube
Gestión Agil de Entornos de Despliegue en la NubeGestión Agil de Entornos de Despliegue en la Nube
Gestión Agil de Entornos de Despliegue en la Nube
 
Despliegue de Aplicaciones .Net Core en Docker
Despliegue de Aplicaciones .Net Core en DockerDespliegue de Aplicaciones .Net Core en Docker
Despliegue de Aplicaciones .Net Core en Docker
 
Introducción a la Computacion paralela
Introducción a la Computacion paralelaIntroducción a la Computacion paralela
Introducción a la Computacion paralela
 
El reto del DevOps agil
El reto del DevOps agilEl reto del DevOps agil
El reto del DevOps agil
 

Similar to Una introducción a la Integración continua

Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 

Similar to Una introducción a la Integración continua (20)

Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
Agiles 2009 - Integracion Continua: Dando los primeros pasos a traves de un e...
 
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
Ágiles 2009 - Integración Continua: Dando los primeros pasos a través de un e...
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
12 MicroSoft SFIC 2009
12 MicroSoft SFIC 200912 MicroSoft SFIC 2009
12 MicroSoft SFIC 2009
 
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
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemas
 
TechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team SystemsTechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team Systems
 
Vs2008
Vs2008Vs2008
Vs2008
 
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
DISEÑO DE SISTEMAS.pptx
DISEÑO DE SISTEMAS.pptxDISEÑO DE SISTEMAS.pptx
DISEÑO DE SISTEMAS.pptx
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
1.Visual Studio Team System
1.Visual Studio Team System1.Visual Studio Team System
1.Visual Studio Team System
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
 

More from Ernesto Cardenas Cangahuala

More from Ernesto Cardenas Cangahuala (7)

DevOps: ¿es como RRHH cree que es?
DevOps: ¿es como RRHH cree que es?DevOps: ¿es como RRHH cree que es?
DevOps: ¿es como RRHH cree que es?
 
DevOps is about people, beyond automation
DevOps is about people, beyond automationDevOps is about people, beyond automation
DevOps is about people, beyond automation
 
DevOps, automatización y... ¿cultura?
DevOps, automatización y... ¿cultura?DevOps, automatización y... ¿cultura?
DevOps, automatización y... ¿cultura?
 
Deployment Groups con VSTS
Deployment Groups con VSTSDeployment Groups con VSTS
Deployment Groups con VSTS
 
Los ciclos de desarrollo de software en la actualidad
Los ciclos de desarrollo de software en la actualidadLos ciclos de desarrollo de software en la actualidad
Los ciclos de desarrollo de software en la actualidad
 
Un DevOps Windows en el mundo Linux
Un DevOps Windows en el mundo LinuxUn DevOps Windows en el mundo Linux
Un DevOps Windows en el mundo Linux
 
En búsqueda del DevOps perdido
En búsqueda del DevOps perdidoEn búsqueda del DevOps perdido
En búsqueda del DevOps perdido
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (11)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Una introducción a la Integración continua

  • 1. Integración Continua …¿Por qué? ¿Como? Ernesto Cárdenas Cangahuala (@fisica3) Software Engineer, Agilista, fotografo aficionado
  • 2. Erase una vez… un desarrollador
  • 3. En la Universidad  !En mi casa compilaba!
  • 4. Durante el Desarrollo  ¿Qué has hecho ayer en todo el día?  …Subir el proyecto a preproducción
  • 5. …Mantenimiento  ¡La web de producción esta grabando en la BD de preproducción!  Este… ayer subí la corrección de un bug….  ¡Además ahora las formulas dan valores incorrectos!
  • 6. Integración Continua Martin Fowler:“La integración continua es una práctica de desarrollo de software en la cuál los miembros de un equipo integran su trabajo frecuentemente, como mínimo de forma diaria. Cada integración se verifica mediante una herramienta de construcción automática para detectar los errores de integración tan pronto como sea posible.”
  • 7. ¿Que perseguimos con la CI? Ser capaces de controlar la “salud” de nuestro proyecto durante todo el ciclo de desarrollo y mantenimiento Que el código que hay en nuestro repositorio “Funcione” Invertir menos tiempo en integración. Incrementar la visibilidad del proceso, feedback inmediato. Reducir el riesgo del proyecto, gracias a la visibilidad de avance. Incrementar la autonomía de los Testers, que prueben siempre lo ultimo Dedicar menos tiempo a la creación y despliegue de versiones Incrementar la confianza entre los usuarios de negocio y el equipo de proyecto.
  • 8. Practicas de Integración Continua Mantener un único repositorio de código fuente Automatizar la construcción del proyecto Hacer que la construcción del proyecto ejecute sus propios tests Construir la línea principal en la máquina de integración Mantener una ejecución rápida de la construcción del proyecto Probar en una réplica del entorno de producción Hacer que todo el mundo pueda obtener el último ejecutable de forma fácil Publicar qué está pasando (alertas!!!) Automatizar el despliegue
  • 11. Elementos  Repositorio: Subversion, Mercurial, Team Foundation Server, Git  Servidor: Hudson/Jenkins, Team Foundation Server, Bamboo, TeamCity  Reglas: ANT, Nant, MSBuild/XAML  Entorno(s) de despliegue: Web, Windows…
  • 12. Team Foundation Build  Considerado parte del núcleo de la plataforma TFS 2012  Muy integrado con otros servicios y características de TFS  Version Control  Work Item Tracking  Testing  Permite análisis de tendencias históricas  Los miembros del equipo pueden ser notificados del estado de la build, para prevenir checkin que no sean correctivos  MSBuild hace el “building”, Windows Workflow hace la orquestación  Extensible: Soporte Java, Maven, Ant vía TFS Build Extensions
  • 13. Arquitectura de Team Foundation Build Application Tier Build Controller Build Agent Symbol Server Drop ServerBuild
  • 14. Team Build Process  Controlado por un archivo XAML Windows Workflow 4.0  Tres plantillas de proceso “out-of-the-box”  DefaultTemplate  UpgradeTemplate  LabDefaultTemplate (y….)  Almacenado en TFS  Se pueden crear plantillas de build personalizadas
  • 20. Principios para el desarrollador  Contribuye a menudo  No contribuyas código roto  Soluciona los build rotos inmediatamente  Escribe tests automáticos  Todos los tests deben pasar
  • 21. Reforzando el factor humano  Establecer políticas de Check-in, shelve y Code Review  Configurar bien las alertas  Detenerse cuando la Build se cae  Si se cae la Build no es el fin del mundo  Antes de hacer check-in, Get latest versión y probar en local  Probar en ambiente de Integración  Validar siempre la actualización del Modelo de BD  Considerar CodeAnalysis, StyleCop y opcionalmente convertir warning en errors
  • 23. Enlaces útiles  El Bruno  Jersson on the Block!  SedoDream  How to install Web Deploy on Windows Server 2012  Consultor Internet