Análisis Comparativo Entre Waterfall y Devops en El
Análisis Comparativo Entre Waterfall y Devops en El
Análisis Comparativo Entre Waterfall y Devops en El
Presentado por:
Bravo Ramírez, Miguel Angel
Huasasquiche Calmet, Pier Miguel
Ojeda Monzón, Cristha Patricia
Línea de investigación:
Informática, electrónica y telecomunicaciones
Sublínea de investigación:
Computación
PIURA - PERÚ
2020
2
UNIVERSIDAD NACIONAL DE PIURA
FACULTAD DE INGENIERÍA INDUSTRIAL
ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA
TRABAJO DE INVESTIGACION
“ANÁLISIS COMPARATIVO ENTRE WATERFALL Y DEVOPS EN EL
DESARROLLO DEL MICROSERVICIO “OBTENER DETALLE DE LIBROS
EN TIENDA VIRTUAL””
Presentado por:
Mg. Ing. Jorge Alvarado Tabacchi Br. Bravo Ramírez, Miguel Angel
Asesor Tesista
Br. Huasasquiche Calmet, Pier Miguel Br. Ojeda Monzón, Cristha Patricia
Tesista Tesista
PIURA - 2021
DECLARACIÓN JURADA
DE ORIGINALIDAD DE TRABAJO DE INVESTIGACIÓN
Articulo 411.- El que, en un procedimiento administrativo, hace una falsa declaración en relación a hechos o
circunstancias que le corresponde probar, violando la presunción de veracidad establecida por ley, será reprimido
con pena privativa de libertad no menor de uno ni mayor de 4 años.
Art. 4. Inciso 4.12 del Reglamento del Registro Nacional de Trabajos de Investigación para optar grados académicos
y títulos profesionales –RENATI Resolución de Consejo Directivo Nº 033-2016-SUNEDU/CD.
UNIVERSIDAD NACIONAL DE PIURA
FACULTAD DE INGENIERIA INDUSTRIAL
ESCUELA PROFESIONAL DE INGENIERIA INFORMATICA
TRABAJO DE INVESTIGACION
Línea de Investigación:
INFORMÁTICA, ELECTRÓNICA Y TELECOMUNICACIONES
SUBLINEA: COMPUTACIÓN
_________________________________
Dr. Rigo Félix Requena Flores
PRESIDENTE
____________________________________
Dr. Nestor Javier Zapata Palacios
SECRETARIO
____________________________________
Ing. Luis Alberto Calderón Pinedo
VOCAL
DEDICATORIA
Quien suscribe, Ing. Jorge Alvarado Tabacchi con Documento Nacional de Identidad
N°02606057, mediante la presente manifiesto que he leído y revisado de manera
detallada el proyecto de investigación titulado: “ANÁLISIS COMPARATIVO
ENTRE WATERFALL Y DEVOPS EN EL DESARROLLO DEL
MICROSERVICIO “OBTENER DETALLE DE LIBROS EN TIENDA
VIRTUAL””, presentado por el(los) tesista(s) Bach. Bravo Ramirez Miguel Angel
identificado con documento de identidad N° 73359691, Bach. Huasasquiche Calmet
Pier Miguel con documento de identidad N° 45919486, Bach. Ojeda Monzón Cristha
Patricia con documento de identidad N° 46304880, egresados de la carrera
profesional de informática, para optar el título de profesional de Ingeniero
Informático.
En mi condición de asesor, considero que el mencionado proyecto, cumple con lo
establecido en el Reglamento de Tesis para optar el título profesional en la UNP y
recomiendo su ejecución por lo que me comprometo a asesorar hasta la
sustentación y publicación, si fuera el caso.
____________________________________________________________
Mg. Ing. Jorge Alvarado Tabacchi
Asesor
ÍNDICE
ÍNDICE DE FIGURAS 10
ÍNDICE DE TABLAS 12
RESUMEN 13
ABSTRACT 14
INTRODUCCIÓN 15
CAPITULO I. ASPECTOS DE LA PROBLEMÁTICA 16
1.1. DESCRIPCIÓN DE LA REALIDAD PROBLEMÁTICA 17
1.2. FORMULACIÓN DEL PROBLEMA DE INVESTIGACIÓN 17
1.3. JUSTIFICACIÓN E IMPORTANCIA DE LA INVESTIGACIÓN 17
1.4. OBJETIVOS 18
1.4.1. Objetivo general 18
1.4.2. Objetivos específicos 18
1.5. DELIMITACIÓN ESPACIAL Y TEMPORAL DE LA INVESTIGACIÓN 18
1.5.1. Delimitación Espacial 18
1.5.2. Delimitación Temporal 18
1.5.3. Delimitación Conceptual 19
10
Figura 27: Estructura del proyecto 52
Figura 28: Archivo despliegue de la aplicación 53
Figura 29: Herramienta de monitoreo BitBucket 53
Figura 30: Herramienta de monitoreo “Sprint Boot Admin” 54
11
ÍNDICE DE TABLAS
12
RESUMEN
13
ABSTRACT
At the end, you will find a comparative table between the lead time of each phase
from Waterfall and DevOps. As a conclusion, you will find an improvement of 66%
using DevOps instead of Waterfall. For the development of this microservice I
worked with Postgres Sql, Visual Studio y Apache NetBeans.
14
INTRODUCCIÓN
15
CAPITULO I.
ASPECTOS DE LA
PROBLEMÁTICA
16
DESCRIPCIÓN DE LA REALIDAD PROBLEMÁTICA.
17
exigente el “Time to Market” y surge la necesidad de que la calidad y la agilidad
en el Ciclo de vida de Desarrollo de software estén cada vez más unidos, y por
ellos la solución idónea es la automatización de todas las fases de construcción
y testeo del código; o lo que es lo mismo: La integración continua (CI).
OBJETIVOS
. Objetivo general
. Objetivos específicos
18
1.5.3. Delimitación conceptual
19
MARCO TEÓRICO
20
2.1. ANTECEDENTES DE LA INVESTIGACIÓN.
2.1.1. Internacionales
2.1.2. Nacionales
21
metodología para un proyecto específico, además contiene un
procedimiento central, basado en un estudio comparativo entre
Metodologías tradicionales (Waterfall) y metodologías ágiles, cuyos
pasos son una sucesión de determinaciones y filtros que facilitan la
evaluación y decisión final.
22
2.2.2. Metodologías de desarrollo de software
2.2.2.1. Waterfall
23
El modelo de cascada es el paradigma más antiguo de la ingeniería
de software. Sin embargo, en las últimas tres décadas, las críticas
hechas al modelo han ocasionado que incluso sus defensores más
obstinados cuestionen su eficacia. Entre los problemas que en
ocasiones surgen al aplicar el modelo de cascada se encuentran los
siguientes:
2.2.2.2. DevOps
24
La adopción de DevOps está siendo impulsada por factores tales
como:
1. El uso de los procesos de desarrollo ágiles y otras
metodologías.
2. El incremento de una mayor tasa de versiones en producción
por parte de las unidades interesadas de aplicación y de negocios.
3. Amplia disponibilidad de virtualización y la infraestructura cloud
computing de proveedores internos y externos.
4. Aumento del uso de la automatización del data center y las
herramientas de gestión de configuración.
Fuente: ebook-devops
25
2.2.3. Microservicios
26
para microservicio, sin embargo, una aproximación que la realiza
(Newman, 2015) lo define como: “Pequeños servicios autónomos que
trabajan juntos”.
27
Docker: es una plataforma abierta para desarrollar, enviar y ejecutar
aplicaciones que permite separar sus aplicaciones de su infraestructura para
que pueda entregar software rápidamente.
28
2.4. HIPÓTESIS
29
CAPITULO III.
MARCO
METODOLÓGICO.
30
3.1. ENFOQUE Y DISEÑO
3.1.1. Enfoque
3.1.2. Diseño
A. Análisis de requerimientos:
En la fase de análisis de requerimientos se enumeran los requisitos
funcionales del proyecto los cuales determinan las funcionan que esperan
que ejecute el sistema.
RE1: El usuario puede realizar la búsqueda de un libro mediante la web
por nombre, autor, editorial.
RE2: El usuario puede consultar desde una PC, Tablet, Móvil los detalles
de los libros que se encuentran en la tienda online “Inti Libros”.
RE3: El usuario podrá visualizar la carátula, nombre, autor, editorial,
reseña, precio y disponibilidad del libro que escoja.
RE4: El negocio puede visualizar los libros más consultados por la web
mediante el log del microservicio.
31
Estimación de las horas dedicadas:
Una vez que se tiene definidos los requerimientos que se van a trabajar
durante el proyecto, se realiza una estimación de horas que se divide en
cinco áreas importantes: análisis, diseño, desarrollo e implementación,
certificación e implementación y cierre.
32
Descripción de los casos de uso
Iniciar aplicación
Caso de uso: Iniciar aplicación
Actor principal: Usuario
Pre condiciones: Acceso a internet
Versión: 1
Pasos:
Actor Sistema
1. Abrir aplicación en el navegador
2. Muestra la interfaz
3. Muestra el menú principal
Post condición: Visualizar el inicio de la aplicación
33
B. Diseño:
La fase de diseño consiste en el análisis de los modelos y la arquitectura
de la aplicación.
34
Diagrama de secuencia Buscar libros mediante la web:
ID NOMBRE REQ
La consulta del detalle de un libro debe responder al usuario en menos
REQNF1 de 10 segundos.
El sistema debe ser capaz de operar adecuadamente con hasta 10,000
REQNF2 usuarios con sesiones simultáneas.
El sistema debe proporcionar mensajes de error que sean informativos
REQNF3 y orientados a usuario final.
El sistema debe desarrollarse aplicando patrones y recomendaciones
REQNF4 de programación que incrementen la seguridad de los datos de los
clientes.
El sistema debe tener una disponibilidad del 99,99% de las veces en
REQNF5
que un usuario intente accederlo.
36
Estructura MVC del Proyecto en Visual Studio
37
Base de datos
El almacenamiento de los datos de la aplicación se utiliza Postgres Sql con
un servidor Centos 7 y el cliente pgAdmin.
38
Creación del microservicio en Apache NetBeans
Al crear el proyecto Spring, se ha seleccionado la categoría “Java with
Maven” y dentro de esta la plantilla “Sprint Boot Initializr Project”. Luego se
muestra un formulario donde se coloca el nombre de la aplicación, el
grupo, tipo de paquete y la versión de Java. En este caso se utilizará Java
8 por ser la versión más estable de Java a la fecha.
39
Figura 11: Configuración del microservicio en Apache NetBeans
40
Figura 12: Configuración del microservicio en Apache NetBeans
41
Figura 14: Configuración del microservicio en Apache NetBeans
D. Pruebas:
Plan de pruebas
E1: Realizar la búsqueda en el microservicio. R1: El usuario puede realizar
la búsqueda de un libro mediante la web por nombre, autor, editorial.
42
E2: Ingresar a la interfaz de “Inti Libros”. R2: El usuario puede consultar
desde una PC, Tablet, Móvil los detalles de los libros que se encuentran
en la tienda online “Inti Libros”.
E4: Descargar el log del microservicio. R4: El negocio puede visualizar los
libros más consultados por la web mediante el log del microservicio.
43
E. Despliegue:
Tabla 6: Horas reales del proyecto
Fases Horas
reales
Análisis 16
Revisión de código 8
Definición de requerimientos funcionales 4
Elaboración de los documentos funcionales y no funcionales 4
Diseño 5
Elaboración de diagramas RUP 5
Desarrollo 30
Preparación de ambientes 2
Desarrollo del Req1: “El usuario puede realizar la búsqueda de 6
un libro mediante la web por nombre, autor, editorial”.
Pruebas unitarias 2
Desarrollo del Req2: “El usuario puede consultar desde una PC, 4
Tablet, Móvil los detalles de los libros que se encuentran en la tienda
online “Inti Libros””.
Pruebas unitarias 2
Desarrollo del Req3: “El usuario podrá visualizar la carátula, 4
nombre, autor, editorial, reseña, precio y disponibilidad del libro que
escoja”.
Pruebas unitarias 2
Desarrollo del Req4: “El negocio puede visualizar los libros más 2
consultados por la web mediante el log del microservicio”.
Pruebas unitarias 1
Pruebas integrales 3
Elaboración de documentos técnicos 2
Certificación 12
Pruebas de la ronda 1 4
Levantamiento de observaciones 2
Pruebas de la ronda 2 4
Congelamiento de fuentes 2
Despliegue 10
Pase a producción 2
Pruebas de ratificación 8
Total 73
44
3.3.2. Aplicación de la metodología DevOps
45
• Framework de pruebas.
La ejecución de las pruebas de forma automática que nos permitan
identificar de manera temprana cualquier error que haya surgido de
algún cambio reciente, nos ayuda a reducir considerablemente los
tiempos de ejecución manual de pruebas y de retrabajo en la
solución de errores que se pudieron evitar.
Se ha habilitado un framework de pruebas unitarias donde los
programadores tendrán la posibilidad de ir alimentándolo y lograr el
mayor número posible de pruebas automatizadas.
46
Figura 19: Dockerización del proyecto
47
La nueva arquitectura implementada es:
B. Plan:
En esta etapa se categorizará el número de prioridad y la estimación de
cada una de las historias de usuarios
Tabla 7. Tabla de Prioridades
Numero Prioridad Complejidad
1 Baja Fácil
2 Media Moderada
3 Alta Complejo
4 Muy alta Muy complejo
48
Tabla 8. Tabla de Historias de usuario
C. Desarrollo:
Para aplicar correctamente DevOps se necesita también ser ágil en el
desarrollo, por eso se ha utilizado Scrum para cubrir todo lo que
corresponde al desarrollo ágil de software.
Para lograr soportar correctamente la metodología de desarrollo
Scrum, se ha utilizado a Jira Software como herramienta de gestión de
proyectos ágiles:
49
Esta herramienta incluso nos permite acceder a gráficos que nos
ayudan a gestionar correctamente el desarrollo de nuevos
microservicios:
50
Cada historia que corresponde al desarrollo del microservicio de
consulta será trabajada en una rama de código independiente
(consulta-libros) como se muestra en la imagen:
51
El microservicio de consulta ha sido desarrollado en el proyecto “books”
como se muestra en la imagen:
D. Verificación:
Esta etapa se ha logrado automatizar apoyada en el framework de
pruebas unitarias que hemos habilitado para el proyecto.
Dado que cada historia ha sido trabajada en una rama diferente de
código, cuando el desarrollador envía sus cambios al repositorio central
se ejecutan las pruebas unitarias que nos ayudará a identificar los
posibles errores generados en el desarrollo de la nueva funcionalidad.
E. Empaquetado:
El empaquetado también es disparado al momento de que el
desarrollador sube sus cambios al repositorio central pero siempre y
cuando hayan pasado todas las pruebas definidas en el framework de
pruebas unitarias.
F. Despliegue:
Una de las características principales del DevOps es reducir los
tiempos del “Time to Market” y para lograrlo necesitamos que la
infraestructura y la aplicación se pueda desplegar a demanda y sin la
necesidad de intervención humana o alguna dependencia con otras
áreas.
52
En esta investigación todos los componentes de la aplicación han sido
llevados a infraestructura como código para que con ello se habilite los
despliegue a demanda.
G. Configuración:
Para evitar el problema común que presenta los archivos de configuración
y valores en duro dentro de la aplicación, se ha habilitado un servidor de
configuración (config-server-repo) que también se encuentra alojado
dentro de Bitbucket con el fin de mantener una correcta gestión de las
versiones en los archivos de configuración.
53
H. Monitorización:
Al ser un modelo iterativo es importante estar siempre en este constante
proceso.
Para ayudarnos con esta etapa se ha utilizado “Spring Boot Admin” la cual
es una herramienta que está monitoreando constantemente el estado de
todos nuestros microservicios y que alerta en caso de que alguno de estos
presente errores.
Tiempos reales:
Tabla 9: Horas reales del proyecto
Etapas Horas
reales
Rediseño de la Arquitectura (*) 24
Plan 0.50
Desarrollo 8
Verificación 0.08
Empaquetado 0.08
Despliegue 0.17
Configuración (*) 8
Monitorización (*) 8
Total 48.83
54
Como se puede apreciar el tiempo de implementación es menos que el
que implicaría desarrollar el mismo microservicio con metodología
Waterfall.
Pero hay un punto importante a considerar, las etapas marcadas con (*)
son tiempo que sólo se van a consumir en esta primera vez como parte de
la refactorización; con esto los tiempos netos en la implementación de este
nuevo microservicio sería: 8.83h.
55
3.3.3. Análisis de metodologías
A. Procesos.
a. Predicción – Agilidad.
i. Prácticas
56
ii. Roles y tareas
d. Definición de entregables.
57
B. Personas.
a. Equipo de trabajo.
i. Número de integrantes.
58
artefactos necesarios para continuar con el rumbo del
desarrollo.
En DevOps, se corre el riesgo que se pierda
conocimiento importante de las personas con
propiedad exclusiva sobre artefactos o entregables, y
por tanto mayores costos por capacitación.
b. Clientes
i. Participación en el proyecto.
C. Organización y proyectos.
a. Criticidad de proyectos
b. Manejo de contratos.
59
dividen las responsabilidades entre el cliente y el equipo de
desarrollo, con respecto al proyecto y al resultado final. Incidirá
de manera positiva en la calidad final de producto que la
innovación, incertidumbre del entorno e inestabilidad de los
requisitos sean bajos.
En DevOps los índices de innovación, incertidumbre e
inestabilidad son altos, se requiere reacción frente al cambio que
los contratos fijos no podrían proporcionar.
Características para el
desarrollo de microservicios Waterfall DevOps
60
CAPITULO IV.
RESULTADOS Y
DISCUSIÓN
61
4.1. RESULTADOS
62
4.2. DISCUSIÓN
En la Tabla 10, la cual muestra el análisis de los tiempos de entrega de cada una
de las fases de las metodologías se tiene una mejora del 66% en la entrega de un
microservicio para la web IntiLibros. Cabe resaltar que en la etapa de Configuración
para DevOps se han considerado 8h, pero sólo será consumido en esta primera vez
como parte de la refactorización mientras que para Waterfall será una tarea que se
realizará en cada proyecto.
63
CONCLUSIONES
64
RECOMENDACIONES
Se recomienda que el sistema web pueda adaptarse a los cambios de los nuevos
clientes utilizando tecnologías que garanticen la disponibilidad del sistema y la mejor
experiencia de usuario.
65
REFERENCIAS BIBLIOGRÁFICAS
[5] Fredy H. Vera-Rivera, Carlos Mauricio Gaona Cuevas, Hernán Astudillo (2019).
Desarrollo de aplicaciones basadas en microservicios: tendencias y desafíos
de investigación. Disponible en:
https://www.researchgate.net/publication/338582836_Desarrollo_de_aplicac
iones_basadas_en_microservicios_tendencias_y_desafios_de_investigacio
n [Fecha de consulta: 23/11/2020]
[8] Macedo Pereira Alejandro (2020). Uso de una arquitectura basada en eventos
como capa de comunicación para microservicios. Disponible en:
http://tesis.pucp.edu.pe/repositorio/bitstream/handle/20.500.12404/16979/M
ACEDO_PEREIRA_ALEJANDRO_USO_UNA_ARQUITECTURA.pdf?sequ
ence=1&isAllowed=y [Fecha de consulta: 22/11/2020]
66
[9] Mark Richards. (2015). Software Architecture Patterns (N° 9781491924242).
O’Reilly Media, Inc.
[10] Rodríguez Ángela Indira, Padilla Jackelyne Ivone, Parra Hugo Alexander.
(2018). Arquitectura basada en micro-servicios para aplicaciones web. [en
linea]. Disponible en:
https://revistas.udistrital.edu.co/index.php/tia/article/download/13364/15929/
[Fecha de consulta: 24/11/2020]
67
ANEXOS
68