Jatkuva integraatio - CASE: Sovellusalustan julkaisuprosessin kehittäminen Jenkinsillä
Stranius, Ville (2014)
Avaa tiedosto
Lataukset:
Stranius, Ville
HAAGA-HELIA ammattikorkeakoulu
2014
Creative Commons Attribution-NonCommercial-NoDerivs 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2014112016166
https://urn.fi/URN:NBN:fi:amk-2014112016166
Tiivistelmä
Capgemini Finland Oy toimittaa ulkoiselle asiakkaalle sovellusalustan ylläpito- ja jatkokehityspalvelun. Opinnäytetyön tavoitteena oli kehittää sovellusalustan julkaisuprosessia. Manuaalisia työvaiheita haluttiin karsia ja korvata nämä sovellusautomatiikkaa hyödyntämällä. Tällä tähdättiin riskien vähentämiseen virhealttiutta pienentämällä, sekä julkaisuprosessin keskimääräisen suoritusajan nopeuttamiseen. Sovellusalustan julkaisuprosessin kehittäminen toteutettiin osana palvelunlaajuista jatkuvan integraation kehityshanketta.
Teoriaosuudessa tutkitaan jatkuvaa integraatiota käsitteenä ja läpikäydään sen periaatteita, kuten esimerkiksi kaikkien soveltuvien työvaiheiden sovellusavusteinen automatisointi. Versionhallintaa käsitellään siinä laajuudessa, mikä on tarpeen, jotta voidaan ymmärtää jatkuvaa integraatiota noudattava sovelluskehitysprosessi. Teoriaosuuden lopuksi esitellään toteutusosiossa hyödynnetty vapaan lähdekoodin jatkuvan integraation työvälineratkaisu Jenkins. Lisäksi analysoidaan Jenkins-työkalun soveltuvuutta eri käyttötarkoituksiin, sekä tarkastellaan aiempia hyödyntämiskohteita.
Jenkinsin automatisointi ominaisuuksia hyödyntäen saatiin tavoitteen mukainen lopputulos. Irrallisia julkaisutoimenpiteitä saatiin nivottua Jenkins-ajoihin sisällytettävän logiikan ja komentojen avulla yhteen. Abstraktina tuotoksena sovellusalustalle syntyi uusi tehostettu julkaisuprosessi. Julkaisun virhealttiuden pienentäminen parantaa sovellusalustapalvelun toimitusvarmuutta. Julkaisuprosessin nopeutuminen on puolestaan tekijä palvelun laadun pitämiseen korkeana, sillä ajoittain tarve alustan julkaisemisesta muodostuu lyhyellä varoitusajalla. Tällöin julkaisuversio yleensä myös tarvitaan käytettäväksi mahdollisimman nopeasti.
Jenkinsin käyttöönoton yhteydessä havaittiin olevan hyödyllistä miettiä käyttötarkoitus mahdollisimman pitkälle, sillä oletusasennus ei välttämättä tarjoa kovin erikoistuneita toimintoja, mutta Jenkinsin yhteisötuki on vahva ja erilaisia liitännäisiä on saatavilla runsaasti.
Teoriaosuudessa tutkitaan jatkuvaa integraatiota käsitteenä ja läpikäydään sen periaatteita, kuten esimerkiksi kaikkien soveltuvien työvaiheiden sovellusavusteinen automatisointi. Versionhallintaa käsitellään siinä laajuudessa, mikä on tarpeen, jotta voidaan ymmärtää jatkuvaa integraatiota noudattava sovelluskehitysprosessi. Teoriaosuuden lopuksi esitellään toteutusosiossa hyödynnetty vapaan lähdekoodin jatkuvan integraation työvälineratkaisu Jenkins. Lisäksi analysoidaan Jenkins-työkalun soveltuvuutta eri käyttötarkoituksiin, sekä tarkastellaan aiempia hyödyntämiskohteita.
Jenkinsin automatisointi ominaisuuksia hyödyntäen saatiin tavoitteen mukainen lopputulos. Irrallisia julkaisutoimenpiteitä saatiin nivottua Jenkins-ajoihin sisällytettävän logiikan ja komentojen avulla yhteen. Abstraktina tuotoksena sovellusalustalle syntyi uusi tehostettu julkaisuprosessi. Julkaisun virhealttiuden pienentäminen parantaa sovellusalustapalvelun toimitusvarmuutta. Julkaisuprosessin nopeutuminen on puolestaan tekijä palvelun laadun pitämiseen korkeana, sillä ajoittain tarve alustan julkaisemisesta muodostuu lyhyellä varoitusajalla. Tällöin julkaisuversio yleensä myös tarvitaan käytettäväksi mahdollisimman nopeasti.
Jenkinsin käyttöönoton yhteydessä havaittiin olevan hyödyllistä miettiä käyttötarkoitus mahdollisimman pitkälle, sillä oletusasennus ei välttämättä tarjoa kovin erikoistuneita toimintoja, mutta Jenkinsin yhteisötuki on vahva ja erilaisia liitännäisiä on saatavilla runsaasti.