Automation of deployment process for IoT edge devices: Creating deployment pipeline for producing generic IoT edge device OS images utilizing TPM attestation
Blåfield, Toni (2022)
Blåfield, Toni
2022
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2022-11-22
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202211048177
https://urn.fi/URN:NBN:fi:tuni-202211048177
Tiivistelmä
The Internet of Things, especially the Industrial Internet of Things, is a continuously expanding territory of technology, especially in the industry, which has evolved vastly during the last few years. A new industrial revolution has emerged than can be referred to as Industry 4.0. As a relatively new technology, IoT edge combines IoT and edge computing, which brings edge computing into IoT to optimize computing on the edge of the network and allows more harsh networking conditions for IoT networks.
In a significant role is the deployment process of the IoT edge and all IoT devices. Currently, there is an enormous amount of manual work during the deployment of an IoT edge device, including installation and configuration of the operating system and the necessary IoT runtime with its required dependencies. Moreover, the device has to be deployed onto its operating environment and provisioned with the cloud. In this thesis, the aim was to research whether and how it would be possible to automate this deployment process and whether it would be possible to implement a universal plug-and-play solution to support multiple different devices, device architectures, operating systems, IoT cloud platforms, and CI/CD platforms.
The research was conducted by creating a Proof of Concept demonstration where an automation solution was built around the deployment process of an IoT edge device. The solution consisted of a collection of scripts that prepare and publish an operating system image ready to be automatically deployed as an IoT edge device by automating the provisioning process into the specified IoT edge cloud service. The solution was implemented with Bash shell scripts on Raspberry Pi single-board computer device running Ubuntu Linux distribution operating system to automate the deployment process utilizing TPM attestation for Azure IoT Edge cloud service running on Azure DevOps CI/CD platform.
As a result of the research, a functional solution was established using the previous toolset. Additionally, the research analyzed that the implementation is nowhere ready to be used in production yet. Moreover, numerous current and potential issues exist, for instance, around genericness, documentation, error handling, update system, and overall security, which need to be resolved until the ultimate objectives of the research can be achieved.
In a significant role is the deployment process of the IoT edge and all IoT devices. Currently, there is an enormous amount of manual work during the deployment of an IoT edge device, including installation and configuration of the operating system and the necessary IoT runtime with its required dependencies. Moreover, the device has to be deployed onto its operating environment and provisioned with the cloud. In this thesis, the aim was to research whether and how it would be possible to automate this deployment process and whether it would be possible to implement a universal plug-and-play solution to support multiple different devices, device architectures, operating systems, IoT cloud platforms, and CI/CD platforms.
The research was conducted by creating a Proof of Concept demonstration where an automation solution was built around the deployment process of an IoT edge device. The solution consisted of a collection of scripts that prepare and publish an operating system image ready to be automatically deployed as an IoT edge device by automating the provisioning process into the specified IoT edge cloud service. The solution was implemented with Bash shell scripts on Raspberry Pi single-board computer device running Ubuntu Linux distribution operating system to automate the deployment process utilizing TPM attestation for Azure IoT Edge cloud service running on Azure DevOps CI/CD platform.
As a result of the research, a functional solution was established using the previous toolset. Additionally, the research analyzed that the implementation is nowhere ready to be used in production yet. Moreover, numerous current and potential issues exist, for instance, around genericness, documentation, error handling, update system, and overall security, which need to be resolved until the ultimate objectives of the research can be achieved.