SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Integración
continua
Geykel Moreno
gmoreno@thoughtworks.com
@geykel
http://geykel.com
Había una vez...
escribiendo código...
cierto día, el equipo
comenzó a crecer...
intercambio de
archivos de código...
intercambio de
archivos de código...
intercambio de
archivos de código...
intercambio de
archivos de código...
esperen un momento...
debe existir una mejor
manera ¿no?
¡control de código
fuente al rescate!
y así, se solucionó el
problema de compartir
archivos...
modificando el código
enviando al repositorio
de código fuente
unos días después...
actualizando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
revisando copia local
del código fuente
¿qué tal si...?
servidor de integración
continua
servidor de
integración
continua
funcionalidad
terminada de programar
servidor de
integración
continua
unos minutos más tarde...
cambios detectados
servidor de
integración
continua
construyendo...
servidor de
integración
continua
ejecutando pruebas...
servidor de
integración
continua
¡build roto!
servidor de
integración
continua
Running Unit Tests:
Passed: 106, Failed: 1, Ignored: 0
Test: DebeEncontrarPlantillas
Directory d:MisProyectosBlogPlantillas not found.
arreglando el build
enviando los arreglos al
control de código
servidor de
integración
continua
cambios detectados
servidor de
integración
continua
construyendo...
servidor de
integración
continua
ejecutando pruebas...
servidor de
integración
continua
¡build ok!
servidor de
integración
continua
radiador
sistema 1
sistema 3
sistema 5 sistema 6
sistema 4
sistema 2
Prácticas de la integración contínua
❏ Mantener un único repositorio de código.
❏ Automatizar el build.
❏ Has que el build sea self-testing.
❏ Todos hacen commit una vez al día a la línea principal
“mainline”.
❏ Cada commit debe provocar un build de la línea principal
en una máquina de integración o agente.
Prácticas de la integración contínua
❏ Arregla los builds rotos inmediatamente.
"nobody has a higher priority task than fixing the build"
Kent Beck
❏ Mantener el build rápido.
❏ Prueba en un clon del ambiente de producción.
❏ Hás que sea fácil para todos obtener los últimos
ejecutables.
❏ Todos pueden ver que está sucediendo.
http://www.martinfowler.com/articles/continuousIntegration.html
Integración continua

Más contenido relacionado

Destacado

Ideate and description eliana czaschke
Ideate and description eliana czaschkeIdeate and description eliana czaschke
Ideate and description eliana czaschkeEliana Czaschke
 
The Koyal Group Info Mag Review: Gamle Mennesker Avslore Hemmeligheter
The Koyal Group Info Mag Review: Gamle Mennesker Avslore HemmeligheterThe Koyal Group Info Mag Review: Gamle Mennesker Avslore Hemmeligheter
The Koyal Group Info Mag Review: Gamle Mennesker Avslore Hemmeligheterhln20mrtnz
 
TeSA 晨讀會 _《紅海困局》主題導讀:電商營運
TeSA 晨讀會 _《紅海困局》主題導讀:電商營運TeSA 晨讀會 _《紅海困局》主題導讀:電商營運
TeSA 晨讀會 _《紅海困局》主題導讀:電商營運Ying Hsin Hsu
 
Προσφορές Αυγούστου 2013
Προσφορές Αυγούστου 2013Προσφορές Αυγούστου 2013
Προσφορές Αυγούστου 2013Andreas Andreou
 
《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見
《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見
《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見Ying Hsin Hsu
 
Wonca Europe 2014, Lisbon: Tbc contact study
Wonca Europe 2014, Lisbon: Tbc contact studyWonca Europe 2014, Lisbon: Tbc contact study
Wonca Europe 2014, Lisbon: Tbc contact studyB. Jiménez
 

Destacado (14)

Services ppt
Services pptServices ppt
Services ppt
 
Mogol 2a
Mogol 2aMogol 2a
Mogol 2a
 
Ideate and description eliana czaschke
Ideate and description eliana czaschkeIdeate and description eliana czaschke
Ideate and description eliana czaschke
 
1CV_Dluhopolsky new
1CV_Dluhopolsky new1CV_Dluhopolsky new
1CV_Dluhopolsky new
 
The Koyal Group Info Mag Review: Gamle Mennesker Avslore Hemmeligheter
The Koyal Group Info Mag Review: Gamle Mennesker Avslore HemmeligheterThe Koyal Group Info Mag Review: Gamle Mennesker Avslore Hemmeligheter
The Koyal Group Info Mag Review: Gamle Mennesker Avslore Hemmeligheter
 
Healthy beats of heart
Healthy beats of heartHealthy beats of heart
Healthy beats of heart
 
TeSA 晨讀會 _《紅海困局》主題導讀:電商營運
TeSA 晨讀會 _《紅海困局》主題導讀:電商營運TeSA 晨讀會 _《紅海困局》主題導讀:電商營運
TeSA 晨讀會 _《紅海困局》主題導讀:電商營運
 
Προσφορές Αυγούστου 2013
Προσφορές Αυγούστου 2013Προσφορές Αυγούστου 2013
Προσφορές Αυγούστου 2013
 
《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見
《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見
《為什麼他能看到你沒看到的 》Ch16 不要只挑錯,幫助組織獲取洞見
 
Imperio bizantino
Imperio bizantinoImperio bizantino
Imperio bizantino
 
K 5 spring pd 2013
K 5 spring pd 2013K 5 spring pd 2013
K 5 spring pd 2013
 
Empathy map
Empathy mapEmpathy map
Empathy map
 
Wonca Europe 2014, Lisbon: Tbc contact study
Wonca Europe 2014, Lisbon: Tbc contact studyWonca Europe 2014, Lisbon: Tbc contact study
Wonca Europe 2014, Lisbon: Tbc contact study
 
Prototype and Ideate
Prototype and Ideate Prototype and Ideate
Prototype and Ideate
 

Similar a Integración continua

U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdfEric Quiñones
 
Bootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integrationBootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integrationDomènec Vallès
 
Migrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal ServersMigrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal ServersEdwin Cruz
 
Fundamentos del vídeo para web
Fundamentos del vídeo para webFundamentos del vídeo para web
Fundamentos del vídeo para webDavid Hurtado
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...Plain Concepts
 
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...Francisco Javier Baena Ríos
 
Continuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroContinuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroAngel Nuñez
 
Introducción a SharePoint Framework
Introducción a SharePoint FrameworkIntroducción a SharePoint Framework
Introducción a SharePoint FrameworkHaaron Gonzalez
 
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 OnlineErnesto Cardenas Cangahuala
 
Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfLeonardo Micheloni
 
Computadora
ComputadoraComputadora
ComputadoraValeHdz
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
 
Tercera evaluacion marta
Tercera evaluacion martaTercera evaluacion marta
Tercera evaluacion martaMaaaaaaaaaarta
 
Los test de integración tambien merecen tener vida: AzureDevOps para dar ALMa...
Los test de integración tambien merecen tener vida:AzureDevOps para dar ALMa...Los test de integración tambien merecen tener vida:AzureDevOps para dar ALMa...
Los test de integración tambien merecen tener vida: AzureDevOps para dar ALMa...Nacho Fanjul Corteguera
 

Similar a Integración continua (20)

U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
 
Bootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integrationBootcamp2012dsv code management continuois integration
Bootcamp2012dsv code management continuois integration
 
Migrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal ServersMigrando Rails Apps entre Cloud y Bare Metal Servers
Migrando Rails Apps entre Cloud y Bare Metal Servers
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Fundamentos del vídeo para web
Fundamentos del vídeo para webFundamentos del vídeo para web
Fundamentos del vídeo para web
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
Sevilla Mongo Developers Group - MongoDB: Cómo aprendimos que la culpa era nu...
 
Continuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to HeroContinuous Integration - Going from Zero to Hero
Continuous Integration - Going from Zero to Hero
 
Introducción a SharePoint Framework
Introducción a SharePoint FrameworkIntroducción a SharePoint Framework
Introducción a SharePoint Framework
 
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
 
Docker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdfDocker_K8S_lecciones_netcoreconf_2022.pdf
Docker_K8S_lecciones_netcoreconf_2022.pdf
 
Computadora
ComputadoraComputadora
Computadora
 
Html5 vs Flash
Html5 vs FlashHtml5 vs Flash
Html5 vs Flash
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
Tercera evaluacion marta
Tercera evaluacion martaTercera evaluacion marta
Tercera evaluacion marta
 
Oficios
OficiosOficios
Oficios
 
Los test de integración tambien merecen tener vida: AzureDevOps para dar ALMa...
Los test de integración tambien merecen tener vida:AzureDevOps para dar ALMa...Los test de integración tambien merecen tener vida:AzureDevOps para dar ALMa...
Los test de integración tambien merecen tener vida: AzureDevOps para dar ALMa...
 

Último

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

Integración continua