SlideShare una empresa de Scribd logo
1 de 19
C R I S T I A N R O M E R O M A T E S A N Z
C O L E G I A D O 1 0 5 C O L E G I O I N G E N I E R O S I N F O R M Á T I C O S
Integración continua: el coste de
oportunidad
Punto de partida
1. Desarrollos de aplicaciones heterogéneos con estructuras
diferentes.
2. Librerías usadas sin soporte actual y con bugs conocidos
en productos subidos a producción.
3. Escasez de pruebas unitarias/ integración en desarrollos
existentes.
4. Trazas de logs y gestión de excepciones poco clara entre
capas.
5. Fases de desarrollo cortas, fases de mantenimiento
grandes (por no decir infinitas).
6. Dificultad a la hora de acometer una refactorización.
7. Desarrollo nuevas funcionalidades generan errores en las
ya existentes.
Problemática
Si has llegado a esta diapositiva, es que te preocupa el
futuro de las aplicaciones dentro de tu entidad.
- La mala noticia son los graves problemas que hemos
detectado.
- La buena noticia es que tenemos solución para los
posibles dolores de cabeza que generaría los problemas
expuestos anteriormente.
Bienvenido a la integración
continua
Que es integración continua?
“The essence of my philosophy to software delivery is to build software so
that it is always in a state where it could be put into production. We call
this Continuous Delivery because we are continuously running a
deployment pipeline that tests if this software is in a state to be delivered.”
Definición para toda la familia: la integración continua
se basa en tener siempre subido código a nuestro repositorio
que pueda ser puesto en producción, el proceso se encarga de
ver si nuestro software cumple una seria de requisitos
(pruebas, calidad etc..).
Caso positivo Despliegue automático en entorno
Caso negativo Correos a los implicados para corregir los errores
Reingeniería de procesos desarrollo del
software
1. En los 90 se desarrollaba software de manera atómica
y desarrollos basados en clientes pesados.
2. En los años 2000 el auge web trae los desarrollos
basados en clientes ligeros con servidores pesados
3. A finales de los años 2000 no solo interesa la web:
Servicios Rest, móviles, web…
 Necesitamos piezas desacopladas y probadas. Ahora tienen
que ser muy reutilizables.
 Necesitamos un punto central donde se prueba y se analice
todo el código de nuestra entidad para garantizar a quien nos
consume las reglas del juego y que todo funciona
correctamente.
 Necesitamos equipos de expertos concienciados en la
necesidad de crear código de calidad.
Símil tecnológico
Madrid Barcelona
A favor En contra
• Yo conozco mi coche.
• Soy el mejor conduciendo con
este vehículo.
• Esto funciona y no lo cambio.
• Sirve para ir de un sitio A a
otro sitio B como otros coches.
• Puedo llegar mas rápido a los
sitios.
• Mas comodidad para
conductor y acompañantes.
• Menor consumo.
• Mayor seguridad en
transporte.
• Menor siniestralidad
Símil real uso integración continua
Programación Sin CI Programación Con CI
• Yo conozco mi código
• Soy el mejor programando con mi
metodología
• Esto funciona y no lo cambio.
• Hago lo mismo que el resto con la
“misma calidad”
• Mi código es mi tesoro (aunque el
90% sea copy paste )
• He probado y funciona
“perfectamente”
• Todos conocen mi código
(maven/gradle, pruebas,
frameworks)
• Somos lo mejores desarrollando con
una metodología real y tangible
• Menor consumo de “recursos”:
equipos pequeños pero con mucha
formación.
• Uso recursos en la nube, me centro
en mi negocio y en lo que soy bueno.
• Todo se prueba para garantizar su
funcionamiento y para facilitar
refactorizaciones futuras
Consecuencias de desarrollos sin integración
continua
1. No existe un sitio común donde se valide la herramienta. En
local cada uno “certifica” que ha terminado y funciona
correctamente
2. La realidad es otra: códigos con muchas líneas, con muchos if y
poco claros debido a que nadie valida su calidad, solo el propio
desarrollador.
3. No se conoce la versiones de las librerías que se usan, ni tan
siquiera si estas funcionan correctamente.
4. En mi máquina esto me “funciona”. Se suba código a
repositorios que no funciona y sin todas las dependencias:
gasto de tiempo y dinero en algo que no aporta valor.
5. Tenemos desarrollos grandes donde cada cambio supone
romper cosas que “funcionaban”. Mantenimiento infinito
con gran coste.
6. Curva de aprendizaje enorme para nuevos desarrolladores: el
conocimiento nunca reside en el código solo en la cabeza de los
equipos
Argumentos en contra de su uso
1. Hacer pruebas y comprobar la integridad de nuestros
proyectos consume tiempo en algo que no aporta
funcionalidad a nuestro proyecto. Resultado: Gran coste
de mantenimiento
2. Yo puedo programarlo todo, no me fio en el rendimiento de
estas nuevas metodologías y herramientas (complejo del
super-programador)  Resultado: Reinventamos ruedas
cada dia que nos ponemos delante de nuestro IDE favorito.
3. Esta metodología en otras entidades se puede usar pero mi
empresa es diferente  Resultado: Tiempos de desarrollo
infinitos y poca calidad en código. Programemos entonces
en ensamblador  !!!!
4. No conozco estas nuevas herramientas y por lo tanto me será
mas complicado avanzar  Resultado: desarrollos
repetitivos con programadores poco motivados.
Soy Jenkins vengo a poner orden
Os presento a nuestro nuevo amigo a partir de ahora:
JENKINS:
Para servirles
Jenkins: y quien es el ???
1. Es la herramienta de integración continua de libre distribución mas usada en
las empresas de todo el mundo. (Dell o Sony, proyectos de código abierto
como GitHub y organizaciones varias como pueden ser Ebay, Facebook etc…)
2. Compila nuestro código y lanza un serie de tareas que nosotros le digamos:
 Lanzamiento de test unitarios y de integración
 Pruebas de carga
 Pruebas de integración con otros artefactos que me usan o uso para
ver que no rompe nada que ya estaba funcionando.
 Comprobación del numero de líneas que prueban nuestros test.
 Comprobaciones de calidad de código
 Envió de los posibles errores a las personas que lo han
realizado/responsables.
 Puesta automática de nuestros desarrollos en servidores/ entornos
de pruebas para tener siempre subido el ultimo código estable.
TOMCAT, WAS, TESTFAIRY, TESTFLIGHT ETC….
3. A partir de ahora es un miembro mas del equipo y como tal debe de ser
mimado por todos 
Jenkins: Interfaz de usuario
Tareas a realizar con el código de la entidad.
Jenkins: Interfaz de usuario
Dependencias entre tareas
Jenkins: Interfaz de usuario
Cobertura de los test
Jenkins: Interfaz de usuario
Resultado de las ejecuciones
Jenkins: Interfaz de usuario
Resultado de las ejecuciones
Jenkins: Interfaz de usuario
Ejemplo subida automática a Testflight
Jenkins: Interfaz de usuario
Subida automática al servidor de desarrollo
Uso local/uso en la nube
Jenkins instalación versus Cloudbeed
Jenkins puede ser usado como instalación local, como servicio o
bien corriendo en cualquier servidor de aplicaciones.
Existe una versión en la nube con todo lo necesario para tener
entornos reales sin necesidad de mucho conocimiento.
Elegir uno u otro dependerá si queremos primar que nuestro
código nunca salga de la entidad o bien queremos minimizar
costes de manera enorme, donde solo tendremos que
preocuparnos de usar, nunca de instalar.

Más contenido relacionado

La actualidad más candente

atSistemas - Presentación Integración Continua AUG Barcelona enero13
atSistemas - Presentación Integración Continua AUG Barcelona enero13atSistemas - Presentación Integración Continua AUG Barcelona enero13
atSistemas - Presentación Integración Continua AUG Barcelona enero13atSistemas
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015 César Hernández
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion ContinuaLenin Lozano
 
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 la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .NetIntroducción a la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .NetAbel Quintana Lopez
 
SonarQube: ¿cómo de malo es mi software?
SonarQube: ¿cómo de malo es mi software?SonarQube: ¿cómo de malo es mi software?
SonarQube: ¿cómo de malo es mi software?Tomás Moreno Bernal
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverDavid Gómez García
 
Testing como parte de la cultura DevOps
Testing como parte de la cultura DevOpsTesting como parte de la cultura DevOps
Testing como parte de la cultura DevOpsAbel Quintana Lopez
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioOsvaldo
 
Cómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebasCómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebasAbel Quintana Lopez
 
E2E testing frameworks:lo bueno, lo malo y lo feo
E2E testing frameworks:lo bueno, lo malo y lo feoE2E testing frameworks:lo bueno, lo malo y lo feo
E2E testing frameworks:lo bueno, lo malo y lo feoAbel Quintana Lopez
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...César Hernández
 
Continuous Testing en un ambiente DevOps
Continuous Testing en un ambiente DevOpsContinuous Testing en un ambiente DevOps
Continuous Testing en un ambiente DevOpsSoftware Guru
 
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de PruebasGlobant
 

La actualidad más candente (20)

atSistemas - Presentación Integración Continua AUG Barcelona enero13
atSistemas - Presentación Integración Continua AUG Barcelona enero13atSistemas - Presentación Integración Continua AUG Barcelona enero13
atSistemas - Presentación Integración Continua AUG Barcelona enero13
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
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 la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .NetIntroducción a la automatización de pruebas con tecnologías .Net
Introducción a la automatización de pruebas con tecnologías .Net
 
SonarQube: ¿cómo de malo es mi software?
SonarQube: ¿cómo de malo es mi software?SonarQube: ¿cómo de malo es mi software?
SonarQube: ¿cómo de malo es mi software?
 
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)Testing Ruby on Rails (spanish)
Testing Ruby on Rails (spanish)
 
Integración Continua
Integración ContinuaIntegración Continua
Integración Continua
 
Testing como parte de la cultura DevOps
Testing como parte de la cultura DevOpsTesting como parte de la cultura DevOps
Testing como parte de la cultura DevOps
 
Continuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudioContinuous Delivery Un caso de estudio
Continuous Delivery Un caso de estudio
 
Cómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebasCómo iniciarme en el mundo de la automatización de pruebas
Cómo iniciarme en el mundo de la automatización de pruebas
 
Selenium
SeleniumSelenium
Selenium
 
E2E testing frameworks:lo bueno, lo malo y lo feo
E2E testing frameworks:lo bueno, lo malo y lo feoE2E testing frameworks:lo bueno, lo malo y lo feo
E2E testing frameworks:lo bueno, lo malo y lo feo
 
Scrum overview
Scrum overview Scrum overview
Scrum overview
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
 
Continuous Testing en un ambiente DevOps
Continuous Testing en un ambiente DevOpsContinuous Testing en un ambiente DevOps
Continuous Testing en un ambiente DevOps
 
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
¡Introducción a Cypress! - Globant Tech Insiders: Automatización de Pruebas
 

Destacado

Destacado (6)

Chuleta Github: La potencia con control !!!!
Chuleta Github: La potencia con control !!!!Chuleta Github: La potencia con control !!!!
Chuleta Github: La potencia con control !!!!
 
Java 1.8:Road to Functional Language
Java 1.8:Road to Functional LanguageJava 1.8:Road to Functional Language
Java 1.8:Road to Functional Language
 
Curso Spring Roo Spring Data Jpa Maven
Curso Spring Roo Spring Data Jpa MavenCurso Spring Roo Spring Data Jpa Maven
Curso Spring Roo Spring Data Jpa Maven
 
Git: guia fácil para uso con Github
Git: guia fácil para uso con GithubGit: guia fácil para uso con Github
Git: guia fácil para uso con Github
 
Maven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerásMaven Divide tu código, pruébalo y vencerás
Maven Divide tu código, pruébalo y vencerás
 
Integración Continua con Apps Xamarin
Integración Continua con Apps XamarinIntegración Continua con Apps Xamarin
Integración Continua con Apps Xamarin
 

Similar a El coste de no usar integración continua

Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancewill2294
 
¿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
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Eduardo Diaz
 
PROCESO DE DESARROLLO DE SOFTWARE.pptx
PROCESO DE DESARROLLO DE SOFTWARE.pptxPROCESO DE DESARROLLO DE SOFTWARE.pptx
PROCESO DE DESARROLLO DE SOFTWARE.pptxjuan gonzalez
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareJose Manuel Ortega Candel
 
Cypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumCypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumSoftware Guru
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modularguestb97266b9
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
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
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software'Jorge Martinez
 
#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
 
Resolucion de guia
Resolucion de guiaResolucion de guia
Resolucion de guiareina vigil
 
Resolucion de guia
Resolucion de guiaResolucion de guia
Resolucion de guiareina vigil
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxCompusoftnetCiaLtda
 

Similar a El coste de no usar integración continua (20)

Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
METODOLOGIA XP
METODOLOGIA XPMETODOLOGIA XP
METODOLOGIA XP
 
Ra.1..
Ra.1..Ra.1..
Ra.1..
 
¿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?
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
GENEX
GENEXGENEX
GENEX
 
PROCESO DE DESARROLLO DE SOFTWARE.pptx
PROCESO DE DESARROLLO DE SOFTWARE.pptxPROCESO DE DESARROLLO DE SOFTWARE.pptx
PROCESO DE DESARROLLO DE SOFTWARE.pptx
 
Herramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos softwareHerramientas de integración continua en proyectos software
Herramientas de integración continua en proyectos software
 
Cypress en un mundo lleno de Selenium
Cypress en un mundo lleno de SeleniumCypress en un mundo lleno de Selenium
Cypress en un mundo lleno de Selenium
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
DevOps on AZURE
DevOps on AZUREDevOps on AZURE
DevOps on AZURE
 
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)
 
Tecnicas de ingenieria de software
Tecnicas de ingenieria de softwareTecnicas de ingenieria de software
Tecnicas de ingenieria de software
 
#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
 
Resolucion de guia
Resolucion de guiaResolucion de guia
Resolucion de guia
 
Resolucion de guia
Resolucion de guiaResolucion de guia
Resolucion de guia
 
pruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptxpruebasunitarias-110921232512-phpapp02.pptx
pruebasunitarias-110921232512-phpapp02.pptx
 

Último

BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 

Último (20)

Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 

El coste de no usar integración continua

  • 1. C R I S T I A N R O M E R O M A T E S A N Z C O L E G I A D O 1 0 5 C O L E G I O I N G E N I E R O S I N F O R M Á T I C O S Integración continua: el coste de oportunidad
  • 2. Punto de partida 1. Desarrollos de aplicaciones heterogéneos con estructuras diferentes. 2. Librerías usadas sin soporte actual y con bugs conocidos en productos subidos a producción. 3. Escasez de pruebas unitarias/ integración en desarrollos existentes. 4. Trazas de logs y gestión de excepciones poco clara entre capas. 5. Fases de desarrollo cortas, fases de mantenimiento grandes (por no decir infinitas). 6. Dificultad a la hora de acometer una refactorización. 7. Desarrollo nuevas funcionalidades generan errores en las ya existentes.
  • 3. Problemática Si has llegado a esta diapositiva, es que te preocupa el futuro de las aplicaciones dentro de tu entidad. - La mala noticia son los graves problemas que hemos detectado. - La buena noticia es que tenemos solución para los posibles dolores de cabeza que generaría los problemas expuestos anteriormente. Bienvenido a la integración continua
  • 4. Que es integración continua? “The essence of my philosophy to software delivery is to build software so that it is always in a state where it could be put into production. We call this Continuous Delivery because we are continuously running a deployment pipeline that tests if this software is in a state to be delivered.” Definición para toda la familia: la integración continua se basa en tener siempre subido código a nuestro repositorio que pueda ser puesto en producción, el proceso se encarga de ver si nuestro software cumple una seria de requisitos (pruebas, calidad etc..). Caso positivo Despliegue automático en entorno Caso negativo Correos a los implicados para corregir los errores
  • 5. Reingeniería de procesos desarrollo del software 1. En los 90 se desarrollaba software de manera atómica y desarrollos basados en clientes pesados. 2. En los años 2000 el auge web trae los desarrollos basados en clientes ligeros con servidores pesados 3. A finales de los años 2000 no solo interesa la web: Servicios Rest, móviles, web…  Necesitamos piezas desacopladas y probadas. Ahora tienen que ser muy reutilizables.  Necesitamos un punto central donde se prueba y se analice todo el código de nuestra entidad para garantizar a quien nos consume las reglas del juego y que todo funciona correctamente.  Necesitamos equipos de expertos concienciados en la necesidad de crear código de calidad.
  • 6. Símil tecnológico Madrid Barcelona A favor En contra • Yo conozco mi coche. • Soy el mejor conduciendo con este vehículo. • Esto funciona y no lo cambio. • Sirve para ir de un sitio A a otro sitio B como otros coches. • Puedo llegar mas rápido a los sitios. • Mas comodidad para conductor y acompañantes. • Menor consumo. • Mayor seguridad en transporte. • Menor siniestralidad
  • 7. Símil real uso integración continua Programación Sin CI Programación Con CI • Yo conozco mi código • Soy el mejor programando con mi metodología • Esto funciona y no lo cambio. • Hago lo mismo que el resto con la “misma calidad” • Mi código es mi tesoro (aunque el 90% sea copy paste ) • He probado y funciona “perfectamente” • Todos conocen mi código (maven/gradle, pruebas, frameworks) • Somos lo mejores desarrollando con una metodología real y tangible • Menor consumo de “recursos”: equipos pequeños pero con mucha formación. • Uso recursos en la nube, me centro en mi negocio y en lo que soy bueno. • Todo se prueba para garantizar su funcionamiento y para facilitar refactorizaciones futuras
  • 8. Consecuencias de desarrollos sin integración continua 1. No existe un sitio común donde se valide la herramienta. En local cada uno “certifica” que ha terminado y funciona correctamente 2. La realidad es otra: códigos con muchas líneas, con muchos if y poco claros debido a que nadie valida su calidad, solo el propio desarrollador. 3. No se conoce la versiones de las librerías que se usan, ni tan siquiera si estas funcionan correctamente. 4. En mi máquina esto me “funciona”. Se suba código a repositorios que no funciona y sin todas las dependencias: gasto de tiempo y dinero en algo que no aporta valor. 5. Tenemos desarrollos grandes donde cada cambio supone romper cosas que “funcionaban”. Mantenimiento infinito con gran coste. 6. Curva de aprendizaje enorme para nuevos desarrolladores: el conocimiento nunca reside en el código solo en la cabeza de los equipos
  • 9. Argumentos en contra de su uso 1. Hacer pruebas y comprobar la integridad de nuestros proyectos consume tiempo en algo que no aporta funcionalidad a nuestro proyecto. Resultado: Gran coste de mantenimiento 2. Yo puedo programarlo todo, no me fio en el rendimiento de estas nuevas metodologías y herramientas (complejo del super-programador)  Resultado: Reinventamos ruedas cada dia que nos ponemos delante de nuestro IDE favorito. 3. Esta metodología en otras entidades se puede usar pero mi empresa es diferente  Resultado: Tiempos de desarrollo infinitos y poca calidad en código. Programemos entonces en ensamblador  !!!! 4. No conozco estas nuevas herramientas y por lo tanto me será mas complicado avanzar  Resultado: desarrollos repetitivos con programadores poco motivados.
  • 10. Soy Jenkins vengo a poner orden Os presento a nuestro nuevo amigo a partir de ahora: JENKINS: Para servirles
  • 11. Jenkins: y quien es el ??? 1. Es la herramienta de integración continua de libre distribución mas usada en las empresas de todo el mundo. (Dell o Sony, proyectos de código abierto como GitHub y organizaciones varias como pueden ser Ebay, Facebook etc…) 2. Compila nuestro código y lanza un serie de tareas que nosotros le digamos:  Lanzamiento de test unitarios y de integración  Pruebas de carga  Pruebas de integración con otros artefactos que me usan o uso para ver que no rompe nada que ya estaba funcionando.  Comprobación del numero de líneas que prueban nuestros test.  Comprobaciones de calidad de código  Envió de los posibles errores a las personas que lo han realizado/responsables.  Puesta automática de nuestros desarrollos en servidores/ entornos de pruebas para tener siempre subido el ultimo código estable. TOMCAT, WAS, TESTFAIRY, TESTFLIGHT ETC…. 3. A partir de ahora es un miembro mas del equipo y como tal debe de ser mimado por todos 
  • 12. Jenkins: Interfaz de usuario Tareas a realizar con el código de la entidad.
  • 13. Jenkins: Interfaz de usuario Dependencias entre tareas
  • 14. Jenkins: Interfaz de usuario Cobertura de los test
  • 15. Jenkins: Interfaz de usuario Resultado de las ejecuciones
  • 16. Jenkins: Interfaz de usuario Resultado de las ejecuciones
  • 17. Jenkins: Interfaz de usuario Ejemplo subida automática a Testflight
  • 18. Jenkins: Interfaz de usuario Subida automática al servidor de desarrollo
  • 19. Uso local/uso en la nube Jenkins instalación versus Cloudbeed Jenkins puede ser usado como instalación local, como servicio o bien corriendo en cualquier servidor de aplicaciones. Existe una versión en la nube con todo lo necesario para tener entornos reales sin necesidad de mucho conocimiento. Elegir uno u otro dependerá si queremos primar que nuestro código nunca salga de la entidad o bien queremos minimizar costes de manera enorme, donde solo tendremos que preocuparnos de usar, nunca de instalar.