Академический Документы
Профессиональный Документы
Культура Документы
“ANALISIS DE HERRAMIENTAS DE
INTEGRACION CONTINUA PARA PROYECTOS
DE SOFTWARE”
Cochabamba – Bolivia
2018
Agradecimiento
El inmenso agradecimiento a ti divino Dios, pues nos dirigiste por el mejor
camino de nuestras vidas, nos da salud y sabiduría para alcanzar nuestras
metas. A mis padres quienes me dieron la oportunidad de estudiar y
culminar los estudios. A mi familia quienes con su comprensión y paciencia
me apoyaron y animaron en el desarrollo de este diplomado.
A nuestros docentes por su comprensión y experiencias compartidas que
enriquecieron las clases y su aplicación y un sincero agradecimiento al
licenciado Valentín Laime, el cual contribuyo y gestiono para que este
diplomado se realice.
2
Índice de Contenido
Resumen 5
Introducción 6
1. Antecedentes 8
2. Metodología 8
3. La Integración Continua 11
4.2.2. JENKINS 29
4.2.3. BAMBOO 31
4.2.3. CIRCLECI 34
5. Conclusión 39
Bibliografia 42
3
Indice de Figuras y Tablas
4
Resumen
Hoy en día, muchas empresas desarrollan software desde un enfoque de conservación en sus
procesos e intentan adaptarse a los nuevos tiempos intentando introducir las nuevas
metodologías en sus proyectos, en especial las metodologías ágiles. En este sentido en el
enfoque que utilizan las empresas, el desarrollador una que vez termina sus implementaciones
ejecuta sus test unitarios al software, después lo envían al área de control de calidad donde se
realizan todas las configuraciones y ambientes necesarios para realizar este trabajo, muchas
empresas aún no conocen la importancia de separar el trabajo y sobre todo el ahorro de costes
y tiempo que supone hacer esto.
Las empresas que aplican su propia metodología, sus propios procesos y gestiones de ciclo de
vida de desarrollo, donde los desarrolladores o los encargados de IT actúan tanto como
desarrolladores como encargados de configuraciones y ambientes por lo que es necesario
introducir una nueva práctica en sus metodologías. En concreto la integración continúa creada
por Martin Fowler, surge con el objetivo de facilitar este trabajo en equipos de desarrollo y
automatización de tareas de integración. La integración continua se basa en la construcción
automática de proyectos con alta frecuencia, promoviendo la detección de errores en un
momento temprano para dar prioridad a corregir dichos errores.
5
Introducción
Hoy en día gran cantidad de los proyectos de software que se desarrollan continúan usando
metodologías y procedimientos propios y/o antiguos que dan como resultado productos y
servicios que se entregan con retrasos y/o fallos, dentro del ciclo de vida del software, éste
pasa por diferentes entornos (desarrollo, el entorno de pruebas y producción) y un error común
suele ser el desarrollar el producto dependiente del entorno de trabajo, una vez que el producto
de software es desplegado en otro entorno diferente al de desarrollo, es ahí cuando surgen los
problemas, debido a que no se tienen ambientes homogéneos. Por esto surge la necesidad
de un paso intermedio entre ambos entornos, que es el de pruebas.
Dentro la gran variedad de proyectos y lenguajes de programación con los que se trabaja,
realizar manualmente todos los procesos para que el software llegue a producción se convierte
en una tarea tediosa y poco fiable, lo cual implica un alto coste, no sólo económico sino de
oportunidades debido al tiempo que requiere el proceso hasta lograr desplegarlo en
producción, por estas razones, las empresas necesitan implementar procesos para mejorar la
calidad final del producto reduciendo costes, tiempos y aportando calidad. De aquí surge la
necesidad del uso de la Integración Continua, que es en la actualidad uno de los pilares del
desarrollo de software.
La naturaleza de esta monografía inicia con una descripción de la Integración Continua como
parte del proceso de desarrollo de software. Mientras que el principal problema es explorar las
herramientas de Integración Continua y hacer una comparación entre ellas mediante criterios
definidos y responder a la pregunta de qué herramienta se adecua a nuestros requisitos.
6
Además de realizar un estudio de la metodología del software donde se aplica la Integración
Continua, el estudio del proceso de Integración Continua no puede llevarse a cabo sin
investigar el campo del proceso de desarrollo de software, esto, incluye un estudio de la
literatura y de las fuentes basadas en la web, con el fin de encontrar criterios y requisitos para
examinar los servidores de Integración Continua.
7
1. Antecedentes
2. Metodología
8
Según el libro "Conducting online surveys" de Valerie M. Sue 1, el proceso de investigación
puede dividirse en tres tipos: investigación exploratoria, descriptiva y explicativa, mientras que
los estudios individuales pueden consistir en diferentes propósitos e incluir dos o las tres
categorías de tipos de investigación2.
Los estudios descriptivos pueden indicar, por ejemplo, el tamaño de un mercado, la estructura
del mercado, la evolución a lo largo del tiempo, las actitudes de determinados grupos de
personas, etc. Un estudio de este tipo podría comenzar con preguntas como: "¿Qué similitudes
o contrastes existen entre A y B?" Cuando A y B son herramientas diferentes que se utilizan
para los mismos fines.
1
"Conducting Online Surveys - Valerie M. Sue, Lois A. Ritter - Google ...."
https://books.google.com.pr/books?id=Nc0gAQAAQBAJ&printsec=copyright&hl=es. Se consultó el 9 dic.. 2018.
2
"Tipos de investigación: Descriptiva, Exploratoria y Explicativa - Noticias." 4 sept.. 2017,
http://noticias.universia.cr/educacion/noticia/2017/09/04/1155475/tipos-investigacion-descriptiva-exploratoria-
explicativa.html. Se consultó el 9 dic.. 2018.
9
explicar esto? Las respuestas de esta investigación a este tipo de preguntas permiten descartar
explicaciones rivales, llegar a una conclusión y ayudar a desarrollar explicaciones causales.
Aplicación de técnicas:
Este estudio puede considerarse como exploratorio, descriptivo y explicativo con datos
cualitativos y cuantitativos recopilados por la investigación documental. Antes de hacer la
comparación y evaluación de las herramientas de Integración.
3
Al final, se recoge datos cualitativos de la plataforma G2 Crowd este es un sitio web que ofrece
“Real Reviews. Real People. Real Time” de revisión de herramientas de Integración Continua
más populares con una audiencia de más de 500.000 usuarios y se utilizará tipos de
investigación exploratoria y descriptiva. El cuestionario consiste en las siguientes preguntas:
3
"Tipos de investigación: Descriptiva, Exploratoria y Explicativa - Noticias." 4 sept.. 2017,
http://noticias.universia.cr/educacion/noticia/2017/09/04/1155475/tipos-investigacion-descriptiva-exploratoria-
explicativa.html. Se consultó el 9 dic.. 2018.
10
Cuestionario de G2crowd
Según el análisis de la información, nuestro principio básico consiste en los siguientes pasos.
3. La Integración Continua
Beck realizó una publicación donde puso énfasis en la importancia de Integración Continua
1998 (K. Beck,1998 pp. 1–6). después, Beck describió con precisión la Integración Continua en
su primer libro completo sobre Programación Extrema (1999, K. Beck and C. Anders).
Finalmente, Paul Duvall, Steve Matyas y Andrew Glover continuaron el trabajo relacionado con
la Integración Continua y han anunciado un libro completo sobre el mismo, el cual continúa
siendo uno de los principales recursos sobre la Integración Continua. Actualmente la
Integración Continua se ha convertido en una técnica popular para el desarrollo de software, se
4
"Continuous Integration - Martin Fowler." 1 may.. 2006,
https://martinfowler.com/articles/continuousIntegration.html. Se consultó el 9 dic.. 2018.
11
puede ver el incremento de la tendencia de popularidad basada en el servicio Google trends en
la figura 1.
5
"Google Trends." https://trends.google.com/trends/. Se consultó el 9 dic.. 2018.
12
Figura 2: Popularidad de la Integración Continua
Fuente: www.kwfinder.com
“La integración continua es una práctica de desarrollo de software en la que los miembros de
un equipo integran su trabajo frecuentemente, por lo general, cada persona íntegra al menos
una vez al día, lo que conduce a múltiples integraciones por día. Cada integración es verificada
por un build automatizado (incluyendo pruebas) para detectar errores de integración lo más
6
"Continuous integration | ThoughtWorks." https://www.thoughtworks.com/continuous-integration. Se consultó el 9
dic.. 2018.
7
"Continuous Integration - Martin Fowler." 1 may.. 2006,
https://martinfowler.com/articles/continuousIntegration.html. Se consultó el 9 dic.. 2018.
13
rápido posible, muchos equipos encuentran que este proceso conduce a una reducción
significativa de los problemas de integración y permite a un equipo desarrollar software
cohesivo más rápidamente."
Según el libro de Duvall (2007, P. M. Duvall, S. Matyas, and A. Glover), esta definición implica
que:
● Todos los desarrolladores tienen que enviar su código a un control de revisión más de
una vez al día o al menos una vez.
● Cada construcción tiene que pasar el cien por cien de las pruebas para ser reconocida
como elegible.
● Todos los desarrolladores del proyecto pueden ver los resultados actuales de la
integración a través de un sitio web, que se utiliza para notificar a los miembros del
equipo por el software de Integración Continua, como The Jenkins o The Cruise Control.
Cuanto más frecuente se integre, menos trabajo es para todos, e incluye allí dos grandes
objetivos de cualquier esfuerzo de Integración Continua:
14
2. Alertar a los desarrolladores de los problemas de integración lo antes posible.
Fuente: Code-maze8
8
"What Is Continuous Integration and Why Do You Need It? - Code Maze." 3 feb.. 2016, https://code-
maze.com/what-is-continuous-integration/. Se consultó el 9 dic.. 2018.
15
1. El desarrollador envía el código al repositorio de control de versiones.
Las siguientes anotaciones aclaran elementos del flujo de trabajo de Integración Continua (2007,
P. M. Duvall, S. Matyas, and A. Glover).
16
el sistema Integración Continúa implementado. Las herramientas de script de construcción
más famosas se llaman Ant, NAnt, MSbuild, Rake y Make. Estas herramientas hacen que el
ciclo de construcción del software sea automático, por lo que ahorra mucho tiempo a los
desarrolladores.
e. El mecanismo de retroalimentación se considera como una de las tareas más
importantes, porque proporciona resultados inmediatos después de la creación del Build de
integración. Si la retroalimentación muestra que la compilación falló, los desarrolladores
pueden empezar a arreglar el problema inmediatamente. La retroalimentación se puede dar
al usuario de diferentes maneras. Por ejemplo, la forma simple es un SMS o correo
electrónico, etc.
f. La máquina de Build de integración es una máquina que se utiliza sólo para una tarea
asignada: ser responsable de la integración de software. La máquina de Build de integración
contiene el servidor de Integración Continua, que rastrea cualquier cambio en el repositorio
de control de versiones.
De acuerdo con "Continuous Integration: improving software quality and reducing risk" de
Duvall (2007, P. M. Duvall, S. Matyas, and A. Glover), hay cuatro características obligadas que
se utilizan para implementar Integración Continua.
En segundo lugar, se necesita construir un script, por tanto, es importante tener algún
mecanismo de retroalimentación, también se necesita un servidor Integración Continua para la
integración de los cambios en el código fuente. Estas características obligatorias son
consideradas como el comportamiento básico para un sistema de Integración
Continua exitoso. A continuación se explican los componentes del proceso de integración.
17
binario, sino que realiza una comprobación estricta, que puede considerarse como
compilación en este caso, los lenguajes dinámicos tienen algunos beneficios en otras
acciones durante una compilación.
La combinación de estas técnicas muestra que la integración continua puede detectar cualquier
problema que no haya sido detectado por el administrador de la base de datos desde la
implementación hasta la producción, en la figura 4, se puede ver el proceso de trabajo de
Integración Continua, donde proporciona la integración de la base de datos durante el build.
18
Figura 4: Integración de la base de datos
Fuente: https://en.ppt-online.org
3. Las pruebas automatizadas los desarrolladores evalúan los cambios, estas pruebas
detectan la mayoría de los problemas graves en el proyecto, las herramientas tales
como JUnit, NUnit, TestNG y xUnit se consideran las herramientas más comunes de las
prueba de unidad, además, la mayoría de estas herramientas producen informes
completos a los usuarios y vienen en forma de gráficos o páginas web.
La prueba unitaria comprueba la fiabilidad del código, además de eso, hay otros tipos
de prueba, como pruebas de componentes que comprueba la funcionalidad y los
defectos de búsqueda en una aplicación, también existe pruebas de sistema que
comprueba los requisitos funcionales y no funcionales de todo el sistema.
19
4. La inspección es el análisis del código basado en un conjunto de reglas
predefinidas. La inspección automática de códigos puede utilizarse para mejorar la
calidad del software utilizando reglas específicas por ejemplo una regla para el tamaño
de la clase no puede exceder más de 5000 líneas de código no comentado en un
proyecto. La inspección se utiliza para comprobar la corrección del código escrito y su
duplicación, además se utiliza para mantener intactas las capas arquitectónicas. La
inspección continua reduce el período de tiempo entre la detección y la resolución del
problema.
5. El proceso de despliegue típico se divide en seis pasos. El primer paso son los
elementos del repositorio por ejemplo las etiquetas (tag en git), que normalmente se
realiza al final de la fase de proyecto.
El segundo paso es mantener el ambiente (server) limpio. Esto significa que es
necesario mantener buenas condiciones para lograr una integración exitosa mediante la
eliminación de todos los archivos, servidores, cambios de figuración de la máquina de
integración.
El tercer paso es hacer y marcar una compilación desde el repositorio de control de
versiones e instalarla en el equipo de destino.
El cuarto paso es lograr pruebas automatizadas exitosas las cuales son: prueba
unitaria, prueba funcional, prueba de sistema y prueba de componentes, estas son
ejecutados por desarrolladores para asegurarse de que el software está listo y puede
ser utilizado en la siguiente etapa de desarrollo o puede ser proporcionado al cliente.
El quinto paso es generar informes de retroalimentación de construcción automatizados.
En el sexto paso se revisa la posibilidad de retroceder la construcción. Esto significa
que si algo fuera de lo normal, se debe entregar la última versión viable al usuario. Si
todos estos pasos han sido superados, obtendrá una implementación exitosa.
20
versiones, usando todas estas herramientas, puede obtener importantes beneficios como
recibir documentación de código fuente y estado del proyecto en tiempo real.
Una de las mayores propiedades de la Integración Continua es la reducción del riesgo, esto
se logra gracias a las frecuentes Interacciones durante el día, facilita la detección de problemas
en el proyecto y la monitorización del estado del software. También reduce los riesgos de
software de baja calidad, la falta de visibilidad del proyecto y el riesgo de detección tardía de
defectos. Algunos defectos o errores se detectan antes; debido a inspecciones, integraciones y
realización de pruebas varias veces al día.
Permite una mejor visibilidad del proyecto y hace que el proyecto sea más transparente
para el equipo durante el desarrollo, gracias a la información actualizada, es cada vez más fácil
dirigir un proyecto de forma más eficaz, aporta efectos positivos como decisiones efectivas y
revela tendencias, dado que la integración es un proceso muy frecuente, es más fácil notar
todas las tendencias, que se basan en Builds exitosas o fallidas, la calidad general también
mejora gracias a la Integración Continua.
21
3.4. Aspectos negativos de la Integración Continua
Algo que es una cierta desventaja, es que el servidor Integración Continua necesita
mantenimiento, requiere ser actualizado para nuevas características, los discos se llenan o el
usuario que ejecuta el servidor necesita autorizaciones, cuanto más servidores y software se
tengan significan más mantenimiento. Otra aspecto negativo es que se convierte en un "punto
de fallo" es decir si el servidor de Integración Continua deja de funcionar, todo se detiene.
Hay algunos aspectos negativos, Duvall presenta en su libro una combinación de diferentes
circunstancias (2007, P. M. Duvall, S. Matyas, and A. Glover).
A menudo se considera que el sistema de Integración Continua está aumentando el costo total
del proyecto. Sin embargo, los proyectos actuales tienen fases como la integración, pruebas,
inspección y despliegue a pesar de la ausencia del sistema de Integración Continua. Es mucho
más fácil controlar un sistema de Integración Continua fiable que intentar gestionar procesos
manuales.
22
Desventajas
Ventajas
23
El análisis se inicia describiendo los principales requisitos para evaluar las herramientas de
Integración Continua basadas en la selección de literatura, incluyendo el libro de Duval’s (2007,
P. M. Duvall, S. Matyas, and A. Glover), los foros web y algunas plataformas de Internet, donde
la gente comparte opiniones, luego se presentará una descripción de las herramientas de
Integración Continua a partir de la información recopilada, al final teniendo los dos pasos
anteriores presenta una tabla comparativa.
La funcionalidad es uno de los factores más importantes a la hora de elegir una herramienta
de Integración Continua.
24
● La retroalimentación es un factor clave de la Integración Continua, soporta diferentes
tipos de retroalimentación; sólo tiene que considerar el sistema con las opciones
apropiadas que encajan en un proyecto.
El dinero es siempre relevante puede ser libre, de código abierto o comercial, hoy en día,
hay un montón de software libre y comercial disponible en el mercado, una herramienta
comercial no siempre es mejor que la gratuita es necesario compararlos para elegir.
25
4.2. Herramientas de integración continua
Líderes: aquí se encuentran los proveedores que mayor puntuación han obtenido como
resultado de combinar su gran capacidad de visión del mercado y la habilidad para ejecutar.
Estas empresas ofrecen una solución de productos amplia y completa, que además son capaz
de evolucionar según la demanda en el mercado.
Retadores o aspirantes: estos proveedores ofrecen buenas funcionalidades pero tienen menor
variedad de productos al estar centrados en un único aspecto de la demanda del mercado.
Visionarios: estos se pueden asemejar a los líderes en su capacidad para anticiparse a las
necesidades del mercado, pero no disponen de medios suficientes para realizar implantaciones
globales.
Jugadores de nicho: en último lugar, se encuentran estos stakeholders que no llegan a puntuar
lo suficiente en ninguna de las dos categorías.
9
"20 Best Continuous Integration(CI) Tools in 2018 - Guru99." 31 oct.. 2018, https://www.guru99.com/top-20-
continuous-integration-tools.html. Se consultó el 9 dic.. 2018.
10
"Top 8 Continuous Integration Tools - Code Maze." 20 feb.. 2016, https://code-maze.com/top-8-continuous-
integration-tools/. Se consultó el 9 dic.. 2018.
11
"Top 8 Continuous Integration Tools - Code Maze." 20 feb.. 2016, https://code-maze.com/top-8-continuous-
integration-tools/. Se consultó el 9 dic.. 2018.
26
Figura 5: Cuadrante de Gartner, distribución de las herramientas de integración continua
Fuente: https://www.g2crowd.com
27
4.2.1. TFS (TEAM FOUNDATION SERVER)
La figura 6 muestra la tendencia de la TFS en el mundo desde 2014 hasta noviembre del 2018,
según google trends.
12
"Continuous Integration and Continuous Deployment ... - SAP Blogs." 19 jun.. 2018,
https://blogs.sap.com/2018/06/19/continuous-integration-and-continuous-deployment-using-tfs-part-1/. Se consultó
el 9 dic.. 2018.
28
Figura 7: Tendencia de información de la herramienta TFS
4.2.2. JENKINS
29
Jenkins es el servidor de Integración Continua de código abierto basado en la plataforma Java
más usado, cuyos principales objetivos son construir y probar software de forma continua y
monitorizar las ejecuciones de trabajos ejecutados externamente13.
Jenkins ocupa el primer y segundo lugar entre las herramientas más populares en los portales
G2 Crowd y Stackshare de hoy, y según el estudio de ZeroTurnAround, Jenkins tiene una
posición de 70% entre otras herramientas en el mercado, las compañías más notables como:
Facebook, Sony, Yahoo, Ebay, Netflix, Tumblr, Linkedin, Vine, Hootsuite, Etsy usan jenkins .
1. Fácil instalación.
Según G2 Crowd, la mayoría de los usuarios de Jenkins afirman que están muy contentos con
este producto, afirman que Jenkins es una herramienta muy poderosa con una configuración
inicial fácil y sencilla.
La figura 7 muestra la tendencia de Jenkins en el mundo desde 2014 hasta hoy, según google
trends.
13
"Jenkins User Documentation." https://jenkins.io/doc/. Se consultó el 9 dic.. 2018.
14
"Jenkins Plugins." https://plugins.jenkins.io/. Se consultó el 9 dic.. 2018.
30
Figura 9: Tendencia de información de la herramienta Jenkins.
4.2.3. BAMBOO
31
Bamboo es una herramienta comercial de integración continúa desarrollada por Atlassian, pero
es gratuita para proyectos de código abierto. Conecta los Builds, pruebas y liberaciones
automatizadas en un solo flujo de trabajo, Bamboo es compatible con cualquier lenguaje y otras
tecnologías como AWS CodeDeply, Docker, Amazon S3, Maven, Ant, Git, Mercurial, y SVN.
Bamboo15 una vez que encuentra nuevas ramas en los repositorios Git, Mercurial y SVN, aplica
automáticamente el esquema Integración Continua de la rama principal, proporciona a los
despliegues un tratamiento de primera clase, la integración con Amazon S3, los agentes
Docker listos para usar y las tareas de AWS CodeDeploy y Docker hacen que el proceso de
implementación sea más rápido y sencillo.
Bamboo proporciona una buena integración con Jira con la capacidad de extenderse aún más,
se puede ampliar con plugins en el directorio de la misma manera que Jenkins, Las
notificaciones de compilación pueden modificarse en función del tipo de evento y enviarse por
correo electrónico, mensajes instantáneos, RSS o ventanas emergentes, Bamboo facilita la
migración desde Jenkins
Las siguientes empresas usan Bamboo: National Public Radio, LeapFrog, Williams Sonoma,
Cisco, BMW, Kaiser Permanente, NASA].
Según G2 Crow, los usuarios de Bamboo dan buenas referencias, que es una herramienta muy
flexible con una buena integración de productos Atlassian, como Jira y Fisheye. La
documentación sobre Bamboo es buena y detallada, proporciona un apoyo y soporte excelente.
La primera experiencia laboral con Bamboo puede ser complicada, para algunos de los
usuarios el proceso de configuración fue difícil y no lo suficientemente claro como para
15
"Continuous Integration and Deployment (CI/CD) with Bamboo & API" https://apifortress.com/continuous-
integration-and-deployment-cicd-with-bamboo-api-fortress/. Se consultó el 9 dic.. 2018.
32
entenderlo.
La siguiente figura muestra la tendencia de la Bamboo en el mundo desde 2014 hasta hoy,
según google trends.
33
4.2.3. CIRCLECI
CircleCI facilita la configuración y el mantenimiento sin problemas, facilita el desarrollo para los
equipos de software en términos de construcción, pruebas y despliegue rápido y sistemático a
través de diferentes plataformas, soporta todo tipo de pruebas de software, incluyendo entornos
web, móviles y de contenedores, CircleCI16 hace que el proceso de Integración Continua sea
simple y fácil para cualquier empresa.
Las siguientes compañías utilizan CircleCI: RedBull, Kickstarter, Stripe, Percolate, Teespring,
BOOTH, Couchsurfing, Harvest, Vusay y Gazelle.
16
"Continuous Integration with Circle-CI - Tooling - JuliaLang." 13 jun.. 2018,
https://discourse.julialang.org/t/continuous-integration-with-circle-ci/11642. Se consultó el 9 dic.. 2018.
34
CircleCI se integra con GitHub, Heroku, Amazon EC2, Rackspace Cloud Servers, Joyent Cloud,
Engine Yard Cloud, Nodejitsu, AppFog, dotCloud, en base del cuestionario de Stackshare, las
siguientes caracteristicas de CirleCI son las más destacadas:
Características de CircleC:
● Personalización profunda. Los ajustes de CircleCI son muy flexibles, lo que permite un
ajuste fácil casi todo lo necesario.
● La depuración se hace con facilidad. Cuando las pruebas se corrompen, CircleCI ayuda
a repararlos. Detecta automáticamente los errores y proporciona una gran ayuda.
● Soporte rápido. CircleCI responde a las peticiones de soporte muy rápido, los usuarios
no necesitan esperar más de 12 horas para recibir una respuesta.
17
"Continuous Integration with Circle-CI - Tooling - JuliaLang." 13 jun.. 2018,
https://discourse.julialang.org/t/continuous-integration-with-circle-ci/11642. Se consultó el 9 dic.. 2018.
35
CircleCI es muy rápida. Tiene un período de prueba gratuito de 14 días para probarlo. La
interfaz de usuario es muy limpia y fácil de entender, con un aumento de la velocidad de las
pruebas paralelas, posee configuraciones prefabricadas con buena integración a GitHub, con
notificaciones oportunas y útiles, que pueden ser enviadas por correo electrónico, chat y
notificaciones de webhook.
Por otro lado, hay algunas desventajas. Por ejemplo, hubo algunos casos en los que las
pruebas se interrumpieron debido a las actualizaciones de CircleCI. Aunque, es una pequeña
queja, pero sería mejor si fuera posible definir una variable de entorno para todos los proyectos.
Algunas veces no se pueden pasar las pruebas porque se requiere alguna configuración extra,
CircleCI18 envía notificaciones a muchos correos electrónicos cada vez que se realiza una
pulsación, algunas experiencias señalan que no era tan cómoda y que podía mejorarse,
además no siempre se actualiza con las últimas versiones del kit de desarrollo de java.
La siguiente figura muestra la tendencia de la CircleC en el mundo desde 2014 hasta octubre
de 2018, según google trends.
18
"CircleCI Careers, Funding, and Management Team | AngelList." https://angel.co/circleci. Se consultó el 10 dic..
2018.
36
En la figura 10 muestra la tendencia de búsqueda de información sobre las herramientas de
integración continua dese 2014 a octubre del 2018, donde se observa que Jenkins es la opción
más buscada en cuanto a información se refiere.
37
4.3. Matriz de decisiones para Entornos de trabajo para de integración continua
Además de los criterios de presencia, se trató de mostrar la relación de unas herramientas con
otra funcionalidad limitada en este tipo de criterios.
La tabla utiliza varios criterios para mostrar la relación y comparación de cuatro herramientas
de Integración Continúa seleccionadas, se puede ver claramente que el Jenkins tiene la mayor
cantidad de puntos que otros tres instrumentos, además, se puede ver que no hay diferencias 19
significativas en los criterios, mientras que la comparación se puede realizar en función de la
relación entre ellos. Por ejemplo, Jenkins proporciona la mayor extensibilidad en comparación a
otras herramientas, debido a este hecho, se le asignaron más puntos.
Esta sección presenta la tabla comparativa con las herramientas de integración continúa
investigadas.
GitHub ✓ ✓ ✓ ✓ ✓ ✓
Otros repositorios ✓ ✓ ✓ ✓ ✓ ✓
Multi-lenguage ✓ ✓ ✓ ✓ ✓ ✗
Retroalimentación ✓ ✓ ✓ ✓ ✓ ✓
Usabilidad ✗ ✓ ✓ ✓ ✓ ✓
Seguridad ✓ ✓ ✓ ✓ ✓ ✓
Extensibilidad ✓✓✓ ✓ ✓ ✓ ✓ ✓
Compatibilidad ✓✓✓ ✓✓ ✓ ✓ ✓ ✓
Confiabilidad ✓✓✓ ✓ ✓ ✓ ✓ ✓
Longevidad ✓✓✓ ✓ ✓ ✓ ✓ ✓
(durabilidad)
Comercial ✗ ✓ ✓ ✓ ✓ ✓
19
"Continuous everything in DevOps…what is the difference ... - Accenture." 23 sept.. 2015,
https://www.accenture.com/us-en/blogs/blogs-continuous-everything-devops. Se consultó el 10 dic.. 2018.
38
Totalmente gratis ✓ ✓ ✓ ✓ ✓ ✓
De Prueba (Trial) ✗ ✗ ✓ ✓ ✓ ✗
Código abierto y ✓ ✓ ✓ ✗ ✗ ✗
gratuito
Soporte ✗ ✓ ✗ ✓ ✓ ✓
Periodo de inicio ✗ ✓ ✓ ✗ ✗ ✗
fácil
flexibilidad ✓ ✗ ✓ ✓ ✗ ✗
Comunidad ✓✓✓ ✗ ✗ ✗ ✗ ✗
5. CONCLUSIÓN
Este análisis se basa en las principales cualidades y criterios para considerar las herramientas
existentes. Además, se ha explorado las páginas oficiales de las herramientas de Integración
Continua, un gran número de revisiones de las cuales se ha resumido la información recopilada
en una sola descripción, se ha llegado al punto en el que se comenzará a presentar la solución
y elección entre las alternativas seleccionadas.
En consecuencia, la elección no fue tan fácil, ya que Jenkins, CircleCI, TFS y Bamboo
proporciona una gran cantidad de valiosos servicios y características importantes. Aunque,
Bamboo no tiene tantas desventajas, la decisión final fue de Jenkins.
Jenkins fue preferido sobre las otras herramientas seleccionadas y analizadas, este genera un
presupuesto seguro y proporciona un conjunto de herramientas de Integración Continua para
principiantes.
Entre las características principales que tiene Jenkins, es un proyecto de código abierto
gratuito, este es el factor más común e importante entre las personas que hacen uso o buscan
39
una herramienta de integración continua, otra virtud de Jenkins es que proporciona gran
flexibilidad a varias metodologías de desarrollo diferentes y tiene todas las características que
un desarrollador podría necesitar, posee más de 1200 plug-ins que permiten al usuario montar
la configuración deseada.
Jenkins también tiene una comunidad grande y muy activa con tendencia a mejorar
constantemente, es una buena herramienta para comenzar a entender qué criterios son los
más apropiados e importantes, y luego cambiar o elegir una nueva herramienta de Integración
Continua, Bamboo y CircleCI en comparación con Jenkins tienen mejor interfaz de usuario y
funcionan mejor, en caso de que se instale una gran cantidad de plugins, esto en Jenkins se
vuelve lento, Bambo y CircleCI cuenta con un mejor servicio de apoyo, el soporte es inmediato.
Otro factor para que Jenkins sea elegido es el hecho de encontrar respuesta a la mayoría
de los problemas de integración que se encuentren en su proyecto. Dentro el área de
integración continua la vida útil de Jenkins es mayor en comparación a las herramientas
relativamente antiguas, como el travis, se desvaneció.
Se espera que después de leer, los resultados de la encuesta ayuden a tomar una decisión
sobre la herramienta a algún desarrollador o al menos a conseguir algo de comprensión.
Se tomaron las herramientas de Integración Continua más recientes y actuales en el mercado
y en algunas fuentes de investigaciones disponibles.
Esta monografía ha demostrado que el trabajo futuro sobre este tema tiene un gran potencial,
este trabajo de monografía nos dio muchas ideas. Por ejemplo, después de desplegar el
servidor Integración Continua, se puede realizar una investigación basada en la configuración
ideal y qué tipo de otras herramientas alternativas son las más adecuadas en un trabajo,
40
también se observó que es posible desarrollar algunos plugins específicos para Jenkins, para
algún caso específico y/o particular.
En conclusión, Jenkins puede ser útil para aquellos que buscan una guía corta, en la que
serían adecuados los conocimientos básicos para comenzar a trabajar con Integración
Continua, este trabajo de monografía permite iniciar en el proceso de Integración Continua y
aprender paralelamente de donde proviene y como resultado, esta investigación da a
conocer nuevas herramientas y populares aún no conocidas, además dar a conocer
herramientas de consulta de datos sobre herramientas de trabajo más usadas y que lideran en
el mercado.
41
Bibliografia
(2014, Grady Booch) B. Grady, “Object-oriented analysis and design with applications,”.
(K. Beck,1998 pp. 1–6) “Extreme programming: A humanistic discipline of software develop-
ment,” in Fundamental Approaches to Software Engineering. Springer.
(1999, K. Beck and C. Anders) “extreme programming explained: embrace change addison-
wesley,” Reading, Ma.
42