cambiar a curso:   2019-20   2021-22


Grado en Ingeniería Informática


TRABAJOS FIN DE GRADO
curso: 2020-21

Diseño e Implantación de una infraestructura DevOps para un entorno industrial


Tecnologías Específicas

Ingeniería del Software
 


Descripcion y Objetivos

La introducción de la Integración Continua y el Despliegue Continúo, tal y como proponían [Humble & Farley, 2010], suposo sólo el primer paso para mejorar el proceso de desarrollo que desembocó en la aparición de DevOps (Desarrollo y Operaciones) [Ebert et al., 2016.] Éste está relacionado con velocidad, flexibilidad de las implementaciones y aprovisionamiento de procesos comerciales. Es capaz de integrar con éxito estas tres fases: desarrollo, entrega y operaciones. Una vez incorporados de manera conjunta, se establece una conexión fluida y sin impedimentos.

La encuesta [Forsgren et al., 2018] reúne las respuestas de más de 30.000 empresas y demuestra que las que utilizan DevOps en su máxima expresión realizan 46 veces más despliegues, el tiempo transcurrido desde la confirmación del código hasta el despliegue disminuye 2555 veces, la tasa de fallos es siete veces menor y el tiempo para recuperarse después de cualquier incidente es 2604 veces menor. Se trata de cifras decisivas a la hora de aconsejar a una organización implantación de DevOps, siendo Estados Unidos el país que más lo utiliza con un 50% de empresas.

Todos estos argumentos son convincentes para atraer a cualquier empresa a la implantación de este tipo de aproximación en su proceso productivo. Es el caso de CreamTeam GmbH, una empresa alemana con sucursal en España, que diseña y crea software para la gestión profesional de vehículos de empresa. El software que desarrolla está orientado a la optimización de flotas de vehículos a fin de conseguir su uso las 24 horas del día. Trabajan con algunos de los fabricantes y empresas de vehículos más importantes del mundo, como BMW AG, Audi AG, Volkswagen AG, Robert Bosch GmbH, Dürr, BASF,…

Cream Team GmbH, cuenta actualmente en su proceso de desarrollo con diferentes prácticas directamente vinculadas y necesarias para el despligue de una aproximación DevOps, como es el desarrollo colaborativo utilizando repositorios Git, o la automatización de pruebas. Considerando estos aspectos este TFG se plantea los siguientes objetivos:

  • Identificar y comprender las diferentes prácticas para el despligue de una aproximación DevOps.
  • Evaluar la situación actual de la empresa CreamTeam GmbH respecto a la utilización de dichas prácticas.
  • Identificar qué prácticas aportarían un mayor valor al proceso de desarrollo considerando el resultado de la evaluación anterior.
  • Despliegue de una infraestructura considerando las restricciones impuestas por la empresa.
  • Realizar una prueba de concepto de la infraestructura desplegada.
 


Metodología y Competencias

En cuanto a la metodología a aplicar en este TFG se plantea utilizar una metodología ágil [Matharu et al., 2015] dado que estas refuerzan las ideas de adaptación al cambio, orientación a personas, planificación a corto plazo, liderazgo y colaboración. 

Además, las competencias que se reforzarán en este TFG son:

  • [IS1] Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software
  • [IS2] Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.
  • [IS3] Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles.
  • [IS4] Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.
  • [IS5] Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que pudieran presentarse.
  • [IS6] Capacidad para diseñar soluciones apropiadas en uno o más dominios de aplicación utilizando métodos de la ingeniería del software que integren aspectos éticos, sociales, legales y económicos.
 


Medios a utilizar

Medios Hardware

PC y Servidores para despliegue de la infraestructura.

Medios Software

Entorno de programación.

 


Bibliografía

[Ebert et al., 2016] Ebert, C., Gallardo, G., Hernantes, J., & Serrano, N. (2016). IEEE Software, 33 (3), 94–100.

[Forsgren et al., 2018] Forsgren, N., Humble, J., & Kim, G. (2018). Accelerate: State of DevOps 2018 - Strategies for a New Economy. DevOps Research & Assesment.

[Humble & Farley, 2010] Humble, J. & Farley, D. (2010). Continuous Delivery. Pearson Education.

[Matharu et al., 2015] Matharu, G. S., Mishra, A., Singh, H., & Upadhyay, P. (2015). ACM SIGSOFT Software Engineering Notes, 40 (1), 1–6.

 

 


Tutores


NAVARRO MARTÍNEZ, ELENA MARIA
CIFUENTES GARCÍA, DAVID
 

Alumno


VERGARA PICAZO, LLANOS