Docker container environment for SoC SW development
Yli-Länttä, Valtteri (2021)
Yli-Länttä, Valtteri
2021
Sähkötekniikan DI-ohjelma - Master's Programme in Electrical Engineering
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ä
2021-03-18
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202103162575
https://urn.fi/URN:NBN:fi:tuni-202103162575
Tiivistelmä
Software projects’ size has been growing significantly throughout the years and they require more initial conditions for developer team to be able to work on them independently. Containers meet these requirements and it is one of the reasons for their popularity. Other features provided by containers are ease of use, high performance, and portability. Developers have begun to use containers to pack tools and dependencies, which in turn speeds up the software projects’ development and build environment setup.
The aim of this thesis work is to create a container-based development and build environment for system-on-chip software department, which is estimated to include 200 developers. The environment is used for multiple different products, where each individual product requires personalized software development kit and related dependencies. During the thesis work, two surveys were conducted for the system-on-chip software developers. The first survey focuses on the current state of the department’s development environments and opinions on the new container environment. The second survey was held after the completion of the project, focusing on the success of the objectives and future development features in the environment. After the development environment is done, it is integrated into a continuous integration process, which provides automated product testing.
The department’s current development environment and the results from the first survey revealed the need of this project work, and the fact that developers are willing to use the new container environment. During the implementation we pay special attention to create a solution with ease of use and comprehensive documentation. The main part of the implementation is an initialization script, which on behalf of the developer creates the container, moves the user to the container and sets up the environment. This way the developer only has to clone the repository and execute the script with desired parameters. The results of the second survey were positive and showed that the project work was successful. The reception was generally favourable and no major problems arose. In addition, an estimation on the saved work hours in the department by the implementation was made. It is estimated to save up to 1400 work hours on each product’s setup, when every developer in the department has performed one environment setup.
The aim of this thesis work is to create a container-based development and build environment for system-on-chip software department, which is estimated to include 200 developers. The environment is used for multiple different products, where each individual product requires personalized software development kit and related dependencies. During the thesis work, two surveys were conducted for the system-on-chip software developers. The first survey focuses on the current state of the department’s development environments and opinions on the new container environment. The second survey was held after the completion of the project, focusing on the success of the objectives and future development features in the environment. After the development environment is done, it is integrated into a continuous integration process, which provides automated product testing.
The department’s current development environment and the results from the first survey revealed the need of this project work, and the fact that developers are willing to use the new container environment. During the implementation we pay special attention to create a solution with ease of use and comprehensive documentation. The main part of the implementation is an initialization script, which on behalf of the developer creates the container, moves the user to the container and sets up the environment. This way the developer only has to clone the repository and execute the script with desired parameters. The results of the second survey were positive and showed that the project work was successful. The reception was generally favourable and no major problems arose. In addition, an estimation on the saved work hours in the department by the implementation was made. It is estimated to save up to 1400 work hours on each product’s setup, when every developer in the department has performed one environment setup.