SlideShare uma empresa Scribd logo
1 de 3
Baixar para ler offline
8 www.coiicv.org
Bit@cora Enero 2016
El objetivo de este artículo es comentar a
grandes rasgos en qué consiste el proceso
de integración continua en proyectos de sof-
tware, pasando posteriormente a comentar
herramientas específicas que podríamos
utilizar para automatizar dicho proceso .
La integración continua es una práctica de
desarrollo software ligada a la programa-
ción extrema que consiste en automatizar
el proceso de integración de código para po-
der realizarlo de la manera más continuada
posible, donde los miembros del equipo in-
tegran su trabajo de forma frecuente en un
repositorio.
Cada integración se verifica compilando el
código fuente y obteniendo un ejecutable o
build de forma automatizada. Además tam-
bién se pasan las pruebas y métricas de ca-
lidad para detectar los errores tan pronto
como sea posible.
La idea básica es que los desarrolladores
suban los cambios de forma frecuente al re-
positorio, para que en caso de conflicto, los
errores se puedan solucionar lo antes posi-
ble. De esta forma se automatizarían todos
los pasos, desde obtener el código fuente
hasta ejecutar los tests.
El proceso normal que se sigue en un es-
quema de trabajo CI es el siguiente:
•	 Los desarrollares envían sus modifica-
ciones al repositorio gestionado por un
sistema de control de versiones (Git,
svn, subversion).
•	 El servidor de integración continua mo-
nitoriza el repositorio buscando cambios
y ejecuta automáticamente el build cada
vez que se produzca algún cambio.
•	 Una vez finalizado el proceso de build
(integración, construcción, pruebas y
despliegue) el servidor envía a los res-
ponsables un email con el resultado del
proceso para obtener feedback de posi-
bles errores que se estén produciendo.
•	 El servidor realiza el paso 2 continua-
mente.
Las ventajas de usar un servidor de inte-
gración continua son:
•	 Posibilidad de monitorizar el control de
versiones y actuar ante cualquier cam-
Herramientas de integración continua en
proyectos software
José Manuel Ortega Candel
Centers Technician de Everis.
@jmortegac
www.linkedin.com/in/jmortega1
9www.coiicv.org
Bit@cora Enero 2016
hay que hacer en el proceso de construc-
ción del entregable. Por ejemplo, podría-
mos programar una tarea en la que se esté
comprobando cada cierto tiempo el reposi-
torio de control de versiones, de esta forma
cuando un desarrollador quiera subir su có-
digo al control de versiones, este se com-
pile y se ejecuten los tests unitarios y de
integración.
Si el resultado no es el esperado o hay al-
gún error, Jenkins notificará al desarrolla-
dor, o al equipo de QA, para que lo solucio-
ne. Si el build es correcto, podremos indicar
a Jenkins que integre el código y lo suba al
repositorio de control de versiones.
Travis CI es un servidor de integración
continua en la nube, desde el cual podemos
vincular nuestra cuenta de Github. Cada
vez que realizamos un commit & push
a nuestro repositorio de Github, detecta
dicho cambio y ejecuta las tareas que tenga
planificadas.
Una de las principales ventajas que ofrece
Travis CI es que no necesitamos crearnos
nuestro propio servidor ya que viene
integrado en Github y se puede utilizar
tanto para proyectos privados como open
source. Además ofrece soporte para
multitud de lenguajes entre los que se
pueden destacar: Clojure, Erlang, Groovy,
Haskell, Java, Javascript, Perl, PHP, Python,
Ruby y Scala.
Otra de las ventajas que tenemos con
Travis CI es que el entorno de integración
continua está compuesto de múltiples
runtimes o entornos de ejecución. De este
forma, podemos probar nuestras librerías o
aplicaciones contra distintas configuraciones
sin tener que tenerlas instaladas en local.
Hudson es una servidor de integración
continua escrito en Java, que se ejecuta en
servidores de aplicaciones como Apache
Tomcat o Glassfish. Trabaja con la mayoría
de herramientas de control de inversiones y
bio, así como evitar conflictos entre las
versiones utilizadas para generar los
entregables. Al realizar la compilación
en el servidor se garantiza que siempre
se usa la misma versión del compilador,
SDKs y librerías de terceros.
•	 Permite detectar rápidamente
errores introducidos por cambios en el
código. Al hacer que el código se compile
cada vez que se hace el commit en el
servidor de integración continua, los
errores se suelen detectar en cuestión
de minutos.
•	 Mantener un histórico de los resultados
de las compilaciones. Dependiendo de
los análisis que estemos realizando
sobre nuestro código, esto nos permite
ver cómo ha evolucionado la cobertura
de código de los tests y otras métricas
como complejidad y líneas de código.
•	 Al ejecutarse las pruebas unitarias cada
vez que se ejecuta el build, permite que
el desarrollador pueda darse cuenta
rápidamente de cualquier error en su
código.
•	 Desde el servidor se puede indicar
que se lancen métricas de calidad y
visualizar los resultados dentro de
la misma herramienta. También se
pueden ver los resultados de los tests,
generar y visualizar la documentación
del proyecto o incluso pasar una versión
estable del software al entorno de QA
para ser probado, a pre-producción o
producción.
Entre las herramientas que disponemos
hoy en día en forma de servidores de in-
tegración continua que son open source
podemos destacar: Jenkins, Travis CI y
Hudson.
Jenkins es un servidor donde la base son
las tareas, donde indicamos qué es lo que
10 www.coiicv.org
Bit@cora Enero 2016
puede ejecutar proyectos basados en Apa-
che Ant y Apache maven, así como trabajar
también con shell scripts y procesos batch.
Conclusiones
El concepto de integración continua es una
forma de desarrollo de software que mejo-
ra el proceso y la puesta en producción del
producto desarrollado, mediante la aplica-
ción de herramientas de automatización y
mejora continua del proceso.
Este proceso es parte fundamental para
mantener la calidad de todo el sistema, y
ayuda a identificar rápidamente problemas
y corregirlos con tiempo.
Al integrar frecuentemente el código, y con
la ayuda de las herramientas comentadas
como Jenkins, es posible puede monitori-
zar la calidad del código y su cobertura de
pruebas así como tener una visión global el
estado del proyecto en todo momento.
La idea es que estos servidores se encar-
guen de descargar el código de los reposi-
torios, pasar las pruebas unitarias y mos-
trar el resultado de las mismas.

Mais conteúdo relacionado

Mais procurados

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)Jacobo García López de Araujo
 
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
 
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
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryJuan Mauricio
 
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
 
Introducción a Team Foundation Service, ALM en la Nube
Introducción a Team Foundation Service, ALM en la NubeIntroducción a Team Foundation Service, ALM en la Nube
Introducción a Team Foundation Service, ALM en la NubeErnesto Cardenas Cangahuala
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsavanttic Consultoría Tecnológica
 
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
 
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
 
Liquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practicaLiquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practicaSoftware Guru
 
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
 
Liquid Day - DevOps y Xamarin
Liquid Day - DevOps y XamarinLiquid Day - DevOps y Xamarin
Liquid Day - DevOps y XamarinSoftware Guru
 
Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.Alejandro Varas H.
 
Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Naim Jhon Cruzado Paredes
 
¿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?Micael Gallego
 
Liquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverlessLiquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverlessSoftware Guru
 

Mais procurados (20)

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)
 
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
 
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
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
DevOps como habilitador de continous delivery
DevOps como habilitador de continous deliveryDevOps como habilitador de continous delivery
DevOps como habilitador de continous delivery
 
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
 
Introducción a Team Foundation Service, ALM en la Nube
Introducción a Team Foundation Service, ALM en la NubeIntroducción a Team Foundation Service, ALM en la Nube
Introducción a Team Foundation Service, ALM en la Nube
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
 
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
 
El reto del DevOps agil
El reto del DevOps agilEl reto del DevOps agil
El reto del DevOps agil
 
Diseñando y operando al estilo DevOps
Diseñando y operando al estilo DevOpsDiseñando y operando al estilo DevOps
Diseñando y operando al estilo DevOps
 
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
 
Liquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practicaLiquid Day - Testing de la teoria a practica
Liquid Day - Testing de la teoria a practica
 
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
 
Liquid Day - DevOps y Xamarin
Liquid Day - DevOps y XamarinLiquid Day - DevOps y Xamarin
Liquid Day - DevOps y Xamarin
 
Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.Cloud & DevOps: encontrando seguridad y soporte en la nube.
Cloud & DevOps: encontrando seguridad y soporte en la nube.
 
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
 
Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010
 
¿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?
 
Liquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverlessLiquid Day - Desmitificando serverless
Liquid Day - Desmitificando serverless
 

Semelhante a Herramientas de integración continua en proyectos software

Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins armolinamilla
 
Xamarin Fest DevOps
Xamarin Fest DevOpsXamarin Fest DevOps
Xamarin Fest DevOpsjuanmdura
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOpsHablemosDeTesting
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAmazon Web Services LATAM
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancewill2294
 
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 continuoTestingUy
 
Técnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWSTécnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWSAmazon Web Services LATAM
 
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
 

Semelhante a Herramientas de integración continua en proyectos software (20)

CI integración continua
CI   integración continuaCI   integración continua
CI integración continua
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins Meetup Integración Continua y Jenkins
Meetup Integración Continua y Jenkins
 
Xamarin Fest DevOps
Xamarin Fest DevOpsXamarin Fest DevOps
Xamarin Fest DevOps
 
Testlink
TestlinkTestlink
Testlink
 
Las mejores herramientas para realizar pruebas de software
Las mejores herramientas para realizar pruebas de softwareLas mejores herramientas para realizar pruebas de software
Las mejores herramientas para realizar pruebas de software
 
DevOps on AZURE
DevOps on AZUREDevOps on AZURE
DevOps on AZURE
 
Ra.1..
Ra.1..Ra.1..
Ra.1..
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
#HablemosDeTestingDay - José Castillo: Estrategia de QA en un contexto de DevOps
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Jenkins ci + selenium
Jenkins ci + seleniumJenkins ci + selenium
Jenkins ci + selenium
 
Continuos Delivery Commit stage
Continuos Delivery Commit stageContinuos Delivery Commit stage
Continuos Delivery Commit stage
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
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
 
Springloops
SpringloopsSpringloops
Springloops
 
Scm
ScmScm
Scm
 
Técnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWSTécnicas para la Implementación de Desarrollo Continuo en AWS
Técnicas para la Implementación de Desarrollo Continuo en AWS
 
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
 

Mais de Jose Manuel Ortega Candel

Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdfAsegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdfJose Manuel Ortega Candel
 
PyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfJose Manuel Ortega Candel
 
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Jose Manuel Ortega Candel
 
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Jose Manuel Ortega Candel
 
Evolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfEvolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfJose Manuel Ortega Candel
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfJose Manuel Ortega Candel
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudJose Manuel Ortega Candel
 
Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Jose Manuel Ortega Candel
 
Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Jose Manuel Ortega Candel
 
Sharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sSharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sJose Manuel Ortega Candel
 
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Jose Manuel Ortega Candel
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanJose Manuel Ortega Candel
 
ELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamJose Manuel Ortega Candel
 
Monitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsMonitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsJose Manuel Ortega Candel
 
Python memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorPython memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorJose Manuel Ortega Candel
 

Mais de Jose Manuel Ortega Candel (20)

Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdfAsegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
Asegurando tus APIs Explorando el OWASP Top 10 de Seguridad en APIs.pdf
 
PyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdf
 
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
Ciberseguridad en Blockchain y Smart Contracts: Explorando los Desafíos y Sol...
 
Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops Evolution of security strategies in K8s environments- All day devops
Evolution of security strategies in K8s environments- All day devops
 
Evolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdfEvolution of security strategies in K8s environments.pdf
Evolution of security strategies in K8s environments.pdf
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdf
 
Computación distribuida usando Python
Computación distribuida usando PythonComputación distribuida usando Python
Computación distribuida usando Python
 
Seguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloudSeguridad en arquitecturas serverless y entornos cloud
Seguridad en arquitecturas serverless y entornos cloud
 
Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud Construyendo arquitecturas zero trust sobre entornos cloud
Construyendo arquitecturas zero trust sobre entornos cloud
 
Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python Tips and tricks for data science projects with Python
Tips and tricks for data science projects with Python
 
Sharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8sSharing secret keys in Docker containers and K8s
Sharing secret keys in Docker containers and K8s
 
Implementing cert-manager in K8s
Implementing cert-manager in K8sImplementing cert-manager in K8s
Implementing cert-manager in K8s
 
Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)Python para equipos de ciberseguridad(pycones)
Python para equipos de ciberseguridad(pycones)
 
Python para equipos de ciberseguridad
Python para equipos de ciberseguridad Python para equipos de ciberseguridad
Python para equipos de ciberseguridad
 
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodanShodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
Shodan Tips and tricks. Automatiza y maximiza las búsquedas shodan
 
ELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue TeamELK para analistas de seguridad y equipos Blue Team
ELK para analistas de seguridad y equipos Blue Team
 
Monitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source toolsMonitoring and managing Containers using Open Source tools
Monitoring and managing Containers using Open Source tools
 
Python Memory Management 101(Europython)
Python Memory Management 101(Europython)Python Memory Management 101(Europython)
Python Memory Management 101(Europython)
 
SecDevOps containers
SecDevOps containersSecDevOps containers
SecDevOps containers
 
Python memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collectorPython memory managment. Deeping in Garbage collector
Python memory managment. Deeping in Garbage collector
 

Último

tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 

Último (20)

tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 

Herramientas de integración continua en proyectos software

  • 1. 8 www.coiicv.org Bit@cora Enero 2016 El objetivo de este artículo es comentar a grandes rasgos en qué consiste el proceso de integración continua en proyectos de sof- tware, pasando posteriormente a comentar herramientas específicas que podríamos utilizar para automatizar dicho proceso . La integración continua es una práctica de desarrollo software ligada a la programa- ción extrema que consiste en automatizar el proceso de integración de código para po- der realizarlo de la manera más continuada posible, donde los miembros del equipo in- tegran su trabajo de forma frecuente en un repositorio. Cada integración se verifica compilando el código fuente y obteniendo un ejecutable o build de forma automatizada. Además tam- bién se pasan las pruebas y métricas de ca- lidad para detectar los errores tan pronto como sea posible. La idea básica es que los desarrolladores suban los cambios de forma frecuente al re- positorio, para que en caso de conflicto, los errores se puedan solucionar lo antes posi- ble. De esta forma se automatizarían todos los pasos, desde obtener el código fuente hasta ejecutar los tests. El proceso normal que se sigue en un es- quema de trabajo CI es el siguiente: • Los desarrollares envían sus modifica- ciones al repositorio gestionado por un sistema de control de versiones (Git, svn, subversion). • El servidor de integración continua mo- nitoriza el repositorio buscando cambios y ejecuta automáticamente el build cada vez que se produzca algún cambio. • Una vez finalizado el proceso de build (integración, construcción, pruebas y despliegue) el servidor envía a los res- ponsables un email con el resultado del proceso para obtener feedback de posi- bles errores que se estén produciendo. • El servidor realiza el paso 2 continua- mente. Las ventajas de usar un servidor de inte- gración continua son: • Posibilidad de monitorizar el control de versiones y actuar ante cualquier cam- Herramientas de integración continua en proyectos software José Manuel Ortega Candel Centers Technician de Everis. @jmortegac www.linkedin.com/in/jmortega1
  • 2. 9www.coiicv.org Bit@cora Enero 2016 hay que hacer en el proceso de construc- ción del entregable. Por ejemplo, podría- mos programar una tarea en la que se esté comprobando cada cierto tiempo el reposi- torio de control de versiones, de esta forma cuando un desarrollador quiera subir su có- digo al control de versiones, este se com- pile y se ejecuten los tests unitarios y de integración. Si el resultado no es el esperado o hay al- gún error, Jenkins notificará al desarrolla- dor, o al equipo de QA, para que lo solucio- ne. Si el build es correcto, podremos indicar a Jenkins que integre el código y lo suba al repositorio de control de versiones. Travis CI es un servidor de integración continua en la nube, desde el cual podemos vincular nuestra cuenta de Github. Cada vez que realizamos un commit & push a nuestro repositorio de Github, detecta dicho cambio y ejecuta las tareas que tenga planificadas. Una de las principales ventajas que ofrece Travis CI es que no necesitamos crearnos nuestro propio servidor ya que viene integrado en Github y se puede utilizar tanto para proyectos privados como open source. Además ofrece soporte para multitud de lenguajes entre los que se pueden destacar: Clojure, Erlang, Groovy, Haskell, Java, Javascript, Perl, PHP, Python, Ruby y Scala. Otra de las ventajas que tenemos con Travis CI es que el entorno de integración continua está compuesto de múltiples runtimes o entornos de ejecución. De este forma, podemos probar nuestras librerías o aplicaciones contra distintas configuraciones sin tener que tenerlas instaladas en local. Hudson es una servidor de integración continua escrito en Java, que se ejecuta en servidores de aplicaciones como Apache Tomcat o Glassfish. Trabaja con la mayoría de herramientas de control de inversiones y bio, así como evitar conflictos entre las versiones utilizadas para generar los entregables. Al realizar la compilación en el servidor se garantiza que siempre se usa la misma versión del compilador, SDKs y librerías de terceros. • Permite detectar rápidamente errores introducidos por cambios en el código. Al hacer que el código se compile cada vez que se hace el commit en el servidor de integración continua, los errores se suelen detectar en cuestión de minutos. • Mantener un histórico de los resultados de las compilaciones. Dependiendo de los análisis que estemos realizando sobre nuestro código, esto nos permite ver cómo ha evolucionado la cobertura de código de los tests y otras métricas como complejidad y líneas de código. • Al ejecutarse las pruebas unitarias cada vez que se ejecuta el build, permite que el desarrollador pueda darse cuenta rápidamente de cualquier error en su código. • Desde el servidor se puede indicar que se lancen métricas de calidad y visualizar los resultados dentro de la misma herramienta. También se pueden ver los resultados de los tests, generar y visualizar la documentación del proyecto o incluso pasar una versión estable del software al entorno de QA para ser probado, a pre-producción o producción. Entre las herramientas que disponemos hoy en día en forma de servidores de in- tegración continua que son open source podemos destacar: Jenkins, Travis CI y Hudson. Jenkins es un servidor donde la base son las tareas, donde indicamos qué es lo que
  • 3. 10 www.coiicv.org Bit@cora Enero 2016 puede ejecutar proyectos basados en Apa- che Ant y Apache maven, así como trabajar también con shell scripts y procesos batch. Conclusiones El concepto de integración continua es una forma de desarrollo de software que mejo- ra el proceso y la puesta en producción del producto desarrollado, mediante la aplica- ción de herramientas de automatización y mejora continua del proceso. Este proceso es parte fundamental para mantener la calidad de todo el sistema, y ayuda a identificar rápidamente problemas y corregirlos con tiempo. Al integrar frecuentemente el código, y con la ayuda de las herramientas comentadas como Jenkins, es posible puede monitori- zar la calidad del código y su cobertura de pruebas así como tener una visión global el estado del proyecto en todo momento. La idea es que estos servidores se encar- guen de descargar el código de los reposi- torios, pasar las pruebas unitarias y mos- trar el resultado de las mismas.