Tesis:

DevOps Aplicado a Sistemas IoT: Definición e Implementación de Procesos Continuos de Monitorización y Retroalimentación


  • Autor: LÓPEZ PEÑA, Miguel Angel

  • Título: DevOps Aplicado a Sistemas IoT: Definición e Implementación de Procesos Continuos de Monitorización y Retroalimentación

  • Fecha: 2021

  • Materia: Sin materia definida

  • Escuela: E.T.S.I. DE SISTEMAS INFORMÁTICOS

  • Departamentos: SISTEMAS INFORMATICOS

  • Acceso electrónico: https://oa.upm.es/68043/

  • Director/a 1º: DÍAZ FERNÁNDEZ, Jessica
  • Director/a 2º: PÉREZ MARTÍNEZ, Jorge E.

  • Resumen: Contexto: Internet of things (IoT) se define, de forma general, como una infraestructura mundial de interconexión de objetos y dispositivos a través de Internet. Los sistemas IoT actuales integran infraestructura hardware (dispositivos, redes de comunicación y nodos de computación), infraestructura software (plataforma de IoT), aplicaciones y usuarios; tienen fuertes requisitos de confiabilidad; son altamente distribuidos e integran enfoques de computación cloud, fog y edge; y son desarrollados en gran medida por software. DevOps es un enfoque cultural para mejorar y acelerar la entrega continua y sistemática de software de calidad, basado en colaboración efectiva de los equipos de desarrollo y operaciones. El enfoque DevOps, define un conjunto de prácticas que se integran en los ciclos de vida de desarrollo de software pero que, al menos en IoT, no han sido formalizadas mediante técnicas, lenguajes y herramientas de especificación y diseño de procesos propios de la ingeniería del software. Objetivo: El objetivo de esta tesis es la propuesta del enfoque “IoT DevOps” como particularización de DevOps para las necesidades específicas de IoT. Este objetivo se concreta en el desarrollo de un principio DevOps que promueve una retroalimentación rápida y continua desde las operaciones hacia el desarrollo, en particular centrada en la confiabilidad de los sistemas. Con ello se pretende acelerar los ciclos de retroalimentación desde los sistemas IoT en producción hacia las actividades de desarrollo en un ciclo continuo de mantenimiento y mejora. Método: La metodología de referencia para para la consecución de los objetivos es Design Science, que se basa en la generación de resultados y su evaluación en proyectos de investigación en el ámbito de sistemas de información. Resultados: El desarrollo ha partido de un estudio detallado de los conceptos IoT y DevOps, y de una propuesta previa de modelo de referencia y vista funcional de arquitectura de sistema IoT conforme al estándar de referencia ISO/IEC 30141 para IoT. El resultado principal es la especificación y modelado formal de una actividad que persigue la retroalimentación rápida y continua del estado de sistemas IoT desde operaciones hacia desarrollo. Esta actividad se ha denominado “Retroalimentación Rápida y Continua del Estado de un Sistema IoT” (F&CF IoT Status) y se ha desarrollado utilizando el metamodelo de ingeniería de procesos de software y sistemas SPEM 2.0, creado por el consorcio Object Management Group (OMG). En el proceso de modelado se han estudiado las características de confiabilidad (trustworthiness) de los sistemas IoT y las métricas que aseguran el cumplimiento de tales características. También se ha definido una técnica denominada Monitoring as Code (MaC), como especialización de Infrastructure as Code (MaC), para la monitorización de sistemas IoT en producción. Asimismo, se han desarrollado y documentado dos casos de estudio en entornos reales que se han utilizado para probar, refinar y validar los resultados de esta tesis siguiendo la metodología Design Science. Conclusiones: La formalización de la actividad “F&CF IoT Status” proporciona una especificación formal de la práctica DevOps de retroalimentación rápida y continua desde la operación hacia el desarrollo en procesos de mantenimiento y mejora continua de sistemas IoT centrados en el aseguramiento de características de confiabilidad. El modelo de definición en SPEM 2.0 ofrece características de reutilización y flexibilidad para ser implementada en diferentes escenarios. El modelo de instanciación y el uso de las técnicas Monitoring as Code e Infrastructure as Code promueven buenas prácticas DevOps (como el desarrollo de componentes versionados, repetibles y desplegables de forma automática). Los casos de estudio desarrollados demuestran la facilidad para adaptar e instanciar la actividad “F&CF IoT Status” en entornos de IoT con necesidades diferentes. De la misma manera, los casos de estudio demuestran, en escenarios reales, las ventajas que aporta a los equipos DevOps recibir información continua y detallada del sistema en producción, como por ejemplo: la reacción rápida ante fallos y la integración-despliegue-puesta en producción de nuevas versiones de software que corrigen tales fallos. ----------ABSTRACT---------- Context: Internet of things (IoT) is defined, in a general way, as a global infrastructure for the interconnection of objects and devices through the Internet. Today's IoT systems integrate hardware infrastructures (devices, communication networks and computing nodes), software infrastructure (IoT platform), applications and users; they have strong trustworthiness requirements; they are highly distributed and integrate cloud, fog, and edge computing approaches; and they are largely developed by software. DevOps is a cultural approach to improving and accelerating the continuous and systematic delivery of quality software. It is based on effective collaboration of development and operations teams. The DevOps approach defines a set of practices that are integrated into the software development life cycles but , at least in IoT, they have not been formalized using techniques, languages and tools for the specification and design of processes typical of software engineering. software. Objective: The objective of this thesis is the proposal of the “IoT DevOps” approach as a particularization of DevOps for the specific needs of IoT. This objective is specified in the development of the DevOps a principle that promotes “rapid and continuous feedback from operations to development”, specifically focused on trustworthiness of IoT systems. Method: The reference methodology to achieve these objectives is Design Science. This methodology is based on generating results and their evaluation on research projects in the field of information systems. Results: The development started from a detailed study of the IoT and DevOps concepts, and from a previous proposal of a reference model and functional view of a IoT system architecture according to the standard ISO/IEC 30141 for IoT. The main result is the formal specification and modeling of an activity that aims fast and continuous feedback of IoT system status from operations to development. This activity has been called "Fast and Continuous Feedback of an IoT System Status" (F&CF IoT Status) and has been developed using the Software & Systems Process Engineering Metamodel SPEM 2.0, created by the Object Management Group (OMG) consortium. In the modeling process, the trustworthiness characteristics of IoT systems and the metrics that ensure compliance with such characteristics have been studied. A technique called Monitoring as Code (MaC) has also been defined for monitoring IoT systems in production. Likewise, two case studies have been developed and documented in real environments that have been used to test, improve, and validate the results of this thesis following the Design Science methodology. Conclusions: The formalization of the “F&CF IoT Status” activity provides a formal specification of the DevOps "fast and continuous feedback from operation to development" practice in maintenance and continuous improvement processes of IoT systems focused on the assurance of trustworthiness characteristics. The definition model using SPEM 2.0 offers reusability and flexibility features to enable implementations in different scenarios. The instantiation model and the use of Monitoring as Code and Infrastructure as Code techniques promote DevOps good practices (such as the development of versioned, repeatable, and automatically deployable components). The case studies developed demonstrate the ease for adapting and instantiating the “F&CF IoT Status” activity in IoT environments with different needs. In the same way, case studies demonstrate, in real scenarios, the advantages that DevOps teams receive from receiving continuous and detailed information from the system in production, such as: rapid reaction to failures and the integration-deployment-putting into production of new versions of software that fixes those errors.