SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Presentación de Integración Continua




Eric Pugh                                    MADRID

                                             27 y 28 de Noviembre
¿Quién soy yo?



            Principal de OpenSource Connections,
           una impresa boutique de Agile
           Contribuidor de CruiseControl
           Miembro de Apache Software
           Foundation
           Presentador en muchas conferencias,
           incluyendo OSCON, ApacheCON, jTDS
           Fascinado por el arte del designo de
           software




           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

Buenos días, me llamo Eric Pugh y soy de Virginia de los Estados Unidos. Por los que no sepan, Virginia es un estado en la costa
este, justo al sur del capital del país, Washington, D.C. Vivo allí con mi esposa Kate y nuestro hijo de un año, Morgan. Pero, hace
tres anos, antes del tiempo de hijos, Kate y yo vivimos por dos anos en Valencia. Era allí, en Valencia, donde me envolví con
opensource software y ???de el arte del designo de software. Así que, me da mucho placer tener la oportunidad de volver a España
y ser una parte de esta conferencia.

Soy el presidente de una empresa que se llama OpenSource Connections. Somos una empresa de programadores de Agile. Hoy
en día, Agile es un tema muy popular, ?Que significa, exactamente? Lo que hago yo es entrenar a los programadores cuando un
equipo quiere usar la metodología de Agile.

También, soy contributor de CruiseControl, que es el sistema de integración continua original. He dado varios discursos sobre
temas de testing, incluyendo integración continua, en conferencias como OSCON, ApacheCON, y Jornadas de Testeo de Software
en Valencia en 2006.

?Por que estoy aquí? Hoy, os voy a hablar de integración continua. Como profesionales de software, trabajamos en un mundo de
cambio constante y fechas topes cortas. Así que, necesitamos herramientas que nos ayuden a superar estos desafíos. Integración
continua es uno de esta herramienta.
¿De qué hablamos?



           ¿Qué es Integración Continua?
           ¿Porque esta importante de mi?
           ¿Qué necesitamos para usar Integración Continua?
           Demostración de Hudson
           ¡Preguntas!




                                                                                                                               3
           Integración Continua                                                                     MADRID, 27 y 28 de
                                                                                                    Noviembre

Vamos a hablar sobre que es integración continua y porque es importante. También, aprendemos de que se necesita para usar
integración continua y cuales son los desafíos iniciales. Vamos a aprender lo que se necesita para un sistema de integración
continua muy exitoso. Hablaremos de las mejores practicas de integración continua y se puede aplicarlas todas a proyectos de
cualquier lengua, como .NET, Java, y otros plataformas. Ayer, Fran durante el keynote hablo sobre Agile y la metodología XP.
Integración continua forma parte de XP, pero esta muy bien para todos los equipos, cualquier proceso que ellos usan.

Al final, habrá una demostración de Hudson, el sistema de integración continua mas popular. Saldréis con la información necesaria
para poner en practica integración continua con vuestras empresas.
¿Qué es Integración Continua?




                  De la disertación trascendental de Martin Fowler:


                  “a fully automated and reproducible build,
                  including testing, that runs many times a day”.




                   http://martinfowler.com/articles/continuousIntegration.html




                                                                                                                                  4
           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

En XXXX, Martin Fowler, científico principal de ThoughtWorks, defino integración continua con estas palabras, “ a fully automated
and reproducible build, including testing, that runs many times a day”. Esta cita se traduce básicamente a “un build totalmente
automático, que incluye el testeo, y que se repite muchas veces cada día”.

Ahora, vamos a ver lo que significa esta cita.
Feedback Rápido




                                             < 10 minutos




           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

Aquí tenemos el corazón de Integración Continua: un ciclo muy rápido que ocurre muchas veces cada día. Un programador
escribe un poco de código nuevo, que incluye una nueva prueba para la función nueva. Después de Check in el código, el build
empieza automáticamente. El build no es solamente compilar el código, sino que también esta haciendo las pruebas. Sin pruebas,
tenemos solamente una maquina de compilar. Y la información que el código compila esta bien, pero no indica que el código
funciona según los requisitos. Las pruebas son lo que indica que el código funcione según los requisitos, y no hemos introducido
nuevos problemas en el sistema.

La información necesita ir al programador rápidamente. La manera mas típica de enviar la información es por correo electrónico,
pero hay otras maneras también. Por ejemplo, a mi me gusta recibir los resultados por SMS en mi móvil.

El tiempo total por este ciclo no debe pasar los diez minutos. Es mejor check in el código frecuentemente durante el día en vez de
solo una vez al final del día. Así si hay un problema en el código se puede resolverlo rápidamente porque el cambio en el código
esta muy cerca del problema que se ve en el ámbito de Integración Continua. Si el ciclo fuera mas de diez minutos, seria mas
probable que el programador cambiaría su atención a otro asunto como la merienda, la próxima reunión, navegar la red, lo que sea.
¿Cómo es importante la Integración Continua para las siguientes personas?




                                                                                                                                   6
           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

En esta conferencia hay personas que representan muchos papeles diferentes. Hay programadores, testers, y jefes de proyecto.
Todas estas personas pueden contribuir al éxito del uso de Integración Continua. Todas las personas reciben información distinta
de Integración Continua también.
La vida de un programador sin IC...



          Código inestable, la integración es difícil
         Muchos errores de build
         Hay solo una persona que puede build el proyecto
         Hacer demostraciones es muy difícil
         Un ciclo de feedback muy largo




            Cada día es una lucha para ser productivo


                                                                                                                                  7
           Integración Continua                                                                        MADRID, 27 y 28 de
                                                                                                       Noviembre

El impacto de integración continua es mas significante para los programadores que para cualquier otra persona. Sin integración
continua, la vida de un programador es mas difícil. Un programador funciona en un ambiente con muchos cambios, causados por
otros programadores, cambios en los requisitos, y cambios en las dependencias del sistema. Un programador que cambia el
código necesita integrar los cambios de otros programadores en el mismo código. Por ejemplo, un programador entra en la oficina
para empezar un nuevo día de trabajo y recibe el código nuevo de control de código. Empieza a trabajar y descubre que los
cambios de otras personas del día previo no funcionan con su propio código. Antes de escribir código nuevo, necesita resolver los
problemas que ya existen. Otras veces, el baso de datos es cambiado por otras personas y el programador tiene que encontrar los
cambios y añadir los cambios a su propio baso de datos. Estos cambios resultan en muchos errores del build.

En proyectos sin integración continua, es muy típico que es muy difícil de crear el sistema porque es la responsabilidad de solo una
persona hacer el build. Es peligroso poner toda la responsabilidad de un build en una persona--?Que pasa si esta persona este
enferma, vaya de vacaciones, o simplemente se niegue cumplir sus responsabilidades profesionales?

Otro problema que existe sin integración continua es que hacer demostraciones para los clientes es muy difícil. Reunir todos los
elementos de un sistema es muy complicado, y requiere mucho tiempo y esfuerzo. Así, a los programadores no les apetece hacer
demostraciones.
Por consiguiente, el ciclo de feedback de los clientes y los testers es muy largo, y así probablemente habrá mas problemas en
general.

Sin integración continua, cada día es una lucha para ser productivo.
La vida de un programador con IC...



            El proceso para hacer builds es fácil y se
           puede repetir
           Se eliminan errores humanos
           Demostraciones son muy fáciles
           El ciclo de feedback es muy
           rápido




            ¡Cada día él sabe que puede hacer código!


                                                                                                                               8
           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

En cambio, la vida de un programador con integración continua es mucho mejor.
Primero, el proceso para hacer builds es fácil y se puede repetir porque se tiene un sistema para hacer builds muchas veces cada
día. Este sistema es muy fácil porque no hay pasos manuales y hay un guión automático para hacerlo.
También, integración continua es un poco como el Gran Hermano de Orwell (en un sentido positivo, digo): los errores humanos son
visibles y corregidos muy rápidamente. Por ejemplo, cuando yo estoy escribiendo código y creo un nuevo archivo, es muy común
que olvido de checkin este nuevo archivo. Con integración continua, recibo un mensaje que el build no funciona porque el archivo
nuevo no esta en control de código. Así, puedo checkin el archivo y el build funciona sin que los otros programadores se den
cuenta.

En adición, las demostraciones son mejores con integración continua. Cuando el cliente quiere ver una demostración, es fácil para
el programador usar un guión y que el sistema entero funciona. El sabe que todo el sistema funciona porque todas las pruebas
tuverion éxito en el ambiento de Integración Continua.

El ciclo de feedback es muy rápido con integración continua. Tan pronto como un problema ocurra, como el de no checkin un
archivo nuevo, el programador recibe un mensaje indicando este problema. El puede resolver el problema rápidamente y todos los
programadores saben que ellos pueden usar el código nuevo sin problemas.

Así, con integración continua, cada día el programador sabe que puede hacer código.
Para un tester




        
             control
             ¿Qué hay en el build?
            ¿Cuáles son los cambios?
            ¿Cómo se verifica?




                                                                                                                                  9
           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

Integración continua también es útil para personas con otros papeles, como los testers. Aunque soy programador, trabajo mucho
con los testers. Fui una conferencia en Tejas que se llama “CITcon: Continous Integration conference”. Y allí un tester, se llama
Elisabeth Hendrickson, me dio esta pulsera que siempre llevo. Dice “Test Obsessed”, o Obsesionado con el testeo. Ella tiene una
pagina de la red a testobessed.com que esta un buen lugar para mas información.

El desafío mas grande para los testers es entender cuales versiones de cuales componentes forman el sistema. Ellos necesitan
saber que ha cambiado entre un build y otro. Cuando entienden lo que forma un build, luego saben el código que se necesita
probar. Por tener builds que tienen pruebas automáticas, ellos pueden enfocar en el código nuevo y no necesitan hacer pruebas
en el código viejo. Al crecer el sistema, la cantidad de trabajo de los testers no aumenta demasiado. Sin integración continua,
ellos necesitan repetir todas las pruebas para todas las funciones porque no saben cuando hay una regresión. Así, los testers
tienen control de los cambios en el ambiente de testeo.

También, cuando los pruebas de integraccion escribi por los testers, ellos conocen que los pruebas corriendo cada vez hay un
cambio de el código. Cuando hay un errores en una prueba automática porque un programador cambiar el código, esta posible por
el programador arreglar la prueba. Integración continua ayuda el comunicación entre los testers y los programadores.
Para un jefe de proyecto




        
             visibilidad




                                                                                                                               10
           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

Para un jefe de proyecto, la cosa mas importante es tener acceso a información fiel sobre sus proyectos. Un sistema de
integración continua provee información sobre la salud del proyecto, como cuantas veces cada día hay un error de build o si todas
las pruebas tienen éxito.

Aquí, se ve un ejemplo de siete proyectos en un sistema de CruiseControl. Se ve que todos los proyectos tienen pruebas exitosas,
con la excepción de uno, que se llama hightechcville (en rojo). Sin integración continua el jefe tiene que preguntar a todos los
programadores y testers acerca del estado del código, y esto interrumpe la concentración de todos. Pero, con integración
continua, el jefe tiene una pagina web que muestra los resultados, y así tiene toda la información necesaria al alcance de sus
propias manos. El tiene mucha visibilidad con sus proyectos.
Para un jefe de programadores




                                                                                                                                 11
           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

Aquí tenemos un ejemplo de un reportaje de Dashboard de integración continua de un cliente nuestro. El cliente tenia código en
muchas lenguas, incluyendo C, Java, y .NET. También, el código estaba en muchos diferentes estados de salud y edad. Ellos
querían un sistema de integración continua para tener mas visibilidad en el código. Así que, introducimos un sistema de
integración continua que contenía muchas herramientas para vigilar la salud del código.

Por ejemplo, se puede ver dos proyectos que no tienen errores, deDupe y JavaCommon y la fecha de creación de la información.
También, podemos ver otro proyecto que se llama MFWS.NET que no tuvo éxito. Con este proyecto, noventa ocho por ciento de
las pruebas tenían éxito, y las pruebas incluyeron solamente veinte tres por ciento del código. Así, este documento tiene mucha
información en cuanto a la salud de los proyectos, y el documento se actualiza cada día.
Para un equipo de programadores




        
            seguridad




                                                                                                                            12
           Integración Continua                                                                     MADRID, 27 y 28 de
                                                                                                    Noviembre

Aquí tenemos una foto de dos lamparas de lava. Hay una de color verde y otra de color rojo. Cuando todo esta bien, y no hay
problemas con el build, la lampara de verde esta encendida. Todas las personas del equipo saben que no hay problemas. !Pero!
Cuando hay un problema con el build, la lampara verde se apaga, y la de color de rojo se enciende. Así todo el mundo sabe que
hay un problema con el código y que no es la hora adecuada de bajar el nuevo código, Ellos deben esperar hasta que la persona
que causo el problema reciba un mensaje y arregle el problema. Este tipo de aparato provee información ambiental o “glanceable
information” porque es muy simple para entender.

Otra razón que me gusta usar las lamparas de lava es porque la “lava” es de acera. Y la lampara necesita diez minutos mas o
menos encendida antes de que la lava empiece a mover . Por esta razón, el programador tiene diez minutos mas o menos para
arreglar el problema!

Cuando la lampara verde esta encendida, todos los miembros del equipo saben que la salud del código esta bien!
Para un equipo de programadores




                                                                                                                               13
           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

Aquí tenemos una foto de un semáforo que muestra lo que esta pasando ahora mismo en el sistema de integración continua. Este
semáforo se localiza en las oficina de Thoughtworks en Bangalore, India. La luz roja indica que el build ha fracasado. Se puede ver
el proceso del sistema por las luces, empezando en la parte de abajo. Cuando el sistema esta esperando a hacer un build, la luz
mas al fondo esta encendida, y después cuando el código esta compilando, la próxima luz se enciende. Durante la fase de las
pruebas, las terceras y cuartas luces están encendidas.
Para un equipo de programadores




                                                                                                                               14
           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

Este es un ejemplo de un tablón de anuncios usado por uno de nuestros clientes para compartir información sobre el estado del
proyecto. Los varios reportajes están producidos cada noche por el sistema de integración continua. El tablón de anuncios esta en
una área publica, donde personas que forman parte del equipo de programadores tanto como personas afuera del equipo pueden
verlo. Hay reportajes sobre la complejidad del código, resultados de pruebas, y estimaciones en cuanto al trabajo que queda por
hacer.

Este tipo de tablón de anuncios a menudo se llama un “radiador de información” porque mucho gente ver lo, sin ir a una pagina del
web.
Para un equipo de programadores




                                                                                                                             15
           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

Aquí se ve una versión “high-tech” del previo tablón de anuncios que se usa un monitor de pantalla grande para mostrar los
resultados de los builds en el sistema de integración continua.
¿Qué necesitas para empezar?



            Una máquina dedicada
           Source Control
           Build Script Automática
           Sistema de notificación




                                                                                                                              16
           Integración Continua                                                                     MADRID, 27 y 28 de
                                                                                                    Noviembre

Bueno, hasta aquí hemos hablado de lo que es la integración continua y cuales son los beneficios de usarla. Pero, ?como
empezamos?

La primera cosa que se necesita es una maquina dedicada solo para la integración continua. Integración continua causa muchos
builds cada día y es demasiado trabajo anadir este trabajo a una maquina no dedicada exclusivamente para este sistema.

La segunda cosa que se necesita es un sistema de control de código, como Subversion, CVS, o Visual Source Safe. El sistema de
control de código contiene todo el código con lo cual las personas trabajan y asegura que no hay conflictos en el código causados
por mas de una persona haciendo cambios a la vez. Todo debe ser una parte de control de código, incluyendo el código, pruebas y
guiones para hacer el build.

El sistema de integración continua vigilara el control de código para cambios y cuando encuentra un cambio, bajara en nuevo
código y empezara un build. Es muy importante que el build sea un guión automático. Los builds no pueden contar con un IDE
como Eclipse o Visual Studio porque todo tiene que pasar usando un guión. Si una ventanilla de pop-up aparece, el build se
atasca, esperando una respuesta de una persona que no existe. Hay muchas herramientas que se puede usar para escribir un
guión, como ANT, MAKE, NANT, MSBuild, dependiendo en su entorno.

El éxito o fracaso de un build no significan nada si nadie sepa que haya pasado. El método mas común de notificar es por correo
electrónico, pero hay muchos otros métodos posibles, incluyendo SMS, Jabber, y RSS.
¿ Cuáles son los desafíos de usar IC?




                                                                                                                              17
           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

Después de tener los requisitos para empezar a usar integración continua, hay 4 desafíos posibles que hay que superar. Hay
desafíos de cultura, de ambiente, de los proyectos y de la herramienta de integración continua. Vamos a hablar de estos desafíos
posibles y como se pueden resolver.
Desafío Uno: Un cambio de cultura



           IC necesita un campeón que es un embajador para los jefes de la
          empresa.
          Lideres de pensamiento de la empresa que pueden convencer a los
          desarrollador a aceptar los cambios

           Nesscita una prueba caso muy
          exitoso.
             ¿Un nuevo proyecto es posible?




                                                                                                                              18
           Integración Continua                                                                      MADRID, 27 y 28 de
                                                                                                     Noviembre

El primer desafío posible es que integración continua es un cambio de la vida normal para las personas en el equipo, así
representa un cambio de cultura. Tal vez los programadores perciben a integración continua como un Gran Hermano que destaca
todos sus errores con luces rojas o mensajes enviados a su equipo. También, ellos pueden pensar que la necesidad de escribir
pruebas como mas trabajo. Por eso, hay que tener un campeón para integración continua: una persona respetada que sea un líder
de pensamiento dentro de la empresa. Esta persona asegura que el sistema es para ayudar a los programadores y que las
pruebas resultan en mejor código con menos errores. En adición, el campeón necesita explicar a los jefes por que necesitan cosas
como una maquina dedicada, tiempo para mantener el sistema, y cuales son los beneficios generales para la empresa.

Para empezar a usar integración continua, es mas fácil si tienes un proyecto nuevo en que los procesos no han sido establecidos
anteriormente. Así, desde el empiezo estas creando el código usando un guión automático y hay pruebas para todo el código.

Con el ejemplo de un proyecto exitoso de integración continua, otros equipos de programadores querrán empezar a usarla
también, especialmente si se puede ver públicamente los resultados de los builds. La primera vez que se me olvido de check in un
archivo nuevo y recibí un mensaje, es cuando yo me convertí en un “creyente” de integración continua.
Desafío Dos: Desafíos Ambientales




    Todas las pruebas de unidad son pruebas de
   unidad verdaderas, no son pruebas de
   integración
   No hay mucha dependencia externa
   Un build server para IC es muy fuerte
   Hay estrategia para poner nuevo código en el
   IC ambiente
   Es fácil para cambiar el base de datos




                                                                                                                                19
           Integración Continua                                                                       MADRID, 27 y 28 de
                                                                                                      Noviembre

A menudo, la gente dice “Mi proyecto es demasiado complejo para usar integración continua”. Sin embargo, hay que integrar todos
los componentes del sistema en un sistema grande. Esperar al fin del proyecto solo aumenta los riesgos de integración. La mejor
manera de simplificar el proceso de integración es hacerlo muchas veces.

Por escribir guiones automáticos, se quita la complejidad por hacer cosas como separar las pruebas de integración que requieren
dependencias externas de las pruebas de unidad. Se desarrolla maneras de fingir dependencias externas para que sea mas fácil
de build y probar el código.

A menudo es difícil publicar el código a un ámbito de pruebas, pero por hacerlo frecuentemente en el ámbito de integración
continua, muchas veces al día, se quita cualquier debilidad en el proceso de despliegue en cualquier ambiente.

A veces cuando hay muchos proyectos en integración continua, los builds se acumulan y requieren mucho tiempo. Este frustra a
los programadores porque ellos esperan los resultados. Cuando esto pasa, puedes conseguir una maquina mas fuerte y cambiar
las pruebas para separar pruebas de integración de pruebas de unidad. Es típico hacer las pruebas de integración durante la
noche.

La dependencia externa mas común es un base de datos controlado por un administrador de base de datos. Con un ámbito de
integración continua en que se hace pruebas muchas veces al día, hay que fijar de nuevo la información en el base de datos sin
intervención humana.
Desafío Tres: Características del proyecto



            Es fácil cuando no hay muchas divisones del código
           Hay muchos cambios pequeños. Hay cambios constantemente
           durante el día.
           Hay pruebas de unidad para todo el codigo
           El código está listo para producción




                                                                                                                                  20
           Integración Continua                                                                         MADRID, 27 y 28 de
                                                                                                        Noviembre

?Como se verifica si un proyecto se puede adaptar fácilmente a la integración continua?

El código que solo tiene un tronco es mas fácil para el sistema de integración continua de vigilar. Cuando los requisitos del proyecto
se estructuran para que varias personas puedan trabajar en partes diferentes a la misma vez, ellos pueden checkin los cambios
frecuentemente sin preocuparse de crear conflictos. Cuando hay buenas pruebas de unidad de todo el código, hay mas confianza
en los resultados del build del sistema de integración continua son verdaderas. El build es mas que solo una compilación. El código
que esta escrito bien sin complejidad y con pruebas es mejor para usar con integración continua.
Desafío Cuatro: Estabilidad de herramienta de IC




                                                                                                X
            El sistema de integración continua es tan
           importante como el sistema de control de
           codigo.
           El sistema de IC puede hacer builds muy
           rápidamente.
           ¿Quién tiene la responsabilidad para IC? Es
           muy importante que haya una persona con
           responsabilidad para IC.




                                                                                                ✓
           No hay alarmas falsas. Si hubieran alarmas
           falsas, los programadores no tendrían confianza
           en IC




                                                                                                                               21
           Integración Continua                                                                    MADRID, 27 y 28 de
                                                                                                   Noviembre

Como cualquiera herramienta, el sistema de integración continua puede tener problemas de funcionamiento si no se lo mantiene
con cuidado.

Por ejemplo, hace dos años visite una empresa y les pregunte si usaban la integración continua y el jefe de programadores me
dijo, “Si, lo usamos, y funciona muy bien. Nuestros builds deben funcionar perfectamente porque no hemos recibido ningún
mensaje de fracaso por meses”. Mas tarde, hable con uno de los programadores y el me confío que tampoco habían recibido
ningún mensaje de éxito por meses. Ellos habían cambiado la versión de Java usada por el proyecto y nunca habían cambiado el
sistema de integración continua para usar la nueva versión de Java. El sistema de integración continua envío un mensaje de
fracaso y había estado en un estado de fracaso desde entonces.

Para que funcione integración continua, hay que cambiarla según cambias los ambientes de los programadores y del testo. El
ejemplo que acabo de daros muestra lo que puede pasar si no haya una persona encargada de vigilar la salud del ambiente de
integración continua.
Otro ejemplo de un problema de funcionamiento evitable ocurrió en otro proyecto. Usábamos integración continua para enviar
mensajes cada diez minutos cuando el build no tenia éxito. Enviamos los mensajes por SMS a nuestros móviles y una vez hubo
un problema con una dependencia externa y yo recibí cuarenta y cinco mensajes en mi móvil. Aquel día, obviamente a mi no me
gusto el sistema de integración continua mucho porque no me ayudo, solo me molesto. Tenia que eliminar cuarenta y cinco
mensajes de texto en dos minutos.

Sin embargo, un sistema de integración continua bien mantenido no tiene estos problemas.
Demostración de Hudson




                                               22
   Integración Continua   MADRID, 27 y 28 de
                          Noviembre
¿Como se sigue?



            Continuous Integration: Improving Software Quality
           and Reducing Risk
           Introducción de Hudson: http://xnoccio.com/362-
           hudson-parte-1-introduccion/
           CITConf es la conferencia sobre IC




                                                                                                                           23
           Integración Continua                                                                   MADRID, 27 y 28 de
                                                                                                  Noviembre

?A donde vamos para aprender mas del tema de Integración Continua? Me encanta el libro que se llama “Continuous Integration:
Improving Software Quality and Reducing Risks” escribe de Paul Duvall. Es de la serie que se llama “Martin Fowler Signature
Book”, y tiene toda la información sobre Integración Continua en un libro.
El matriz de 22 diferentes sistemas de IC

        http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix




                                                                                                                           24
           Integración Continua                                                                    MADRID, 27 y 28 de
                                                                                                   Noviembre

En esta pagina web hay un matriz de veinte dos sistemas de integración continua, incluyendo sistemas de Open Source y sistemas
comerciales. Hay mucho información sobre las capacidades de los sistemas, incluyendo el tipo de control de código apoyado,
tipos de Build Management, y mucho mas.
¿Porque Integración Continua?



           Eliminar los errores humanos
           Las prueba corriendo mucho veces tiene mas beneficioso
           Una sistema puedes hacer reportes de la salud del proyecto
           ¡Eliminar problemas de integración!




                                                                                                                                25
           Integración Continua                                                                            MADRID, 27 y 28 de
                                                                                                           Noviembre

En resumen: ?Porque Integración Continua?

Hay cuatro razones claves:.

Numero uno es la eliminación de los errores humanos. Los errores humanos crean problemas para comunicación en el equipo.

Numero dos es que las pruebas son mas beneficiosas cuando ocurren muchas veces, y el tiempo entre la introducción de un
problema y la resolución del problema es muy corto.

Numero tres es que un sistema de integración continua es la fundación para un sistema de reportaje sobre la salud de los
proyectos.

Y la ultima razón es la eliminación de los problemas de integración, y por eso, la reducción del riesgo.
Eric Pugh epugh@opensourceconnections.com                                                  MADRID

                                                                                               27 y 28 de Noviembre


Gracias por vuestra atención. Ahora, por favor, haga cualquier pregunta que tengáis. Y también, cuando vosotros regresáis a
vuestras empresa, podéis enviar cualquiera pregunta a por email a epugh@opensourceconnections.com!

Muchísimas gracias.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Modelado, Ingenieria de Software
Modelado, Ingenieria de SoftwareModelado, Ingenieria de Software
Modelado, Ingenieria de Software
 
3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso3. modelos prescriptivos de proceso
3. modelos prescriptivos de proceso
 
Top 30 Node.js interview questions
Top 30 Node.js interview questionsTop 30 Node.js interview questions
Top 30 Node.js interview questions
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Belajar Dasar-Dasar GIT
Belajar Dasar-Dasar GITBelajar Dasar-Dasar GIT
Belajar Dasar-Dasar GIT
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
8 requirements engineering1
8 requirements engineering18 requirements engineering1
8 requirements engineering1
 
Unit test
Unit testUnit test
Unit test
 
Model View Controller (MVC)
Model View Controller (MVC)Model View Controller (MVC)
Model View Controller (MVC)
 
Selenium interview questions and answers
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answers
 
Asp.net state management
Asp.net state managementAsp.net state management
Asp.net state management
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
.Net Core
.Net Core.Net Core
.Net Core
 
Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101
 
Object oriented analysis
Object oriented analysisObject oriented analysis
Object oriented analysis
 
Escalabilidad
EscalabilidadEscalabilidad
Escalabilidad
 
Git
GitGit
Git
 
Java Multithreading and Concurrency
Java Multithreading and ConcurrencyJava Multithreading and Concurrency
Java Multithreading and Concurrency
 
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
What is Git | What is GitHub | Git Tutorial | GitHub Tutorial | Devops Tutori...
 

Ähnlich wie Integracion Continua

Dev ops en arquitectura de sistemas
Dev ops en arquitectura de sistemasDev ops en arquitectura de sistemas
Dev ops en arquitectura de sistemasMitzi Moncada
 
Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Eduardo Diaz
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de softwaresairarcf
 
Presentacion modelos de Software
Presentacion modelos de SoftwarePresentacion modelos de Software
Presentacion modelos de SoftwareMax Power
 
Ensayo ing. de software
Ensayo ing. de softwareEnsayo ing. de software
Ensayo ing. de software574224
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágilesPablo Macon
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Osver Fernandez V
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREJesus Yepez
 
Dev ops una perspectiva ágil más allá del código.
Dev ops  una perspectiva ágil más allá del código.Dev ops  una perspectiva ágil más allá del código.
Dev ops una perspectiva ágil más allá del código.Zaira Bermúdez
 
Dev ops una perspectiva ágil más allá del código.
Dev ops  una perspectiva ágil más allá del código.Dev ops  una perspectiva ágil más allá del código.
Dev ops una perspectiva ágil más allá del código.Zaira Bermúdez
 
Desarrollode software (1)
Desarrollode software (1)Desarrollode software (1)
Desarrollode software (1)turlahackers
 
Modelos en la ingeniería de software
Modelos en la ingeniería de softwareModelos en la ingeniería de software
Modelos en la ingeniería de softwareMarco Aurelio
 
Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)ManuelJimnez56
 
Methodologies in Software Development and IT
Methodologies in Software Development and ITMethodologies in Software Development and IT
Methodologies in Software Development and ITsebastianperezgonzal3
 
Paso 8 actividad colaborativa - propuesta ampliada
Paso 8   actividad colaborativa - propuesta ampliadaPaso 8   actividad colaborativa - propuesta ampliada
Paso 8 actividad colaborativa - propuesta ampliadaCristiam Gomez Quijano
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Eduardo Diaz
 
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
 

Ähnlich wie Integracion Continua (20)

Dev ops en arquitectura de sistemas
Dev ops en arquitectura de sistemasDev ops en arquitectura de sistemas
Dev ops en arquitectura de sistemas
 
Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017Devops meetup 21 de Junio 2017
Devops meetup 21 de Junio 2017
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Presentacion modelos de Software
Presentacion modelos de SoftwarePresentacion modelos de Software
Presentacion modelos de Software
 
Ensayo ing. de software
Ensayo ing. de softwareEnsayo ing. de software
Ensayo ing. de software
 
2.modelos del proceso
2.modelos del proceso2.modelos del proceso
2.modelos del proceso
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
Introduccion a la Ingenieria en Sistemas de Informacion, Examen Dos, Guia & R...
 
Metodologias agiles
Metodologias agilesMetodologias agiles
Metodologias agiles
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWARE
 
Dev ops una perspectiva ágil más allá del código.
Dev ops  una perspectiva ágil más allá del código.Dev ops  una perspectiva ágil más allá del código.
Dev ops una perspectiva ágil más allá del código.
 
Dev ops una perspectiva ágil más allá del código.
Dev ops  una perspectiva ágil más allá del código.Dev ops  una perspectiva ágil más allá del código.
Dev ops una perspectiva ágil más allá del código.
 
Desarrollode software (1)
Desarrollode software (1)Desarrollode software (1)
Desarrollode software (1)
 
Modelos en la ingeniería de software
Modelos en la ingeniería de softwareModelos en la ingeniería de software
Modelos en la ingeniería de software
 
Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)Ciclo de Vida del Software (Para SAIA)
Ciclo de Vida del Software (Para SAIA)
 
Luis
LuisLuis
Luis
 
Methodologies in Software Development and IT
Methodologies in Software Development and ITMethodologies in Software Development and IT
Methodologies in Software Development and IT
 
Paso 8 actividad colaborativa - propuesta ampliada
Paso 8   actividad colaborativa - propuesta ampliadaPaso 8   actividad colaborativa - propuesta ampliada
Paso 8 actividad colaborativa - propuesta ampliada
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
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)
 

Mehr von OpenSource Connections

How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessOpenSource Connections
 
The right path to making search relevant - Taxonomy Bootcamp London 2019
The right path to making search relevant  - Taxonomy Bootcamp London 2019The right path to making search relevant  - Taxonomy Bootcamp London 2019
The right path to making search relevant - Taxonomy Bootcamp London 2019OpenSource Connections
 
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullHaystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullOpenSource Connections
 
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonHaystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonOpenSource Connections
 
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...OpenSource Connections
 
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajHaystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajOpenSource Connections
 
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...OpenSource Connections
 
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlHaystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlOpenSource Connections
 
Haystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesHaystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesOpenSource Connections
 
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerHaystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerOpenSource Connections
 
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...OpenSource Connections
 
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...OpenSource Connections
 
Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...OpenSource Connections
 
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...OpenSource Connections
 
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...OpenSource Connections
 
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...OpenSource Connections
 
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah ViaOpenSource Connections
 

Mehr von OpenSource Connections (20)

Encores
EncoresEncores
Encores
 
Test driven relevancy
Test driven relevancyTest driven relevancy
Test driven relevancy
 
How To Structure Your Search Team for Success
How To Structure Your Search Team for SuccessHow To Structure Your Search Team for Success
How To Structure Your Search Team for Success
 
The right path to making search relevant - Taxonomy Bootcamp London 2019
The right path to making search relevant  - Taxonomy Bootcamp London 2019The right path to making search relevant  - Taxonomy Bootcamp London 2019
The right path to making search relevant - Taxonomy Bootcamp London 2019
 
Payloads and OCR with Solr
Payloads and OCR with SolrPayloads and OCR with Solr
Payloads and OCR with Solr
 
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie HullHaystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
Haystack 2019 Lightning Talk - The Future of Quepid - Charlie Hull
 
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim AllisonHaystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
Haystack 2019 Lightning Talk - State of Apache Tika - Tim Allison
 
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
Haystack 2019 Lightning Talk - Relevance on 17 million full text documents - ...
 
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj BharadwajHaystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
Haystack 2019 Lightning Talk - Solr Cloud on Kubernetes - Manoj Bharadwaj
 
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
Haystack 2019 Lightning Talk - Quaerite a Search relevance evaluation toolkit...
 
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan KohlHaystack 2019 - Search-based recommendations at Politico - Ryan Kohl
Haystack 2019 - Search-based recommendations at Politico - Ryan Kohl
 
Haystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon HughesHaystack 2019 - Search with Vectors - Simon Hughes
Haystack 2019 - Search with Vectors - Simon Hughes
 
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey GraingerHaystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
Haystack 2019 - Natural Language Search with Knowledge Graphs - Trey Grainger
 
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
Haystack 2019 - Search Logs + Machine Learning = Auto-Tagging Inventory - Joh...
 
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
Haystack 2019 - Improving Search Relevance with Numeric Features in Elasticse...
 
Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...Haystack 2019 - Architectural considerations on search relevancy in the conte...
Haystack 2019 - Architectural considerations on search relevancy in the conte...
 
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
Haystack 2019 - Custom Solr Query Parser Design Option, and Pros & Cons - Ber...
 
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...Haystack 2019 - Establishing a relevance focused culture in a large organizat...
Haystack 2019 - Establishing a relevance focused culture in a large organizat...
 
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
Haystack 2019 - Solving for Satisfaction: Introduction to Click Models - Eliz...
 
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
2019 Haystack - How The New York Times Tackles Relevance - Jeremiah Via
 

Kürzlich hochgeladen

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
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
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y maslida630411
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
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
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
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
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 

Kürzlich hochgeladen (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
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
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.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
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
PROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y masPROYECCIÓN DE VISTAS planos de vistas y mas
PROYECCIÓN DE VISTAS planos de vistas y mas
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
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
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
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
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 

Integracion Continua

  • 1. Presentación de Integración Continua Eric Pugh MADRID 27 y 28 de Noviembre
  • 2. ¿Quién soy yo?  Principal de OpenSource Connections, una impresa boutique de Agile Contribuidor de CruiseControl Miembro de Apache Software Foundation Presentador en muchas conferencias, incluyendo OSCON, ApacheCON, jTDS Fascinado por el arte del designo de software Integración Continua MADRID, 27 y 28 de Noviembre Buenos días, me llamo Eric Pugh y soy de Virginia de los Estados Unidos. Por los que no sepan, Virginia es un estado en la costa este, justo al sur del capital del país, Washington, D.C. Vivo allí con mi esposa Kate y nuestro hijo de un año, Morgan. Pero, hace tres anos, antes del tiempo de hijos, Kate y yo vivimos por dos anos en Valencia. Era allí, en Valencia, donde me envolví con opensource software y ???de el arte del designo de software. Así que, me da mucho placer tener la oportunidad de volver a España y ser una parte de esta conferencia. Soy el presidente de una empresa que se llama OpenSource Connections. Somos una empresa de programadores de Agile. Hoy en día, Agile es un tema muy popular, ?Que significa, exactamente? Lo que hago yo es entrenar a los programadores cuando un equipo quiere usar la metodología de Agile. También, soy contributor de CruiseControl, que es el sistema de integración continua original. He dado varios discursos sobre temas de testing, incluyendo integración continua, en conferencias como OSCON, ApacheCON, y Jornadas de Testeo de Software en Valencia en 2006. ?Por que estoy aquí? Hoy, os voy a hablar de integración continua. Como profesionales de software, trabajamos en un mundo de cambio constante y fechas topes cortas. Así que, necesitamos herramientas que nos ayuden a superar estos desafíos. Integración continua es uno de esta herramienta.
  • 3. ¿De qué hablamos? ¿Qué es Integración Continua? ¿Porque esta importante de mi? ¿Qué necesitamos para usar Integración Continua? Demostración de Hudson ¡Preguntas! 3 Integración Continua MADRID, 27 y 28 de Noviembre Vamos a hablar sobre que es integración continua y porque es importante. También, aprendemos de que se necesita para usar integración continua y cuales son los desafíos iniciales. Vamos a aprender lo que se necesita para un sistema de integración continua muy exitoso. Hablaremos de las mejores practicas de integración continua y se puede aplicarlas todas a proyectos de cualquier lengua, como .NET, Java, y otros plataformas. Ayer, Fran durante el keynote hablo sobre Agile y la metodología XP. Integración continua forma parte de XP, pero esta muy bien para todos los equipos, cualquier proceso que ellos usan. Al final, habrá una demostración de Hudson, el sistema de integración continua mas popular. Saldréis con la información necesaria para poner en practica integración continua con vuestras empresas.
  • 4. ¿Qué es Integración Continua? De la disertación trascendental de Martin Fowler: “a fully automated and reproducible build, including testing, that runs many times a day”. http://martinfowler.com/articles/continuousIntegration.html 4 Integración Continua MADRID, 27 y 28 de Noviembre En XXXX, Martin Fowler, científico principal de ThoughtWorks, defino integración continua con estas palabras, “ a fully automated and reproducible build, including testing, that runs many times a day”. Esta cita se traduce básicamente a “un build totalmente automático, que incluye el testeo, y que se repite muchas veces cada día”. Ahora, vamos a ver lo que significa esta cita.
  • 5. Feedback Rápido < 10 minutos Integración Continua MADRID, 27 y 28 de Noviembre Aquí tenemos el corazón de Integración Continua: un ciclo muy rápido que ocurre muchas veces cada día. Un programador escribe un poco de código nuevo, que incluye una nueva prueba para la función nueva. Después de Check in el código, el build empieza automáticamente. El build no es solamente compilar el código, sino que también esta haciendo las pruebas. Sin pruebas, tenemos solamente una maquina de compilar. Y la información que el código compila esta bien, pero no indica que el código funciona según los requisitos. Las pruebas son lo que indica que el código funcione según los requisitos, y no hemos introducido nuevos problemas en el sistema. La información necesita ir al programador rápidamente. La manera mas típica de enviar la información es por correo electrónico, pero hay otras maneras también. Por ejemplo, a mi me gusta recibir los resultados por SMS en mi móvil. El tiempo total por este ciclo no debe pasar los diez minutos. Es mejor check in el código frecuentemente durante el día en vez de solo una vez al final del día. Así si hay un problema en el código se puede resolverlo rápidamente porque el cambio en el código esta muy cerca del problema que se ve en el ámbito de Integración Continua. Si el ciclo fuera mas de diez minutos, seria mas probable que el programador cambiaría su atención a otro asunto como la merienda, la próxima reunión, navegar la red, lo que sea.
  • 6. ¿Cómo es importante la Integración Continua para las siguientes personas? 6 Integración Continua MADRID, 27 y 28 de Noviembre En esta conferencia hay personas que representan muchos papeles diferentes. Hay programadores, testers, y jefes de proyecto. Todas estas personas pueden contribuir al éxito del uso de Integración Continua. Todas las personas reciben información distinta de Integración Continua también.
  • 7. La vida de un programador sin IC...  Código inestable, la integración es difícil Muchos errores de build Hay solo una persona que puede build el proyecto Hacer demostraciones es muy difícil Un ciclo de feedback muy largo Cada día es una lucha para ser productivo 7 Integración Continua MADRID, 27 y 28 de Noviembre El impacto de integración continua es mas significante para los programadores que para cualquier otra persona. Sin integración continua, la vida de un programador es mas difícil. Un programador funciona en un ambiente con muchos cambios, causados por otros programadores, cambios en los requisitos, y cambios en las dependencias del sistema. Un programador que cambia el código necesita integrar los cambios de otros programadores en el mismo código. Por ejemplo, un programador entra en la oficina para empezar un nuevo día de trabajo y recibe el código nuevo de control de código. Empieza a trabajar y descubre que los cambios de otras personas del día previo no funcionan con su propio código. Antes de escribir código nuevo, necesita resolver los problemas que ya existen. Otras veces, el baso de datos es cambiado por otras personas y el programador tiene que encontrar los cambios y añadir los cambios a su propio baso de datos. Estos cambios resultan en muchos errores del build. En proyectos sin integración continua, es muy típico que es muy difícil de crear el sistema porque es la responsabilidad de solo una persona hacer el build. Es peligroso poner toda la responsabilidad de un build en una persona--?Que pasa si esta persona este enferma, vaya de vacaciones, o simplemente se niegue cumplir sus responsabilidades profesionales? Otro problema que existe sin integración continua es que hacer demostraciones para los clientes es muy difícil. Reunir todos los elementos de un sistema es muy complicado, y requiere mucho tiempo y esfuerzo. Así, a los programadores no les apetece hacer demostraciones. Por consiguiente, el ciclo de feedback de los clientes y los testers es muy largo, y así probablemente habrá mas problemas en general. Sin integración continua, cada día es una lucha para ser productivo.
  • 8. La vida de un programador con IC...  El proceso para hacer builds es fácil y se puede repetir Se eliminan errores humanos Demostraciones son muy fáciles El ciclo de feedback es muy rápido ¡Cada día él sabe que puede hacer código! 8 Integración Continua MADRID, 27 y 28 de Noviembre En cambio, la vida de un programador con integración continua es mucho mejor. Primero, el proceso para hacer builds es fácil y se puede repetir porque se tiene un sistema para hacer builds muchas veces cada día. Este sistema es muy fácil porque no hay pasos manuales y hay un guión automático para hacerlo. También, integración continua es un poco como el Gran Hermano de Orwell (en un sentido positivo, digo): los errores humanos son visibles y corregidos muy rápidamente. Por ejemplo, cuando yo estoy escribiendo código y creo un nuevo archivo, es muy común que olvido de checkin este nuevo archivo. Con integración continua, recibo un mensaje que el build no funciona porque el archivo nuevo no esta en control de código. Así, puedo checkin el archivo y el build funciona sin que los otros programadores se den cuenta. En adición, las demostraciones son mejores con integración continua. Cuando el cliente quiere ver una demostración, es fácil para el programador usar un guión y que el sistema entero funciona. El sabe que todo el sistema funciona porque todas las pruebas tuverion éxito en el ambiento de Integración Continua. El ciclo de feedback es muy rápido con integración continua. Tan pronto como un problema ocurra, como el de no checkin un archivo nuevo, el programador recibe un mensaje indicando este problema. El puede resolver el problema rápidamente y todos los programadores saben que ellos pueden usar el código nuevo sin problemas. Así, con integración continua, cada día el programador sabe que puede hacer código.
  • 9. Para un tester  control  ¿Qué hay en el build? ¿Cuáles son los cambios? ¿Cómo se verifica? 9 Integración Continua MADRID, 27 y 28 de Noviembre Integración continua también es útil para personas con otros papeles, como los testers. Aunque soy programador, trabajo mucho con los testers. Fui una conferencia en Tejas que se llama “CITcon: Continous Integration conference”. Y allí un tester, se llama Elisabeth Hendrickson, me dio esta pulsera que siempre llevo. Dice “Test Obsessed”, o Obsesionado con el testeo. Ella tiene una pagina de la red a testobessed.com que esta un buen lugar para mas información. El desafío mas grande para los testers es entender cuales versiones de cuales componentes forman el sistema. Ellos necesitan saber que ha cambiado entre un build y otro. Cuando entienden lo que forma un build, luego saben el código que se necesita probar. Por tener builds que tienen pruebas automáticas, ellos pueden enfocar en el código nuevo y no necesitan hacer pruebas en el código viejo. Al crecer el sistema, la cantidad de trabajo de los testers no aumenta demasiado. Sin integración continua, ellos necesitan repetir todas las pruebas para todas las funciones porque no saben cuando hay una regresión. Así, los testers tienen control de los cambios en el ambiente de testeo. También, cuando los pruebas de integraccion escribi por los testers, ellos conocen que los pruebas corriendo cada vez hay un cambio de el código. Cuando hay un errores en una prueba automática porque un programador cambiar el código, esta posible por el programador arreglar la prueba. Integración continua ayuda el comunicación entre los testers y los programadores.
  • 10. Para un jefe de proyecto  visibilidad 10 Integración Continua MADRID, 27 y 28 de Noviembre Para un jefe de proyecto, la cosa mas importante es tener acceso a información fiel sobre sus proyectos. Un sistema de integración continua provee información sobre la salud del proyecto, como cuantas veces cada día hay un error de build o si todas las pruebas tienen éxito. Aquí, se ve un ejemplo de siete proyectos en un sistema de CruiseControl. Se ve que todos los proyectos tienen pruebas exitosas, con la excepción de uno, que se llama hightechcville (en rojo). Sin integración continua el jefe tiene que preguntar a todos los programadores y testers acerca del estado del código, y esto interrumpe la concentración de todos. Pero, con integración continua, el jefe tiene una pagina web que muestra los resultados, y así tiene toda la información necesaria al alcance de sus propias manos. El tiene mucha visibilidad con sus proyectos.
  • 11. Para un jefe de programadores 11 Integración Continua MADRID, 27 y 28 de Noviembre Aquí tenemos un ejemplo de un reportaje de Dashboard de integración continua de un cliente nuestro. El cliente tenia código en muchas lenguas, incluyendo C, Java, y .NET. También, el código estaba en muchos diferentes estados de salud y edad. Ellos querían un sistema de integración continua para tener mas visibilidad en el código. Así que, introducimos un sistema de integración continua que contenía muchas herramientas para vigilar la salud del código. Por ejemplo, se puede ver dos proyectos que no tienen errores, deDupe y JavaCommon y la fecha de creación de la información. También, podemos ver otro proyecto que se llama MFWS.NET que no tuvo éxito. Con este proyecto, noventa ocho por ciento de las pruebas tenían éxito, y las pruebas incluyeron solamente veinte tres por ciento del código. Así, este documento tiene mucha información en cuanto a la salud de los proyectos, y el documento se actualiza cada día.
  • 12. Para un equipo de programadores  seguridad 12 Integración Continua MADRID, 27 y 28 de Noviembre Aquí tenemos una foto de dos lamparas de lava. Hay una de color verde y otra de color rojo. Cuando todo esta bien, y no hay problemas con el build, la lampara de verde esta encendida. Todas las personas del equipo saben que no hay problemas. !Pero! Cuando hay un problema con el build, la lampara verde se apaga, y la de color de rojo se enciende. Así todo el mundo sabe que hay un problema con el código y que no es la hora adecuada de bajar el nuevo código, Ellos deben esperar hasta que la persona que causo el problema reciba un mensaje y arregle el problema. Este tipo de aparato provee información ambiental o “glanceable information” porque es muy simple para entender. Otra razón que me gusta usar las lamparas de lava es porque la “lava” es de acera. Y la lampara necesita diez minutos mas o menos encendida antes de que la lava empiece a mover . Por esta razón, el programador tiene diez minutos mas o menos para arreglar el problema! Cuando la lampara verde esta encendida, todos los miembros del equipo saben que la salud del código esta bien!
  • 13. Para un equipo de programadores 13 Integración Continua MADRID, 27 y 28 de Noviembre Aquí tenemos una foto de un semáforo que muestra lo que esta pasando ahora mismo en el sistema de integración continua. Este semáforo se localiza en las oficina de Thoughtworks en Bangalore, India. La luz roja indica que el build ha fracasado. Se puede ver el proceso del sistema por las luces, empezando en la parte de abajo. Cuando el sistema esta esperando a hacer un build, la luz mas al fondo esta encendida, y después cuando el código esta compilando, la próxima luz se enciende. Durante la fase de las pruebas, las terceras y cuartas luces están encendidas.
  • 14. Para un equipo de programadores 14 Integración Continua MADRID, 27 y 28 de Noviembre Este es un ejemplo de un tablón de anuncios usado por uno de nuestros clientes para compartir información sobre el estado del proyecto. Los varios reportajes están producidos cada noche por el sistema de integración continua. El tablón de anuncios esta en una área publica, donde personas que forman parte del equipo de programadores tanto como personas afuera del equipo pueden verlo. Hay reportajes sobre la complejidad del código, resultados de pruebas, y estimaciones en cuanto al trabajo que queda por hacer. Este tipo de tablón de anuncios a menudo se llama un “radiador de información” porque mucho gente ver lo, sin ir a una pagina del web.
  • 15. Para un equipo de programadores 15 Integración Continua MADRID, 27 y 28 de Noviembre Aquí se ve una versión “high-tech” del previo tablón de anuncios que se usa un monitor de pantalla grande para mostrar los resultados de los builds en el sistema de integración continua.
  • 16. ¿Qué necesitas para empezar?  Una máquina dedicada Source Control Build Script Automática Sistema de notificación 16 Integración Continua MADRID, 27 y 28 de Noviembre Bueno, hasta aquí hemos hablado de lo que es la integración continua y cuales son los beneficios de usarla. Pero, ?como empezamos? La primera cosa que se necesita es una maquina dedicada solo para la integración continua. Integración continua causa muchos builds cada día y es demasiado trabajo anadir este trabajo a una maquina no dedicada exclusivamente para este sistema. La segunda cosa que se necesita es un sistema de control de código, como Subversion, CVS, o Visual Source Safe. El sistema de control de código contiene todo el código con lo cual las personas trabajan y asegura que no hay conflictos en el código causados por mas de una persona haciendo cambios a la vez. Todo debe ser una parte de control de código, incluyendo el código, pruebas y guiones para hacer el build. El sistema de integración continua vigilara el control de código para cambios y cuando encuentra un cambio, bajara en nuevo código y empezara un build. Es muy importante que el build sea un guión automático. Los builds no pueden contar con un IDE como Eclipse o Visual Studio porque todo tiene que pasar usando un guión. Si una ventanilla de pop-up aparece, el build se atasca, esperando una respuesta de una persona que no existe. Hay muchas herramientas que se puede usar para escribir un guión, como ANT, MAKE, NANT, MSBuild, dependiendo en su entorno. El éxito o fracaso de un build no significan nada si nadie sepa que haya pasado. El método mas común de notificar es por correo electrónico, pero hay muchos otros métodos posibles, incluyendo SMS, Jabber, y RSS.
  • 17. ¿ Cuáles son los desafíos de usar IC? 17 Integración Continua MADRID, 27 y 28 de Noviembre Después de tener los requisitos para empezar a usar integración continua, hay 4 desafíos posibles que hay que superar. Hay desafíos de cultura, de ambiente, de los proyectos y de la herramienta de integración continua. Vamos a hablar de estos desafíos posibles y como se pueden resolver.
  • 18. Desafío Uno: Un cambio de cultura  IC necesita un campeón que es un embajador para los jefes de la empresa. Lideres de pensamiento de la empresa que pueden convencer a los desarrollador a aceptar los cambios  Nesscita una prueba caso muy exitoso. ¿Un nuevo proyecto es posible? 18 Integración Continua MADRID, 27 y 28 de Noviembre El primer desafío posible es que integración continua es un cambio de la vida normal para las personas en el equipo, así representa un cambio de cultura. Tal vez los programadores perciben a integración continua como un Gran Hermano que destaca todos sus errores con luces rojas o mensajes enviados a su equipo. También, ellos pueden pensar que la necesidad de escribir pruebas como mas trabajo. Por eso, hay que tener un campeón para integración continua: una persona respetada que sea un líder de pensamiento dentro de la empresa. Esta persona asegura que el sistema es para ayudar a los programadores y que las pruebas resultan en mejor código con menos errores. En adición, el campeón necesita explicar a los jefes por que necesitan cosas como una maquina dedicada, tiempo para mantener el sistema, y cuales son los beneficios generales para la empresa. Para empezar a usar integración continua, es mas fácil si tienes un proyecto nuevo en que los procesos no han sido establecidos anteriormente. Así, desde el empiezo estas creando el código usando un guión automático y hay pruebas para todo el código. Con el ejemplo de un proyecto exitoso de integración continua, otros equipos de programadores querrán empezar a usarla también, especialmente si se puede ver públicamente los resultados de los builds. La primera vez que se me olvido de check in un archivo nuevo y recibí un mensaje, es cuando yo me convertí en un “creyente” de integración continua.
  • 19. Desafío Dos: Desafíos Ambientales  Todas las pruebas de unidad son pruebas de unidad verdaderas, no son pruebas de integración No hay mucha dependencia externa Un build server para IC es muy fuerte Hay estrategia para poner nuevo código en el IC ambiente Es fácil para cambiar el base de datos 19 Integración Continua MADRID, 27 y 28 de Noviembre A menudo, la gente dice “Mi proyecto es demasiado complejo para usar integración continua”. Sin embargo, hay que integrar todos los componentes del sistema en un sistema grande. Esperar al fin del proyecto solo aumenta los riesgos de integración. La mejor manera de simplificar el proceso de integración es hacerlo muchas veces. Por escribir guiones automáticos, se quita la complejidad por hacer cosas como separar las pruebas de integración que requieren dependencias externas de las pruebas de unidad. Se desarrolla maneras de fingir dependencias externas para que sea mas fácil de build y probar el código. A menudo es difícil publicar el código a un ámbito de pruebas, pero por hacerlo frecuentemente en el ámbito de integración continua, muchas veces al día, se quita cualquier debilidad en el proceso de despliegue en cualquier ambiente. A veces cuando hay muchos proyectos en integración continua, los builds se acumulan y requieren mucho tiempo. Este frustra a los programadores porque ellos esperan los resultados. Cuando esto pasa, puedes conseguir una maquina mas fuerte y cambiar las pruebas para separar pruebas de integración de pruebas de unidad. Es típico hacer las pruebas de integración durante la noche. La dependencia externa mas común es un base de datos controlado por un administrador de base de datos. Con un ámbito de integración continua en que se hace pruebas muchas veces al día, hay que fijar de nuevo la información en el base de datos sin intervención humana.
  • 20. Desafío Tres: Características del proyecto  Es fácil cuando no hay muchas divisones del código Hay muchos cambios pequeños. Hay cambios constantemente durante el día. Hay pruebas de unidad para todo el codigo El código está listo para producción 20 Integración Continua MADRID, 27 y 28 de Noviembre ?Como se verifica si un proyecto se puede adaptar fácilmente a la integración continua? El código que solo tiene un tronco es mas fácil para el sistema de integración continua de vigilar. Cuando los requisitos del proyecto se estructuran para que varias personas puedan trabajar en partes diferentes a la misma vez, ellos pueden checkin los cambios frecuentemente sin preocuparse de crear conflictos. Cuando hay buenas pruebas de unidad de todo el código, hay mas confianza en los resultados del build del sistema de integración continua son verdaderas. El build es mas que solo una compilación. El código que esta escrito bien sin complejidad y con pruebas es mejor para usar con integración continua.
  • 21. Desafío Cuatro: Estabilidad de herramienta de IC X  El sistema de integración continua es tan importante como el sistema de control de codigo. El sistema de IC puede hacer builds muy rápidamente. ¿Quién tiene la responsabilidad para IC? Es muy importante que haya una persona con responsabilidad para IC. ✓ No hay alarmas falsas. Si hubieran alarmas falsas, los programadores no tendrían confianza en IC 21 Integración Continua MADRID, 27 y 28 de Noviembre Como cualquiera herramienta, el sistema de integración continua puede tener problemas de funcionamiento si no se lo mantiene con cuidado. Por ejemplo, hace dos años visite una empresa y les pregunte si usaban la integración continua y el jefe de programadores me dijo, “Si, lo usamos, y funciona muy bien. Nuestros builds deben funcionar perfectamente porque no hemos recibido ningún mensaje de fracaso por meses”. Mas tarde, hable con uno de los programadores y el me confío que tampoco habían recibido ningún mensaje de éxito por meses. Ellos habían cambiado la versión de Java usada por el proyecto y nunca habían cambiado el sistema de integración continua para usar la nueva versión de Java. El sistema de integración continua envío un mensaje de fracaso y había estado en un estado de fracaso desde entonces. Para que funcione integración continua, hay que cambiarla según cambias los ambientes de los programadores y del testo. El ejemplo que acabo de daros muestra lo que puede pasar si no haya una persona encargada de vigilar la salud del ambiente de integración continua. Otro ejemplo de un problema de funcionamiento evitable ocurrió en otro proyecto. Usábamos integración continua para enviar mensajes cada diez minutos cuando el build no tenia éxito. Enviamos los mensajes por SMS a nuestros móviles y una vez hubo un problema con una dependencia externa y yo recibí cuarenta y cinco mensajes en mi móvil. Aquel día, obviamente a mi no me gusto el sistema de integración continua mucho porque no me ayudo, solo me molesto. Tenia que eliminar cuarenta y cinco mensajes de texto en dos minutos. Sin embargo, un sistema de integración continua bien mantenido no tiene estos problemas.
  • 22. Demostración de Hudson 22 Integración Continua MADRID, 27 y 28 de Noviembre
  • 23. ¿Como se sigue?  Continuous Integration: Improving Software Quality and Reducing Risk Introducción de Hudson: http://xnoccio.com/362- hudson-parte-1-introduccion/ CITConf es la conferencia sobre IC 23 Integración Continua MADRID, 27 y 28 de Noviembre ?A donde vamos para aprender mas del tema de Integración Continua? Me encanta el libro que se llama “Continuous Integration: Improving Software Quality and Reducing Risks” escribe de Paul Duvall. Es de la serie que se llama “Martin Fowler Signature Book”, y tiene toda la información sobre Integración Continua en un libro.
  • 24. El matriz de 22 diferentes sistemas de IC http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix 24 Integración Continua MADRID, 27 y 28 de Noviembre En esta pagina web hay un matriz de veinte dos sistemas de integración continua, incluyendo sistemas de Open Source y sistemas comerciales. Hay mucho información sobre las capacidades de los sistemas, incluyendo el tipo de control de código apoyado, tipos de Build Management, y mucho mas.
  • 25. ¿Porque Integración Continua? Eliminar los errores humanos Las prueba corriendo mucho veces tiene mas beneficioso Una sistema puedes hacer reportes de la salud del proyecto ¡Eliminar problemas de integración! 25 Integración Continua MADRID, 27 y 28 de Noviembre En resumen: ?Porque Integración Continua? Hay cuatro razones claves:. Numero uno es la eliminación de los errores humanos. Los errores humanos crean problemas para comunicación en el equipo. Numero dos es que las pruebas son mas beneficiosas cuando ocurren muchas veces, y el tiempo entre la introducción de un problema y la resolución del problema es muy corto. Numero tres es que un sistema de integración continua es la fundación para un sistema de reportaje sobre la salud de los proyectos. Y la ultima razón es la eliminación de los problemas de integración, y por eso, la reducción del riesgo.
  • 26. Eric Pugh epugh@opensourceconnections.com MADRID 27 y 28 de Noviembre Gracias por vuestra atención. Ahora, por favor, haga cualquier pregunta que tengáis. Y también, cuando vosotros regresáis a vuestras empresa, podéis enviar cualquiera pregunta a por email a epugh@opensourceconnections.com! Muchísimas gracias.