Feature preview deployments as part of the CI/CD pipeline in software development

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Sähkötekniikan korkeakoulu | Master's thesis
Date
2024-03-11
Department
Major/Subject
Control, Robotics and Autonomous Systems
Mcode
ELEC3025
Degree programme
AEE - Master’s Programme in Automation and Electrical Engineering (TS2013)
Language
en
Pages
51+10
Series
Abstract
This thesis explores the implementation and impact of an enhanced Continuous Integration/Continuous Delivery (CI/CD) pipeline within a software development team. Rooted in the canonical action research framework, the study progresses through diagnosis, action planning, intervention, evaluation, and learning phases. As a result of these phases, the particular CI/CD pipeline utilized by a real-world software development team sees the addition of an automated feature preview deployment system. This enables each pull/merge request of new software features to be previewed in a testing environment to aid the code review process. This improvement demonstrates notable benefits, enhancing development efficiency, internal and external collaboration of the team, and scalability of a project with a growing team. However, the solution presented in the thesis might also not be applicable for every software development project with differing deployment configurations. The research also identifies future paths, such as enabling feature branch deployments already prior to pull/merge request phase and an automated release process accommodating previous releases in the same testing environment. The implications for practice highlight the importance of suitable CI/CD adoption, balancing automation benefits with precision in software quality. Future research suggestions include exploring new CI/CD configurations, organizational shifts caused by adoption, and staying alongside evolving industry trends. Therefore, this thesis essentially contributes to the ongoing consideration on CI/CD practices, offering practical insights and directions for further exploration in the realm of software development.

Tämä opinnäytetyö tutkii jatkuvan integrointi-/toimitusputken parannusta, käyttöönottoa ja sen toteuttamaa vaikutusta ohjelmistokehitystiimissä. Kanonisen toimintatutkimus kehyksen kautta tutkimus etenee diagnoosi-, toimintasuunnittelu-, interventio-, arviointi- ja oppimisvaiheiden kautta. Näiden vaiheiden seurauksena kyseiseen CI/CD-putkeen, joka toimii oikean ohjelmistokehitystiimin käytössä, lisättiin automatisoitu esikatselu järjestelmän. Tämä mahdollistaa jokaisen uuden ohjelmisto ominaisuuden esikatselun testausympäristöissä koodin tarkastusprosessin avustamiseksi jokaisen pull/merge-pyynnön kohdalla. Tämä parannus osoittaa merkittäviä etuja, tehostaen itse ohjelmistokehitystä, kehitystiimin sisäistä ja ulkoista yhteistyötä ja projektia toteuttavan tiimin koon skaalautuvuutta. On kuitenkin huomioitava, että tutkimuksessa esitetty ratkaisu ei välttämättä sovellu kaikkiin ohjelmistokehitysprojekteihin erilaisilla julkaisukonfiguraatioilla. Tutkimus tunnistaa myös tulevaisuuden mahdollisuuksia, kuten esitarkastusvaiheen ominaisuuksien käyttöönottoa jo ennen pull/merge-pyyntö osuutta sekä automatisoitua julkaisuprosessia, joka ottaa huomioon aiemmin julkaistut versiot samassa testausympäristössä. Käytännön sovellusten näkökulmasta työ korostaa sopivan CI/CD-käytäntöjen omaksumisen tärkeyttä tasapainottaen automatisoinnin etuja ohjelmiston laadun tarkkuuden ohella. Tulevaisuuden tutkimuksen ehdotukset sisältävät uusien CI/CD-konfiguraatioiden tutkimista, käytäntöjen käyttöönoton aiheuttamien organisaatiollisten muutosten tutkimista ja pysymista ajan tasalla muuttuvista alan suuntautumisista. Täten tämä opinnäytetyö tarjoaa eräänlaisen myötävaikutuksen CI/CD-käytäntöjen jatkuvaan keskusteluun tarjoten käytännön näkökohtia ja ohjeita lisätutkimukseen ohjelmistokehityksen kontekstissa.
Description
Supervisor
Vanhanen, Jari-Pekka
Thesis advisor
Törnroos, Juha
Keywords
software developmen, continuous integration, continuous delivery, continuous deployment, DevOps, canonical action research
Other note
Citation