CI/CD-putken suunnittelu ja toteutus ohjelmistoprojektille
Koskimäki, Leo (2026)
Koskimäki, Leo
2026
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202605049059
https://urn.fi/URN:NBN:fi:amk-202605049059
Tiivistelmä
Insinöörityön tarkoituksena oli suunnitella ja toteuttaa CI/CD-putki ohjelmistoprojektille kolmella eri alustalla. Vertailtaviksi alustoiksi valittiin kolme laajasti käytettyä CI/CD-alustaa, jotka poikkeavat toisistaan toteutustavoiltaan.
Työssä toteutettiin TODO-verkkosovellus React-pohjaisella frontendillä ja node.js pohjaisella backendillä. TODO-verkkosovellus valittiin esimerkkiprojektiksi, koska se on selkeästi jaettavissa erillisiin frontend- ja backend-komponentteihin ja sisältää riittävästi toiminnallisuutta kattavan testauksen toteuttamiseksi.
Kullekin alustalle rakennettiin oma putki yhdenmukaista arkkitehtuuria noudattaen. Putken vaiheet olivat riippuvuuksien asennus, linttaus, testaus, testikattavuusraportointi, build, paketointi ja julkaisu. Yhdenmukainen rakenne mahdollisti putken siirtämisen alustalta toiselle kohtuullisella vaivalla, ja alustakohtaiset eroavaisuudet tuottivat vertailukelpoista tietoa toteutustavoista. Putken vaiheet eroteltiin kahteen vaiheeseen: CI ja CD.
Sovelluksen toiminnallisuudet testattiin CI-vaiheessa kattavasti: tehtävien lisääminen, muokkaaminen, poistaminen ja merkitseminen tehdyksi sekä virheenkäsittely. CD-vaihe toteutettiin alustakohtaisesti: frontend julkaistiin staattisen sivuston hosting-palveluun, kun taas backend julkaistiin kaikilla alustoilla pilvipalveluun rajapintakutsun avulla.
CI-vaiheen ajoaikavertailussa nopein alusta suoriutui 23 sekunnin keskiarvolla, kun taas kahden muun alustan ajat olivat noin minuutin luokkaa. CD-vaiheen ajallinen vertailu ei ollut mahdollista krediittirajoitteiden vuoksi. Työn tulokset osoittivat, että CI/CD-automaatio oli hyödyllistä myös yhden kehittäjän projektissa ja sama putkirakenne oli toteutettavissa eri alustoilla yhtenäisesti.
Työssä toteutettiin TODO-verkkosovellus React-pohjaisella frontendillä ja node.js pohjaisella backendillä. TODO-verkkosovellus valittiin esimerkkiprojektiksi, koska se on selkeästi jaettavissa erillisiin frontend- ja backend-komponentteihin ja sisältää riittävästi toiminnallisuutta kattavan testauksen toteuttamiseksi.
Kullekin alustalle rakennettiin oma putki yhdenmukaista arkkitehtuuria noudattaen. Putken vaiheet olivat riippuvuuksien asennus, linttaus, testaus, testikattavuusraportointi, build, paketointi ja julkaisu. Yhdenmukainen rakenne mahdollisti putken siirtämisen alustalta toiselle kohtuullisella vaivalla, ja alustakohtaiset eroavaisuudet tuottivat vertailukelpoista tietoa toteutustavoista. Putken vaiheet eroteltiin kahteen vaiheeseen: CI ja CD.
Sovelluksen toiminnallisuudet testattiin CI-vaiheessa kattavasti: tehtävien lisääminen, muokkaaminen, poistaminen ja merkitseminen tehdyksi sekä virheenkäsittely. CD-vaihe toteutettiin alustakohtaisesti: frontend julkaistiin staattisen sivuston hosting-palveluun, kun taas backend julkaistiin kaikilla alustoilla pilvipalveluun rajapintakutsun avulla.
CI-vaiheen ajoaikavertailussa nopein alusta suoriutui 23 sekunnin keskiarvolla, kun taas kahden muun alustan ajat olivat noin minuutin luokkaa. CD-vaiheen ajallinen vertailu ei ollut mahdollista krediittirajoitteiden vuoksi. Työn tulokset osoittivat, että CI/CD-automaatio oli hyödyllistä myös yhden kehittäjän projektissa ja sama putkirakenne oli toteutettavissa eri alustoilla yhtenäisesti.
