Spelling suggestions: "subject:"logiciels -- développement -- cogestion."" "subject:"logiciels -- développement -- cohestion.""
1 |
Novel approaches to the operation & orchestration of IoT systems / Novel approaches to the operation and orchestration of IoT systemsMouine, Mohamed 24 October 2024 (has links)
L'Internet des Objets (IoT) ainsi que le Edge Computing ont connu une croissance significative autant en termes de popularité que d'avancement technologique. La démocratisation des nouvelles technologies de communications à haut débit et le développement des plateformes infonuagiques modernes ont joué un rôle majeur dans l'adoption de l'IoT dans divers cas d'utilisation commerciaux. Parmi ces applications figurent la médecine, l'Industrie 4.0, ainsi que les centres de données, pour n'en citer que quelques-unes. Ces applications modernes de l'Internet des Objets se caractérisent par une importance particulière attribuée à la flexibilité, la résilience et la sécurité des systèmes. Les contextes mis en jeu présentent en effet d'importants défis et problématiques allant bien au-delà des enjeux logiciels traditionnels. Cela s'explique principalement par la nature critique des infrastructures et environnements mis en cause. Dans de tels contextes, une défaillance du système serait susceptible d'entraîner des conséquences financières désastreuses pour les entreprises et même une menace grave à la sécurité physique des usagers et opérateurs. Dans ce mémoire, nous explorons le potentiel et les possibilités qu'offrent des approches inspirées par les écosystèmes logiciels adjacents dans le but de répondre aux problématiques et défis présentés par l'évolution technologique de l'IoT. Des propositions sont finalement présentées visant l'objectif commun de réduire la complexité opérationnelle et d'assurer une résilience optimale de ces systèmes. Pour commencer, nous abordons la complexité de gestion et de développement des infrastructures IoT. Nous basons notre approche sur des concepts applicatifs et contextuels issus du domaine d'affaires du cas d'utilisation. Grâce au développement piloté par modèle (Model Driven Development), nous visons à combler l'écart technique entre les couches technologiques abstraites et les concepts concrets ou humains de l'application. Dans le contexte d'un système médical digital et distribué, nous présentons un langage spécifique au domaine (DSL) qui interface les composants technologiques complexes grâce à des modèles de domaine concrets et proches du cas d'utilisation identifié. Les schémas de modèles proposés se concentrent sur l'adoption d'une approche flexible et intuitive pour concevoir et mettre à l'échelle l'infrastructure en fonction des besoins de l'entreprise. En tirant parti de technologies Cloud-Native, telles que les conteneurs, Kubernetes et les communications événementielles, nous démontrons l'efficacité de cette approche dans le contexte de scénarios majeurs. La solution vise principalement à accroître la flexibilité du processus de développement et maintenance des systèmes IoT, tout en maintenant une résilience optimale. Le premier sujet d'intérêt sélectionné est celui des applications et composantes exécutées en périphérie (edge workloads) ainsi que l'intégration des dispositifs et appareils physiques avec l'infrastructure cloud du système. L'approche proposée se base sur l'utilisation de Kubernetes en tant que plateforme d'orchestration principale. Kubernetes est l'une des solutions les plus populaires pour la gestion des systèmes cloud modernes à grande échelle. L'outil offre plusieurs avantages en termes de flexibilité, de résilience et de sécurité. Pour permettre l'extension de Kubernetes aux environnements hors-cloud, nous proposons KubeEdge. KubeEdge permet l'intégration transparente des nœuds hors-cloud au cluster Kubernetes initial. Cela permet la planification de services dans le edge en émulant l'environnement cloud ainsi que ses mécanismes natifs de résilience et d'orchestration. En plus d'étendre la portée du cluster au edge, KubeEdge implémente plusieurs solutions de gestion des composantes physiques spécifiques à l'IoT. La solution proposée s'appuie sur des communications asynchrones via le protocole MQTT. Les communications événementielles permettent une meilleure flexibilité des environnements et processus synchronisés entre edge et cloud. Cette approche permet aussi d'atténuer les contraintes infrastructurelles et simplifie l'évolution et la maintenance des systèmes en permettant l'ajout ou la suppression de composants physiques avec fluidité. La deuxième partie de la thèse couvre l'analyse de données et l'exécution d'applications intelligentes dans le edge. L'IoT se caractérise par un immense volume de données générées. Ces données sont souvent exploitées dans le contexte de tâches d'analyse et d'applications intelligentes. Ce sujet introduit diverses contraintes et défis qui lui sont propres et qui varient au travers du cycle de vie des données collectées. Les deux principaux aspects considérés dans ce contexte sont d'abord, la complexité de gestion de larges volumes de données en termes d'efficacité de stockage et de coûts, puis l'optimisation et l'efficacité des processus de traitement et d'analyse applicatifs. Pour aborder ces problématiques, nous avons opté pour une distribution des charges de calcul et de stockage dans les couches périphériques. L'implémentation se concrétise principalement au travers d'instances InfluxDB et Telegraf dans les environnements edge. Ces composantes se connectent aux canaux d'événements du broker MQTT. Les métriques sont initialement stockées et traitées directement dans le edge et subissent diverses transformations et calculs tels qu'une normalisation, un sous-échantillonnage, un enrichissement, etc. Les données sortantes sont migrées périodiquement vers des volumes de stockage centralisés à l'échelle du cloud. Le traitement au niveau du edge permet de distribuer les volumes de stockage et de simplifier les processus analytiques devenus davantage modulaires et réplicables. De plus, la rétention temporaire des données en périphérie permet une stratégie de résilience native en cas de rupture de la connexion cloud-edge et simplifie la gestion de sauvegardes de secours. / The Internet of Things (IoT) and edge computing have seen significant growth in popularity and technical advancement. The democratization of high-speed communications and the development of modern cloud technologies, to name a few factors, have played a major role in the adoption of IoT for a variety of business applications. Some of these applications are healthcare, manufacturing (Industry 4.0), and data centers, to name a few. These modern applications of the Internet of Things are characterized by the importance of scalability, resilience, and security. These use cases present us with challenges and concerns that go far beyond traditional software systems due to the critical nature of some workloads. System failure in this context can lead to disastrous monetary consequences for businesses and even represent a safety threat for users and operators. In this research thesis, we explore the potential of leveraging and adapting approaches from adjacent software ecosystems to address IoT and Edge Computing specifications. The presented proposals have a common goal of reducing the complexity of operations and minimizing the challenges of IoT systems. To begin with, we address the complexity of defining and managing the IoT infrastructure by leveraging the contextual concepts relevant to the business use case. Through model-driven development, we bridge the technical gap between the system infrastructure and human operators. In the case study of a healthcare IoT system, we present a domain-specific language (DSL) that abstracts infrastructure-specific components behind models specific to the identified use case. The proposed model schemas focus on enabling a flexible and intuitive approach to designing and scaling the infrastructure according to business needs. By leveraging Cloud-Native technologies, such as containers, Kubernetes, and event-driven communications, we demonstrate the efficiency of the proposed approaches for some major scenarios to increase the flexibility and resilience of IoT systems. Furthermore, we discuss the challenges and potential limitations of the implementations presented and the technologies utilized. The first topic of interest identified revolves around the management of edge workloads and the integration of physical devices into the cloud system infrastructure. The proposed approach is based on the integration of Kubernetes as an orchestration platform for both cloud and edge workloads. Kubernetes is one of the most popular solutions for managing modern cloud systems at scale. It provides several benefits in terms of flexibility, resilience, and security. To enable the implementation of Kubernetes in the context of the edge environments, we propose KubeEdge as an extension to the cloud layer. KubeEdge enables the seamless integration of edge nodes into the basic Kubernetes cluster. This allows the scheduling of edge services similar to conventional containerized cloud applications, including the native Kubernetes resilience and orchestration mechanisms. In addition to extending the cluster to edge nodes, KubeEdge implements a solution to manage the connections, states, and commands of physical devices throughout the system. The proposed solution leverages asynchronous communications through the MQTT protocol. The event-driven approach improves the flexibility of the edge environments, mitigating its limitations, and improving the system's scalability by simplifying the addition or removal of physical components. The second part of the thesis covers the subject of data analysis through edge computing workloads. One of the main characteristics of the IoT is the large volume of data generated. These data are frequently used in the core analytic workloads of most IoT applications. This aspect of the use case introduces specific challenges divided through the stages of the data life cycle. The two main aspects considered for this topic are the handling of large volumes of data in terms of storage efficiency and costs, and the execution of processing and analysis workloads in terms of optimization and accuracy. To address these aspects, we provision part of the processing and storage workloads to the edge layers. The implementation is based on InfluxDB and Telegraf instances at the edge, which listen to specific data topics of the MQTT broker. The local data are stored and processed to apply common normalization and downsampling transformations. It is then periodically migrated to a centralized storage unit in the cloud layer. Through processing at the edge layer, we optimize storage costs in the cloud and simplify global analytic workloads. Furthermore, the temporary retention of data at the edge improves the resilience of the system in the event of a loss of edge-cloud connection.
|
Page generated in 0.1363 seconds