Comparing Different CI/CD Pipelines
Virtanen, Joni (2021)
Virtanen, Joni
2021
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021120924777
https://urn.fi/URN:NBN:fi:amk-2021120924777
Tiivistelmä
Opinnäytetyön tavoitteena oli vertailla erilaisia jatkuvaan integraatioon ja jatkuvaan julkaisemiseen saatavilla olevia järjestelmiä. Työn aikana tarkasteltavia tuotteita olivat Jenkins, Atlassian Bamboo, Azure Pipelines, Google Cloud Build, AWS CodeBuild ja CodePipeline, GitLab Actions, GitHub CI/CD ja Bitbucket Pipelines. Opinnäytetyön toimeksiantajana oli Ambientia Oy.
Opinnäytetyön teoriaosa avaa jatkuvan integraation, jatkuvan julkaisemisen ja julkaisuputkien käsitteet. Tämän jälkeen teoriaosuudessa käsitellään yleisellä tasolla eri ratkaisujen tarvittavat komponentit julkaisuputken luomiseksi. Opinnäytetyö on tutkimuksellinen. Aineistoa kerättiin eri palveluiden omista dokumentaatioista. Käytännön osuudessa toteutettiin mahdollisimman identtinen julkaisuputki eri palveluihin teoriaosuudessa kuvattujen tietojen pohjalta.
Tutkimuksessa havaittiin erilaisten palvelujen olevan useimmiten toistensa kaltaisia ja saavuttavan niiltä odotetun putken tavoitteet. Tutkimustyön ja sen pohjalta toteutettujen käytännön toteutuksien osalta yksittäisen tuotteen suositteleminen yli muiden on lähes mahdotonta ja useimmiten tuotteen käyttäjän tehokkuus onkin pitkälti kiinni hänen kokemuksestaan kyseisen tuotteen kanssa. The purpose of this thesis was to provide a comparison between different available continuous integration and continuous deployment services. During the process different products that were examined were Jenkins, Atlassian Bamboo, Azure Pipelines, Google Cloud Build, AWS CodeBuild and CodePipeline, GitLab Actions, GitHub CI/CD and Bitbucket Pipelines. The thesis was commissioned by Ambientia Oy.
The theoretical part of this thesis aimed to explain the concepts of continuous integration, continuous delivery and CI/CD pipelines. Afterwards, in the theory part different services are addressed on a high level in regards of the needed components in order to create a working CI/CD pipeline. The thesis is research-based. The material was collected from each services supplier’s documentation. The practical part of this thesis focused on reproducing a near identical pipeline for each environment, based on the information described in the theoretical part of this thesis.
During this study it was observed that implementations between the various services are most often similar, and they all should be able to accomplish the expectations of the simplistic pipeline. Based on the research work and the various implementations created, it is near impossible to consider one product better than the other, and often the efficiency of the user is more dependant on the familiarity of the product.
Opinnäytetyön teoriaosa avaa jatkuvan integraation, jatkuvan julkaisemisen ja julkaisuputkien käsitteet. Tämän jälkeen teoriaosuudessa käsitellään yleisellä tasolla eri ratkaisujen tarvittavat komponentit julkaisuputken luomiseksi. Opinnäytetyö on tutkimuksellinen. Aineistoa kerättiin eri palveluiden omista dokumentaatioista. Käytännön osuudessa toteutettiin mahdollisimman identtinen julkaisuputki eri palveluihin teoriaosuudessa kuvattujen tietojen pohjalta.
Tutkimuksessa havaittiin erilaisten palvelujen olevan useimmiten toistensa kaltaisia ja saavuttavan niiltä odotetun putken tavoitteet. Tutkimustyön ja sen pohjalta toteutettujen käytännön toteutuksien osalta yksittäisen tuotteen suositteleminen yli muiden on lähes mahdotonta ja useimmiten tuotteen käyttäjän tehokkuus onkin pitkälti kiinni hänen kokemuksestaan kyseisen tuotteen kanssa.
The theoretical part of this thesis aimed to explain the concepts of continuous integration, continuous delivery and CI/CD pipelines. Afterwards, in the theory part different services are addressed on a high level in regards of the needed components in order to create a working CI/CD pipeline. The thesis is research-based. The material was collected from each services supplier’s documentation. The practical part of this thesis focused on reproducing a near identical pipeline for each environment, based on the information described in the theoretical part of this thesis.
During this study it was observed that implementations between the various services are most often similar, and they all should be able to accomplish the expectations of the simplistic pipeline. Based on the research work and the various implementations created, it is near impossible to consider one product better than the other, and often the efficiency of the user is more dependant on the familiarity of the product.