SlideShare una empresa de Scribd logo
1 de 16
Continuous
          Integration
Going from Zero to Hero
                      Email: snahider@gmail.com
Angel Núñez Salazar            Twitter: @snahider
¿Que problemas busca resolver?




         Había una vez …….
Integración Continua
Filosofía donde los miembros del
equipo buscan integrar y verificar su
 trabajo de manera muy pero muy
            frecuente.
Ingredientes de la IC

1. Mantener un único repositorio de código
2. A u t o m a t i z a r e l B u i l d
3. T o d o s r e a l i z a n u n
   c o mmi t a l a r a ma
   p r i n c i p a l
   f r e c u e n t e me n t e
4. E l B u i l d s e d e b e
   e j e c u t a r p o r c a d a
   c o m m i t en una máquina de integración
5. Mantener el Build bien rápido
6. Todos pueden ver lo que está
1.- Único Repositorio de Código
2.- Automatizar el Build
              ¿Qué es el Build?
Todos los pasos necesarios para:
• Convertir los archivos de código fuente a código
  ejecutable.
• Verificar que todo funciona según los esperado.
• Verificar que los estándares definidos se cumplan.
2.- Automatizar el Build
    ¿Qué tareas realiza un Build?
                             Integrar BD
                  Test                     Etiquetar el
               Funcionales                    código


     Test                                                 Generar
   Unitarios                                              Reportes




Compilar                      Build                          Desplegar
2.- Automatizar el Build
                 Herramientas
Las herramientas que nos permiten automatizar el
Build son los denominados Build Scripts:
• Net: MSNuild, NAnt
• Java: Ant, Maven
• Ruby: Rake
3.- Realizar commit frecuentemente
               (Lo más importante)
Integrar por grandes cantidades al final del proyecto:
   • Más posibilidades de errores.
   • Más difícil y más tiempo.


Integrar frecuentemente en porciones pequeñas:
   • Menos posibilidades de errores y conflictos.
   • Más fácil.
   • Encontrar errores oportunamente.
4.- Ejecutar el build x cada commit en
      una máquina de integración
4.- Ejecutar el build x cada commit en
      una máquina de integración
                    Herramientas
 Las herramientas que nos permiten monitorear el
 repositorio y ejecutar el build por cada commit son
 los Continuous Integration Servers.

 Ejm: TeamCity, Hudson, CruiseControl, etc.
4.- Ejecutar el build x cada commit en
      una máquina de integración
                     Configuración
 Casi todas herramientas tienen la misma
 configuración, los pasos son los siguientes:
    –   Crear el Proyecto
    –   Cuál es el Repositorio de Código
    –   Cuál son los pasos del Build
    –   Cuándo se ejecutará el Build.
5.- Mantener el Build rápido




Estrategias que nos ayudan a tener un build rápido:
           Pipeline Builds y Timely Builds
6.- Todos pueden ver lo que está
            sucediendo
La comunicación es uno de los aspectos más
importantes dentro de la IC.

• Sin la comunicación necesaria es imposible conocer
  el estado del build.
• Si no se conoce el estado del build no podremos
  mantenerlo estable si produce algún error.
• Si no mantenemos el build estable no sirve de nada
  todo lo que estamos haciendo.
Beneficios de la Integración Continua
 • La aplicación funciona a algún nivel.
 • Menos tiempo integrando y más fácil encontrar los
   errores.
 • Incrementa la visibilidad.
 • Elimina varios riesgos en el desarrollo de software.
 • Elimina la fricción entre los miembros del equipo.
 • Menos creando artefactos y ejecutando builds.
Muchas Gracias!!

Más contenido relacionado

Similar a Continuous Integration - Going from Zero to Hero

Integración continua
Integración continuaIntegración continua
Integración continuaFabián Mena
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Demian Raschkovan
 
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 QAMkt Manager Data Adviser
 
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...Agiles2009
 
Á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...adrianeidelman
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0Luis Ruiz Pavón
 
Integración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerIntegración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerErnesto Cardenas Cangahuala
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013Rodolfo Finochietti
 
Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2uni
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxPlain Concepts
 
Introducción a SSIS con Biml
Introducción a SSIS con BimlIntroducción a SSIS con Biml
Introducción a SSIS con BimlSpanishPASSVC
 

Similar a Continuous Integration - Going from Zero to Hero (20)

Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Integración continua
Integración continuaIntegración continua
Integración continua
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!
 
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
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
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...
 
Betabeers - continuous deployment
Betabeers - continuous deploymentBetabeers - continuous deployment
Betabeers - continuous deployment
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Introduccion a XP
Introduccion a XPIntroduccion a XP
Introduccion a XP
 
.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0.NET Core 1.0 y ASP.NET Core 1.0
.NET Core 1.0 y ASP.NET Core 1.0
 
Integración Continua usando Team Foundation Server
Integración Continua usando Team Foundation ServerIntegración Continua usando Team Foundation Server
Integración Continua usando Team Foundation Server
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013
 
Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
 
Visual studio c_
Visual studio c_Visual studio c_
Visual studio c_
 
Alta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginxAlta disponibilidad y balanceo de carga con Linux y nginx
Alta disponibilidad y balanceo de carga con Linux y nginx
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Introducción a SSIS con Biml
Introducción a SSIS con BimlIntroducción a SSIS con Biml
Introducción a SSIS con Biml
 

Más de Angel Nuñez

Structural Agility
Structural AgilityStructural Agility
Structural AgilityAngel Nuñez
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical SystemsAngel Nuñez
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development FlowAngel Nuñez
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalAngel Nuñez
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo TransformacionalAngel Nuñez
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsAngel Nuñez
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory TestingAngel Nuñez
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingAngel Nuñez
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test StrategyAngel Nuñez
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummitAngel Nuñez
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing ClubAngel Nuñez
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlimaAngel Nuñez
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeAngel Nuñez
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureAngel Nuñez
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteAngel Nuñez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 

Más de Angel Nuñez (20)

Structural Agility
Structural AgilityStructural Agility
Structural Agility
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical Systems
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development Flow
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura Organizacional
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo Transformacional
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOps
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test Strategy
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing Club
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 
Refactoring
RefactoringRefactoring
Refactoring
 

Último

Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .itzyrivera61103
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptxjarniel1
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).jcaballerosamayoa
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blogManuel Diaz
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxCsarNlsonMrquezContr
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...dramosbrise1403
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.241534381
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialEducática
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docxssusere34b451
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 

Último (20)

Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 

Continuous Integration - Going from Zero to Hero

  • 1. Continuous Integration Going from Zero to Hero Email: snahider@gmail.com Angel Núñez Salazar Twitter: @snahider
  • 2. ¿Que problemas busca resolver? Había una vez …….
  • 3. Integración Continua Filosofía donde los miembros del equipo buscan integrar y verificar su trabajo de manera muy pero muy frecuente.
  • 4. Ingredientes de la IC 1. Mantener un único repositorio de código 2. A u t o m a t i z a r e l B u i l d 3. T o d o s r e a l i z a n u n c o mmi t a l a r a ma p r i n c i p a l f r e c u e n t e me n t e 4. E l B u i l d s e d e b e e j e c u t a r p o r c a d a c o m m i t en una máquina de integración 5. Mantener el Build bien rápido 6. Todos pueden ver lo que está
  • 6. 2.- Automatizar el Build ¿Qué es el Build? Todos los pasos necesarios para: • Convertir los archivos de código fuente a código ejecutable. • Verificar que todo funciona según los esperado. • Verificar que los estándares definidos se cumplan.
  • 7. 2.- Automatizar el Build ¿Qué tareas realiza un Build? Integrar BD Test Etiquetar el Funcionales código Test Generar Unitarios Reportes Compilar Build Desplegar
  • 8. 2.- Automatizar el Build Herramientas Las herramientas que nos permiten automatizar el Build son los denominados Build Scripts: • Net: MSNuild, NAnt • Java: Ant, Maven • Ruby: Rake
  • 9. 3.- Realizar commit frecuentemente (Lo más importante) Integrar por grandes cantidades al final del proyecto: • Más posibilidades de errores. • Más difícil y más tiempo. Integrar frecuentemente en porciones pequeñas: • Menos posibilidades de errores y conflictos. • Más fácil. • Encontrar errores oportunamente.
  • 10. 4.- Ejecutar el build x cada commit en una máquina de integración
  • 11. 4.- Ejecutar el build x cada commit en una máquina de integración Herramientas Las herramientas que nos permiten monitorear el repositorio y ejecutar el build por cada commit son los Continuous Integration Servers. Ejm: TeamCity, Hudson, CruiseControl, etc.
  • 12. 4.- Ejecutar el build x cada commit en una máquina de integración Configuración Casi todas herramientas tienen la misma configuración, los pasos son los siguientes: – Crear el Proyecto – Cuál es el Repositorio de Código – Cuál son los pasos del Build – Cuándo se ejecutará el Build.
  • 13. 5.- Mantener el Build rápido Estrategias que nos ayudan a tener un build rápido: Pipeline Builds y Timely Builds
  • 14. 6.- Todos pueden ver lo que está sucediendo La comunicación es uno de los aspectos más importantes dentro de la IC. • Sin la comunicación necesaria es imposible conocer el estado del build. • Si no se conoce el estado del build no podremos mantenerlo estable si produce algún error. • Si no mantenemos el build estable no sirve de nada todo lo que estamos haciendo.
  • 15. Beneficios de la Integración Continua • La aplicación funciona a algún nivel. • Menos tiempo integrando y más fácil encontrar los errores. • Incrementa la visibilidad. • Elimina varios riesgos en el desarrollo de software. • Elimina la fricción entre los miembros del equipo. • Menos creando artefactos y ejecutando builds.