0% encontró este documento útil (0 votos)
118 vistas11 páginas

Integración Continua en Desarrollo de Software

Este documento presenta los resultados del proyecto de integración continua realizado por un equipo de estudiantes. El proyecto incluyó varias ramas en GitHub manejadas por diferentes miembros, una arquitectura modular del código, e integración con Jenkins para pruebas y despliegues automáticos impulsados por commits. El equipo demostró las ventajas de la integración continua como mejora de calidad de código y detección temprana de errores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
118 vistas11 páginas

Integración Continua en Desarrollo de Software

Este documento presenta los resultados del proyecto de integración continua realizado por un equipo de estudiantes. El proyecto incluyó varias ramas en GitHub manejadas por diferentes miembros, una arquitectura modular del código, e integración con Jenkins para pruebas y despliegues automáticos impulsados por commits. El equipo demostró las ventajas de la integración continua como mejora de calidad de código y detección temprana de errores.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Segunda Entrega

INTEGRACION CONTINUA

PRESENTA:
INGRID KATHERINE BOHORQUEZ FORERO Código: 1711025620
WILMAR DANIEL ZAPATA JIMENEZ Código: 1721021035
HARLEY ANTONIO GÓMEZ VALENCIA Código 171102641

MATERIA INTEGRACION CONTINUA

INSTITUCIÓN UNIVERSITARIA POLITECNICO GRANCOLOMBIANO


FACULTAD DE INGENIERIA
INGENIERIA DE SOFTWARE
JUNIO
2020
Contenido

1. INTRODUCCION ........................................................................................................................... 3
2. Detalle de las Ramas Dentro del Caso Estudio ............................................................................ 3
3. Arquitectura y Modularidad del Proyecto .................................................................................. 4
4. Integración con Jenkins ............................................................................................................... 6
5. Enlaces Videos Generados por el equipo. ................................................................................... 9
6. Conclusiones.............................................................................................................................. 11

INGENIERIA DE SOFTWARE 2
1. INTRODUCCION

Muchas organizaciones se ven beneficiadas al adoptar la integración y la entrega continua,


conocidas como CI/CD, como un elemento para darle agilidad, velocidad y mayo calidad al
software, con la integración y la entrega continua tenemos las siguiente ventajas:

a. Entrega de codigo mas rápidamente


b. Menor esfuerzo
c. Mayor Confianza al momento de desplegar el código en la etapa de producción
d. Facilidad en la adapctacion al equipo y comunicación entre los desarrolladores
e. Mayor visibilidad en el codigo que se esta desarrollando
f. Identificación de errores prematuramente antes de publicar el codigo

Dentro de las actividades de este proyecto de clase hemos definido muy claramente las
acciones, responsabilidades y las funciones de cada uno de los miembros del equipo con el fin
de que sea beneficioso los procesos que en el proyecto de aula se desarrollen.

Con la integración continua los desarrolladores pueden integrar código a la rama principal de
un repositorio común, en lugar de desarrollar Código de manera aislada, la integración continua
reduce costos y tiempos en la integración de Código y permite encontrar conflictos entre el
código nuevo y el existente en el momento que se este haciendo la integración.

La integración continua en cambio es una extensión de la integración continua que permite


desplegar Código de manera continua y frecuentemente, los equipos continúan con las tareas
normales con la confianza de enviar un paso a producción de manera confiable sin tener que
seguir pasos de manuales ejecutados por un especialista.

2. Detalle de las Ramas Dentro del Caso Estudio

El Proyecto estamos realizando un total de 5 ramas

Master: Wilmar Daniel Zapata Jimenez es el encargado de unificar las diferentes ramas

MenuPrincipal: esta rama es publicara para los miembros, pues en esta cada persona
incluye el módulo correspondiente

DespliegueContinuo: En esta rama está enfocado a explicar de qué trata el tema de los
despliegues continuos, El integrante Harley Gómez es el encargado de dicha funcionalidad

INGENIERIA DE SOFTWARE 3
EntregaContinua: En esta rama encargada por Katherin Bohórquez integra la funcionalidad
y explicación teórica de las entregas continuas

IntegracionContinua: La rama consiste en aplicar teóricamente el concepto de la


integración continua , esta funcionalidad es desarrollada por Wilmar Zapata Jimenez

Por medio de esta imagen vemos la cantidad de ramas y su propietario:

3. Arquitectura y Modularidad del Proyecto

Anteriormente en la primera entrega habíamos mencionado a profundidad sobre esta


arquitectura propuesta

INGENIERIA DE SOFTWARE 4
Ahora explicaremos a profundidad de como va hacer la modularidad de nuestra arquitectura

INGENIERIA DE SOFTWARE 5
Analizando esta arquitectura vemos el modularidad que se está manejando, La App con tiene
varios Módulos y cada Módulo contiene componentes exclusivos de ella, ejemplo:

El Módulo Integración continua se compone de dos carpetas (Componentes y Service) adicional


a eso tiene tos archivos terminado –routing y module.

Con los dos archivos mencionados anteriormente se conecta a una ruta y a un módulo principal
que será cargada una vez el usuario entre a ese módulo, así evitamos sobre cargas y cargas
innecesarias que el usuario no desee ver, técnicamente se llamada (LAZY LOADING)

En la carpeta de componentes vemos que está conformada por archivos de lógica, renderizado
visual y clases de cascadas de estilos.

También visualizamos la carpeta llamada service, esta contiene la lógica que conectará con otros
servicios, ya sea api u otras conexiones que ese módulo requiera

Así culminamos la explicación técnica de como manejamos nuestro modularidad de la


arquitectura propuesta.

4. Integración con Jenkins

El objetivo de esta entrega se basa en acoplar Jenkins con nuestro proyecto que está alojado en
Github , pero claramente este grupo fue un poco más allá de lo que se tiene en cuenta en esta
entrega

Lo primero que se aplico fue descargar la imagen de Jenkins en nuestro Docker y posteriormente
a instalarla.

Una vez configurada Jenkins en nuestro equipo.

INGENIERIA DE SOFTWARE 6
Configuramos el JOB y lo enlazamos con nuestro repositorio en GitHub

INGENIERIA DE SOFTWARE 7
Procedemos a configurar nuestro Webhooks para enlazarlo con Jenkins

Técnicamente estamos integrando el puerto local donde está ubicado Jenkins con los
repositorios agregados, para que cuando haya un tipo de cambios o un nuevo commit se
actualice de forma automatizada el job que teníamos ya agregado

Independientemente del resultado que haya obtenido el Jobs con el nuevo commit, se le enviará
un correo electrónico a los propietarios de la RAM.

INGENIERIA DE SOFTWARE 8
En esta imagen podemos observar el correo que llega al personal cuando es satisfactoria

También nos llegará un correo informando en caso que el estado del Jobs pase a failed ,
notificando donde se produjo el error

5. Enlaces Videos Generados por el equipo.

Ver video de la integración entre Jenkins y github, notificación al desarrollador informando el


estado del job :

INGENIERIA DE SOFTWARE 9
LINK [Link]

Repositorio del proyecto que se lleva haciendo en el módulo y participantes:


[Link]

INGENIERIA DE SOFTWARE 10
6. Conclusiones

En estas semanas de trabajo pudimos evidenciar las grandes ventajas de implementar


integración continua en el trabajo de desarrollo de software, entre ellas destacamos:

• Ayuda a mejorar en gran cantidad la calidad del código


• Nos permite detectar errores de manera más rápida y fácil
• Permite reducir las tareas repetitivas y manuales en el grupo de trabajo

Se pueden crear versiones de prueba en cualquier momento en base a la rama principal del
proyecto.

El uso de la integración continua puede hacerse de manera manual, sin necesidad de hacer uso
de ninguna herramienta, pero esto implicaría mucho tiempo y trabajo extra que puede
convertirse un poco tedioso. Apoyándonos en ciertas herramientas podemos optimizar de
manera más fácil de nuestro trabajo. Algunas son Jenkins, Travis, Git, Github, GitLab, Docker,
Codeship entre otros, basándonos en las herramientas que usamos en estas semanas de trabajo
GitHub y Docker son herramientas que, de la mano nos permiten realizar el versiona miento de
código para así tener todo el control de los cambios que se están realizando en el software.

INGENIERIA DE SOFTWARE 11

También podría gustarte