.. raw:: latex \setcounter{page}{6} Introduction and Project Overview ================================== Introduction ------------- In this initial chapter, we will explore several key aspects that set the foundation for the rest of the report. The chapter is divided into three main sections. The first section provides an overview of the Work-Context, Accomplished Work, and Report Structure. This section will give you an insight into the internship experience at IRISA, the tasks accomplished during this period, and how this report is organized to present the information. Following this, we will introduce the NaviDEC Project, offering a brief introduction to the project. Finally, we will touch upon the Project Context and Use Cases, providing a snapshot of the project's operational context and its use cases. Work-Context ^^^^^^^^^^^^ This report presents the work carried out during my five-month internship at IRISA, a renowned research institute, as part of the Master2 program in Cloud and Network Infrastructure at the University of Rennes. The focus of my work was the development of components for a composite service orchestration platform in the maritime domain, a project of significant complexity and innovation. This period provided a unique opportunity to apply and expand my technical skills in a real-world setting. Accomplished Work ^^^^^^^^^^^^^^^^^^ During my internship, I accomplished approximately 12 tasks, each contributing to the development and enhancement of the IRISA platform. My journey began with understanding the existing codebase, developed a comprehensive logging system which laid the foundation for my subsequent work. The tasks ranged from infrastructure automation with Ansible Playbook, Docker container automation, to migrating the framework from Flask to FastAPI. Each task contributed to the project's progress and enriched my technical skills. Significant milestones of my internship included developing an interactive web-based terminal using xterm.js and creating the bandwidth visualization using Apache ECharts from scratch. I also used Sphinx to develop a user guide from scratch and published it on a website using GitLab Pages. The build and deployment process of the user guide was automated using GitLab CI/CD. The culmination of these tasks resulted in a robust platform capable of orchestrating composite services in the maritime domain. This platform is a testament to the hard work and dedication during my internship and is a significant contribution to the NaviDEC project. Report Structure ^^^^^^^^^^^^^^^^ This report is structured into three main chapters. The first chapter provides an overview of the project and the context in which it was carried out. The second chapter delves into the enhanced characteristics of the IRISA platform, detailing the various tasks executed and the challenges overcome. The final chapter explores the work organization methodology, providing a comprehensive account of the technical growth experienced during the internship. The report concludes with a reflection on the internship experience and the knowledge gained. Finally, this chapter includes a summary in English and a résumé in French of the work done. .. raw:: latex \newpage Unveiling the NaviDEC Project ----------------------------- Introduction ^^^^^^^^^^^^ This chapter provides an introduction to the NaviDEC Project, a Deep-Edge Computing Platform. We will discuss the project's objectives, partners, and the scope of work for the Proof of Concept at the IRISA Team. Additionally, we will delve into the internship working environment at IRISA and the ERMINE Team's structure and goals. The ultimate aim of the internship is to enhance the Testbed Platform's characteristics. Let's dive in! .. figure:: _static/images/logo-navi.jpg :target: https://navidec-project.com :alt: NaviDEC Logo NaviDEC Project Logo. About NaviDEC ^^^^^^^^^^^^^ The NaviDEC Project is a Deep-Edge Computing Platform financed by the region of Brittany. It operates as an "IoT and Image Processing" platform, extending Edge Computing to the deepest edge of the network. The primary objective is to enhance efficiency in processing and transmitting data in regions with intermittent connectivity. NaviDEC will undergo testing in maritime scenarios, deployed in both deep-edge (boat) and edge (land) gateways. The system is designed to meet the challenges of environments that require immediate data processing responses. Project Timeline ^^^^^^^^^^^^^^^^ The NaviDEC project commenced in November 2021 and is scheduled to continue until April 30, 2024. There is a proposal to extend the project until the end of 2024. This timeline allows for comprehensive research, development, and testing of the project's objectives and goals. The Ultimate Project Goal ^^^^^^^^^^^^^^^^^^^^^^^^^ The ultimate goal of the project is to mitigate the risks of boat collisions by utilizing cameras for streaming and employing AI image processing, known as a classifier. Broad Objectives of the Project ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Define a "deep-edge" architecture and its interfaces with standard clouds across various use cases. 2. Study and develop distributed video processing algorithms spanning the deep edge and edge. 3. Investigate and develop service placement and orchestration strategies between the deep edge and the edge. 4. Research and develop a coordinated deep-edge security and anomaly detection system integrated with edge. 5. Deploy and test a prototype in real-world use cases that involve intensive data processing, particularly in the context of maritime scenarios. Collaborating Entities ^^^^^^^^^^^^^^^^^^^^^^ The NaviDEC project involves several partners, each contributing at various levels such as technical, financial, and managerial. These include Université de Rennes, Inria, IRISA, InPixal, Sodira, Céladon, Thalos, Region Bretagne, Rennes Metropole, bpifrance, Images & Réseaux, among others. In the following sections, we will highlight the most significant partners to provide a better understanding of the project context. - **IRISA/INRIA:** Develop and integrate the platform on the boat (Deep-Edge) and land (Edge). During my entire internship period, I focused on enhancing this platform, which is the main area of my contribution. - **Sodira:** Develops a multi-interface router for boat connectivity. - **InPixal:** Handles video and image processing. - **Celadon:** Provides the boat equipped with cameras for the final experience. .. _tbl-partners: .. list-table:: :widths: 20 20 20 20 20 :class: centered * - .. figure:: _static/images/IRISA.png :target: https://www.irisa.fr/en :alt: IRISA - .. figure:: _static/images/inria2.png :target: https://www.inria.fr/fr/centre-inria-universite-rennes :alt: Inria - .. figure:: _static/images/SODIRA-Connect-Logo-CMJN.png :target: https://sodira-connect.com :alt: SODIRA Connect - .. figure:: _static/images/INPIXAL-2.png :target: https://www.inpixal.com/ :alt: INPIXAL - .. figure:: _static/images/Celadon-LONG_E-300x84.png :target: https://celadon.blue/ :alt: CELADON .. figure:: _static/images/img/book/transparent3.png :target: https://navidec-project.com/index.php/les-partenaires-le-consortium/ :alt: NaviDEC Project Partners NaviDEC Project Partners. IRISA Team's Role in the Proof of Concept ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The IRISA team's specific focus aligns with Objective 3 from the Broad Objectives of the NaviDEC Project. This objective is to investigate and develop service placement and orchestration strategies between the deep edge and the edge. Each partner has a stake in the project, and at IRISA, we have a defined scope of work. Our focus is on the Proof of Concept team. The project at IRISA is progressing through three phases: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. **Phase One: Proof of Concept:** This phase involved designing the IRISA platform in the lab. This phase has already been completed by a previous colleague and the responsibilities have since been handed over to me. I am now carrying forward the work that was initiated in this phase. 2. **Phase Two: Enhancing Platform Characteristics:** This is the current phase and the scope of my internship. In this phase, I am responsible for carrying out all the work, which includes refining and enhancing the features of the platform. This has recently been completed. The tasks accomplished during this phase will be detailed in the upcoming chapter. 3. **Phase Three: Integration:** This phase is dedicated to integrating the work accomplished in phases one and two with our related partners, applying it to real-world test fields. This phase will start following the completion of the internship period, and I will be responsible for executing this work. The aim is to ensure that the outcomes of the project are robust, reliable, and ready for deployment in real-world settings. Concept of the Testbed Platform ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Testbed Platform is designed for the automated placement of service resources components, allowing them to move between different clusters. Specifically, in the context of NaviDEC project, the movement occurs between the Deep Edge (located on boat) and Edge (located on land) Computing Network, and it's based on the current bandwidth strength. The idea revolves around two clusters. The first cluster hosts resource services like streaming and classifier deployment pods with its services and called the Deep Edge , which is located on the boat. The placement of the classifier is bandwidth-dependent. When the bandwidth is strong, the classifier is automatically relocated from the first cluster on boat to the second cluster on land. Conversely, when the bandwidth is low, it is relocated back to the first cluster on boat. This dynamic relocation ensures optimal performance based on the current network conditions. Designing a Platform for Automated Service Execution Placement bridging the Deep Edge (boat) and Edge (land) Computing Network. A classifier is used to process video streaming images and identify other boats using artificial intelligence. This AI is designed to identify other boats in the vicinity. The purpose of this system is to detect and prevent potential accidents. If the system identifies a boat that is too close to the ship, it triggers an alarm. This alarm serves as an early warning system, allowing the crew to take necessary actions to avoid any possible collisions at sea. The computing power on the boat (Deep Edge) is limited because it uses an IoT platform. But on land (Edge), the CPU has more power for image processing. So, when the bandwidth is strong, we move the classifier to land to take advantage of this extra power. But when the bandwidth is weak, it moves it back to the boat. This way, we always get the best performance possible. The Internship: Objectives and Expectations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The primary objective of the internship is to refine and enhance the features of the Testbed Platform. This improvement will pave the way for the next phase of the project, which involves integrating with related partners. This integration will be conducted in real-world scenarios using physical appliances, providing a practical and hands-on experience. This approach ensures that the project outcomes are robust, reliable, and ready for deployment in real-world settings. Internship Working Environment at IRISA ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Internship Organizational Structure Overview ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ My internship is being conducted at the IRISA laboratory at INRIA, University of Rennes, specifically within the ERMINE Team. Below are brief overviews of IRISA, the ERMINE Team, and the team structure. IRISA: Advancing Computer Science and Innovation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **IRISA**, which stands for the Institute for Research in Computer Science and Random Systems, is a joint research unit. IRISA is today one of the largest French research laboratory (more than 916 people) in the field of computer science and information technologies. Structured into seven scientific departments, the laboratory is a research center of excellence with scientific priorities such as bioinformatics, systems security, new software architectures, virtual reality, big data analysis and artificial intelligence. Located in Rennes, Lannion and Vannes, IRISA is at the heart of a rich regional ecosystem for research and innovation and is positioned as the reference in France with an internationally recognized expertise through numerous European contracts and international scientific collaborations. Focused on the future of computer science and necessarily internationally oriented, IRISA is at the very heart of the digital transition of society and of innovation at the service of cybersecurity, health, environment and ecology, transport, robotics, energy, culture and artificial intelligence. IRISA is a joint-venture resulting from the collaboration between nine institutions, in alphabetical order: CentraleSupélec, CNRS, ENS Rennes, IMT Atlantique, Inria, INSA Rennes, Inserm, Université Bretagne Sud, Université de Rennes. From this collaboration is born a force that comes from women and men who give the best of themselves for fundamental and applied research, education, exchanges with other disciplines, transfer of know-how and technology, and scientific mediation. ERMINE: Advancing Network Management and Economics ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **ERMINE** Stands for mEasuRing and ManagIng Network operation and Economic. Networks are omnipresent and increasingly complex, and require an efficient management of their operations. The team designs and analyzes procedures and policies for efficiently managing network operations, but also works on the required measurement and monitoring of performance metrics. Our specific and original management activity focuses on network economics, regulation, and automated decision making. In terms of needed measurement, we make use of standard modeling and performance analysis techniques, but also carry out direct measurements to be analyzed statistically. A cross-cutting research axe for both management and measuring is artificial intelligence. Our activity is a trade-off between methodological/mathematical developments and practical implementations. **Industrial contacts** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The team has historical relations with industrial partners on diverse areas in networking, including ALSTOM (on rare event simulation), Orange (on network economics, AI, wireless networks, network management), Nokia (on network economics, AI), Technicolor (on AI). It has also contacts with regulatory bodies on neutrality issues and the development of tools to monitor a satisfying behavior of actors of the Internet. We also have contacts with regulatory bodies. As of 2022, the team is holding contracts with Nokia (Cifre and ADR; on several applications of Data Analysis and Machine Learning to networking), Exfo (Cifre; on reliable probes placement) and CISCO (Cifre; on localisation indoor, FTM5). The objective is to carry out common research on an integrated framework for 5G, programmable networks, IoT and clouds that aims at statically and dynamically managing and optimizing the 5G infrastructure using, in particular, Machine Learning techniques. Team Members ~~~~~~~~~~~~~~ **Number of Persons:** At the ERMINE Team, there are currently approximately 20 individuals. This includes permanent researchers, emeritus members, research engineers, PhD students, and a team assistant. **Team leader:** - Mr. Bruno Tuffin **Internship supervisors:** - Mme Soraya Ait Chellouche - M. Yassine Hadjadj-Aoul - M. Guillaume LE GALL **Academic supervisor:** - M. César Viho .. raw:: latex \newpage Project Context and Use Cases ----------------------------- NaviDEC Work Context ^^^^^^^^^^^^^^^^^^^^^ Consider a simple scenario where a boat is equipped with multiple cameras from Céladon for streaming and an onboard AI image processor, known as a classifier. The cameras capture photos, which are then analyzed by the AI image processor. If another boat or obstacle is detected in close proximity, it is highlighted on the output screen. Furthermore, when the distance between boats reaches a certain threshold, an alarm is triggered, serving as a signal to take immediate precautions to prevent potential collisions. This succinctly encapsulates the essence of the NaviDEC work context. Illustration: NaviDEC Work Context ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Below, an illustrative figure demonstrate the scenarios described above: .. **Figure 1: NaviDEC Work Context** An illustrative representation of the NaviDEC work context, showcasing a boat equipped with cameras for streaming and an onboard AI image processor (classifier). The system captures and processes images, highlighting nearby boats on the output screen and triggering alarms at a specified distance to prevent potential collisions. .. figure:: _static/images/img/book/NaviDEC-Work-Context.PNG :alt: NaviDEC Work Context Display of NaviDEC Work Context. NaviDEC Use Case ^^^^^^^^^^^^^^^^ Let's delve deeper into the operational intricacies. As previously mentioned, a boat is outfitted with multiple cameras, referred to as streaming, and an onboard AI image processor, known as a classifier. The concept is to maintain continuous streaming on the boat. Regarding the AI image processing (classifier), given the modest computing capability of the deep edge on the boat, there is a need to either retain the mode or migrate the classifier element from the boat's deep edge to the land (referred to as edge) to leverage more powerful computing for AI image processing. In the accompanying illustration below, a multi-interface router with transmission equipment, deployed on the boat by Sodira, establishes a wireless LTE connection to link the boat with the land-based Edge office through LTE connectivity. .. Considering the variability in LTE strength, specific conditions are applied: - When the connection bandwidth between the boat and land is low, the AI image processing continues to operate from the boat, figure 4. - As soon as the connection strengthens, the goal is to move the classifier component from the boat/deep edge to the land/Edge, allowing us to benefit from powerful computing for AI image processing while keeping streaming active on the boat, figure 5. - Conversely, when the connection bandwidth diminishes, the action is taken to shift the classifier from land/Edge back to deep-edge/boat, figure 4. .. Illustration: NaviDEC Use Case .. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. Below, two illustrative figures demonstrate the scenarios described above: .. **Figure 2: Low LTE Bandwidth Status** .. In this scenario, with low LTE bandwidth, both streaming and the classifier function on the boat. .. figure:: _static/images/img/book/NaviDEC-Use-Case-Low-Speeds.PNG :alt: NaviDEC Use Case The NaviDEC use-case is operating at low LTE bandwidth, streaming and classifier function on the boat. .. .. raw:: latex .. \newpage .. **Figure 3: Good LTE Bandwidth Status** .. With improved LTE bandwidth, streaming remains on the boat, while the classifier transitions to Land/Edge. .. figure:: _static/images/img/book/NaviDEC-Use-Case-Good-Speed.PNG :alt: NaviDEC Use Case The NaviDEC use-case is operating at High LTE bandwidth, only classifier transitions to Land/Edge. IRISA Platform Architecture Overview ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This section explores how the IRISA lab's Proof of Concept team demonstrates the platform's architecture. To set up the platform, one can connect to a remote Ubuntu v20 operating system from a laptop via an SSH terminal. Using Containernet for network emulation, two Docker containers and a RabbitMQ container for messaging are created. These containers, named "boat" and "land," represent the deep-edge and edge locations, respectively. Each container is equipped with Docker, a Minikube cluster, and Nginx for traffic handling. Inside each Minikube cluster, the NaviDEC REST API is deployed, which governs the following behaviors: 1. Clients communicate with the REST API through HTTP requests. 2. The REST API translates these requests into kubectl API requests. 3. Responses are generated based on the outputs of the kubectl commands. 4. The master boat Minikube cluster communicates with the other master land Minikube cluster via HTTP for requests. To manage this platform, four separate terminals are required: 1. The first terminal runs the NaviDEC REST API from the first Docker container in the master boat Minikube cluster. 2. The second terminal runs the NaviDEC REST API from the second Docker container in the master land Minikube cluster. 3. The third terminal operates the Meta orchestrator: - It is responsible for listing live clusters. - It makes decisions based on boat cluster prompts. For instance, when bandwidth improves, it provides the destination cluster's IP, enabling the boat cluster to move the classifier to cluster 2. - Communication between clusters and the Meta orchestrator is facilitated through RabbitMQ RPC. 4. The fourth terminal acts as a remote client, sending deployment and service requests to the boat cluster. Principles of Operation for the IRISA Platform ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Here are the key principles of operation for the IRISA Platform: 1. The client sends requests to the NaviDEC REST API in the master boat for the deployment and service deployment of streaming and classifier from the host 1 terminal. 2. The NaviDEC REST API in the master boat cluster interacts with the Kubernetes API, deploying streaming and classifier pods and services, figure 6. 3. When the boat cluster bandwidth improves, it requests the Meta orchestrator for the destination cluster to move the classifier. The Meta orchestrator provides the Edge cluster's IP address. 4. The boat cluster requests the Edge cluster to deploy the classifier resources. Once ready, the classifier is removed from the boat cluster, figure 7. 5. Conversely, when boat cluster bandwidth drops, the classifier is redeployed, and the Edge classifier is deleted. 6. Streaming always remains on the boat cluster. 7. Nginx on each cluster tailors streaming and classifier configurations based on its deployment location. .. .. raw:: latex .. \newpage .. Illustration: IRISA Platform Architecture .. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. Here are two figures illustrating the IRISA Platform Architecture: .. **Figure 4: Low Bandwidth at IRISA Platform Low Speed** .. Both streaming and classifier resources remain on the boat, which is referred to as cluster1. .. figure:: _static/images/img/book/IRISA-Platform-Low-Speeds.PNG :alt: IRISA Platform Architecture IRISA platform is operating at a low bandwidth speed, streaming and classifier resources remain on boat. .. .. raw:: latex .. \newpage .. **Figure 5: Good Bandwidth at IRISA Platform Good Speed** .. Streaming resources remain on the boat, referred to as cluster1, while the classifier resources are relocated to the Edge, referred to as cluster2. .. figure:: _static/images/img/book/IRISA-Platform-Good-Speeds.PNG :alt: IRISA Platform Architecture IRISA platform is operating at a good bandwidth speed, only classifier resource are relocated to the Edge .. .. raw:: latex .. \newpage Conclusion: Exploring the IRISA Platform Architecture ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ As we conclude our exploration of the IRISA platform architecture, we acknowledge its pivotal role in the project timeline. Born out of Phase One as a Proof of Concept, the IRISA platform sets the stage for the next phases of this innovative project. The initial design and setup, successfully carried out by a dedicated team member, provide a strong foundation for the current phase. The complexities of the IRISA platform serve as a testament to the technical acumen involved and a bridge between theory and practice. By understanding its architecture, we gain insights into its workings, preparing us for the enhancements and refinements in Phase Two. As we transition into the next chapter, we'll delve into my internship work during Phase Two. We'll detail the tasks executed, challenges overcome, and features enhanced, providing a comprehensive understanding of the platform's evolution. This narrative aligns with the project goal of advancing the platform, bringing us closer to the ultimate integration phase. .. raw:: latex \newpage