Implementing a container-based build environment: a case study

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Date

2020-01-20

Department

Major/Subject

Computer Science

Mcode

SCI3042

Degree programme

Master’s Programme in Computer, Communication and Information Sciences

Language

en

Pages

63 + 1

Series

Abstract

Containers have become a widely adopted way to package and distribute software. Their portability, ease of use and small computational overhead are some of the main features driving their popularity, as well as their adoption into modern cloud architectures. Some developers have also come to realize the advantages of using containers as a way to package dependencies and tools, easing the set-up and migration of development environments across computers. In this case study, we studied the process of moving an entire software department to a workflow, where the default way of building and testing the project software is in a container. The department consists of nearly 200 developers developing Layer 1 software for 5G radio base stations. Two interview rounds were conducted, of which the first analyzed the initial state of the workflow in the department. The second interview round was conducted after taking a containerized build environment into use. In addition, a literature review was conducted on the technologies related to the solution, as well as on previous studies related to the subject. The literature review lead us to choose Docker for our container engine, because of its adoption rate and positive user experiences. We found few studies relating to the containerization of a build system, but multiple blog posts and instructions on the subject were found. The first interview revealed that most developers are open to adopting new ways of working and thought positively about the adoption of containers in our use case. Ease of use was an important feature to the developers, as well as proper instructions for its usage. The solution came to include a tool for interacting with the container and ease its usage for even developers not familiar with containers. To measure the success of our solution, we asked for feedback from our interviewees and found that mainly people were satisfied with it. One pain point, however, was found to be the size of our image, which can create problems in an environment with a slow network connection. According to our data, our solution makes the development and testing of our build environment more effective, saving approximately 1900 hours of developer time per annum.

Konttiteknologiasta on tullut yleinen tapa pakata ja jakaa ohjelmistoja. Konttien siirrettävyys, helppokäyttöisyys ja korkea suorituskyky ovat niiden tärkeimpiä syitä niiden suosion takana, kuten myös niiden laaja käytettöönotto pilviarkkitehtuureissa. Jotkut ohjelmistokehittäjän ovat huomanneet konttien soveltuvan myös työkalujen ja riippuvuuksien pakkaamiseen, joka toimii tapana helpottaa kehitys- ja käännösympäristön jakamista sekä pystyttämistä. Tutkimme tässä tapaustutkimuksessa ohjelmistoprojektin siirtymistä työmalliin, jossa pääasiallinen kehitys- ja käännösympäristöön on konttipohjainen. Projektiin kuuluu noin 200 ohjelmistokehittäjää, jotka työskentelevät 5G-verkon tukiaseman fyysisen kerroksen ohjelmistojen parissa. Diplomityön aikana toteutimme kaksi haastattelukierrosta, joista ensimmäisessä tutkimme osaston lähtötilannetta. Toinen haastattelukierros toteutettiin siirryttyämme konttipohjaiseen työmalliin. Toteutimme lisäksi kirjallisuuskatsauksen, jossa tutkimme aiheeseen liittyviä teknologioita sekä aikaisempaa tutkimusta aiheesta. Katsauksen pohjalta päädyimme käyttämään Dockeria konttiteknologianamme sen laajan käyttöasteen ja hyvän vastaanoton takia. Aikaisempaa tutkimusta käännösympäristön pakkaamisesta kontteihin löytyi vain vähän, mutta käytimme niiden sijaan blogipostauksia ja kehittäjien kirjoittamia oppaita, joita löytyi paljon. Ensimmäinen haastattelu vahvisti, että kehittäjät ovat valmiita hyväksymään uusia työskentelytapoja, ja suhtautuivat myönteisesti konttiteknologioiden käyttöönottoon. Tärkeimpiä asioita haastateltavien mielestä olivat helppokäyttöisyys, sekä tarkkojen käyttöohjeiden jakaminen. Ratkaisumme tuli sisältämään tarkoin määritellyn työkalun, joka käynnistää Docker-kontin käyttäjän puolesta, helpottaen niiden työtaakkaa joille Dockerin käyttäminen ei ole tuttua. Saadaksemme arvioitua ratkaisumme onnistumista, kysyimme haastateltavilta palautetta sen käytöstä. Pääasiassa vastaanotto oli myönteinen. Suurimmaksi ongelmakohdaksi muodostui jaettavan Docker-levykuvan suuri koko, joka aiheuttaa ongelmia verkkoyhteyden ollessa hidas. Tutkimuksemme mukaan ratkaisumme tehostaa käännösympäristömme kehitystä ja testausta säästäen yli 1900 työtuntia vuodessa.

Description

Supervisor

Lassenius, Casper

Thesis advisor

Vuonnala, Risto-Matti

Keywords

software build, containers, Docker, CI

Other note

Citation