SlideShare una empresa de Scribd logo
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 QA
Mkt Manager Data Adviser
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
Amazon Web Services LATAM
 
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
 
Betabeers - continuous deployment
Betabeers - continuous deploymentBetabeers - continuous deployment
Betabeers - continuous deployment
Fernando Escolar Martínez-Berganza
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
Hugo Gilmar Erazo
 
Introduccion a XP
Introduccion a XPIntroduccion a XP
Introduccion a XP
Andrés Joaquín
 
.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
Luis 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 Server
Ernesto Cardenas Cangahuala
 
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
Cristian Romero Matesanz
 
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
Rodolfo Finochietti
 
Zend Framework2
Zend Framework2Zend Framework2
Zend Framework2
uni
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
Info ArtdeCode
 
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
Plain Concepts
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
Carlos Buenosvinos
 
Introducción a SSIS con Biml
Introducción a SSIS con BimlIntroducción a SSIS con Biml
Introducción a SSIS con Biml
SpanishPASSVC
 

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 Agility
Angel Nuñez
 
Architecting Sociotechnical Systems
Architecting Sociotechnical SystemsArchitecting Sociotechnical Systems
Architecting Sociotechnical Systems
Angel Nuñez
 
Product Development Flow
Product Development FlowProduct Development Flow
Product Development Flow
Angel Nuñez
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
Angel Nuñez
 
Hackeando la Cultura Organizacional
Hackeando la Cultura OrganizacionalHackeando la Cultura Organizacional
Hackeando la Cultura Organizacional
Angel Nuñez
 
Liderazgo Transformacional
Liderazgo TransformacionalLiderazgo Transformacional
Liderazgo Transformacional
Angel Nuñez
 
Liderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOpsLiderazgo Transformacional y DevOps
Liderazgo Transformacional y DevOps
Angel Nuñez
 
Exploratory Testing
Exploratory TestingExploratory Testing
Exploratory Testing
Angel Nuñez
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
Angel Nuñez
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
Angel Nuñez
 
Agile Test Strategy
Agile Test StrategyAgile Test Strategy
Agile Test Strategy
Angel Nuñez
 
Kubernetes - #gdglimasummit
Kubernetes - #gdglimasummitKubernetes - #gdglimasummit
Kubernetes - #gdglimasummit
Angel Nuñez
 
Agile Testing - Software Testing Club
Agile Testing - Software Testing ClubAgile Testing - Software Testing Club
Agile Testing - Software Testing Club
Angel Nuñez
 
Kubernetes - #dockerconlima
Kubernetes  - #dockerconlimaKubernetes  - #dockerconlima
Kubernetes - #dockerconlima
Angel Nuñez
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Angel Nuñez
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
Angel 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ísticamente
Angel Nuñez
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
Angel Nuñez
 
Refactoring
RefactoringRefactoring
Refactoring
Angel 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

TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
arriagaanggie50
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 

Último (20)

TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 

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.