Integrating Docker and Jenkins: An Empirical Investigation

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Ask about the availability of the thesis by sending email to the Aalto University Learning Centre oppimiskeskus@aalto.fi
Date
2017-02-13
Department
Major/Subject
Service Design and Engineering
Mcode
SCI3022
Degree programme
Master's Programme in ICT Innovation
Language
en
Pages
69
Series
Abstract
Continuous Integration is a very important part of software development. Jenkins is the most popular tool used to build CI server with the Master/Slave mode. Recent practice of CI server architecture has some new changes because of the emerging of Docker, the Operating System level virtualization. There are two main solutions of integrating Docker in Jenkins: using slave to spin out Docker container to build inside and directly using Docker container as slave to build inside. The former approach is called Docker Execution mode. The latter approach is called Docker Ephemeral Slave mode. This thesis work is a comparison study of the three modes of CI server: the Master/Slave mode, the Docker Execution mode, and the Docker Ephemeral Slave mode. Both quantitative and qualitative criteria for evaluating CI server, such as build waiting time and ease to configure, are proposed based on previous related studies and my working experience. Based on the criteria, the performance of three modes is compared to see the differences among the three modes. According to the advantages and disadvantages of each mode, the suggested applications of each mode are introduced. This study gets the following results. The Master/Slave mode has shorter build waiting time, easier configuration, and lower memory consumption of the slave for concurrent build jobs with poorer environment isolation, more complex maintenance, and higher memory consumption of the slave for single job running. The Docker Execution mode has better environment isolation, easier maintenance, and lower memory consumption of the slave (both single and concurrent) with longer build waiting time and more complex configuration. The Docker Ephemeral Slave mode has easier configuration, better environment isolation, and easier maintenance with longer build waiting time, higher resource consumption of the master, and higher resource consumption of the slave for concurrent build jobs.
Description
Supervisor
Lassenius, Casper
Thesis advisor
Laukkanen, Eero
Keywords
continuous Integration, Jenkins, docker, containerization, build waiting time
Other note
Citation