DevOps-julkaisuputken rakentaminen mikropalveluita hyödyntävälle web-sovellukselle
Ryynänen, Joonas (2019)
Kandidaatintyö
Ryynänen, Joonas
2019
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2019121648250
https://urn.fi/URN:NBN:fi-fe2019121648250
Tiivistelmä
Web-sovelluksien tarjoamat toiminnallisuudet paranevat vuosi vuodelta, kun ohjelmistoyritykset pyrkivät tarjoamaan kuluttajille mahdollisimman monipuolisia ratkaisuja. Samalla ohjelmistojen suorittaminen muuttuu raskaammaksi, ja monoliittista arkkitehtuuria käytettäessä kehitystyö on sidottuna tiettyihin teknologioihin. Mikropalveluarkkitehtuurin avulla web-sovelluksesta voidaan tehdä modulaarinen, jolloin tietty ohjelmiston toiminnallisuus voidaan toteuttaa sille parhaiten soveltuvalla teknologialla. Kyseinen arkkitehtuuri on rakenteeltaan monimutkainen, mutta sen tuomat hyödyt esimerkiksi sovelluksen skaalaamiseen liittyen ovat selkeitä. Tämän kandidaatintyön tavoitteena oli suunnitella ja toteuttaa automatisoitu julkaisuputki mikropalvelusovelluksen julkaisemiseen. Aluksi tehtiin vertailua monoliittisen arkkitehtuurin ja mikropalveluarkkitehtuurin välillä, ja tutkittiin miten mikropalveluarkkitehtuuri vaikuttaa sovellusten julkaisemiseen. Sen jälkeen tehtiin katsaus markkinoilla oleviin työkaluihin sekä suunniteltiin julkaisuputki. Suunnitelman pohjalta toteutettiin esimerkki julkaisuputkesta, joka julkaisee yksinkertaisen mikropalvelusovelluksen. Työn merkittävimpänä lopputuloksena voidaan pitää havaintoa siitä, että automatisoidun julkaisuputken avulla säästetään huomattava määrä sovellusten kehittäjien aikaa. Säästetty aika moninkertaistuu sovelluksen koon ja kehitystiimin kasvaessa. Voidaankin sanoa, että mikropalvelusovelluksen julkaisua kannattaa automatisoida mahdollisimman pitkälle. Työ päättyy yhteenvetoon, jossa julkaisuputken kehitysprosessia reflektoidaan. The features of web applications become better every year, as software companies try to offer as versatile solutions to customers as possible. At the same time running the software becomes heavier, and when using monolithic architecture the development is tied to certain technologies. With microservice architecture the web application is modular and a certain part of the software can be implemented with the best suited technology. Microservice architecture is complex but the benefits it brings to scalability for example are clear. The purpose of this thesis was to plan and implement a deployment pipeline to deploy a microservice application. At first monolithic and microservice architecture were compared, and the effects of using microservices regarding the pipeline were studied. Then an overview of the tools available in the market and a tentative plan of the pipeline was made. Based on the plan an example of the deployment pipeline which deploys a simple microservices application was developed. The most significant result of the thesis is the observation that the deployment pipeline saves a lot of time of the application developers. The amount of time saved multiplies as the application size and the development team grows. It can be said that the deployment of microservices application should be automated as much as possible. The thesis ends with a summary that reflects the development process of the deployment pipeline.