Tilallisuuden hallinta mikropalvelusovelluksessa
Martikainen, Aleksi (2020)
Martikainen, Aleksi
2020
Tietotekniikan DI-tutkinto-ohjelma - Degree Programme in Information Technology, MSc (Tech)
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2020-04-29
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202003282927
https://urn.fi/URN:NBN:fi:tuni-202003282927
Tiivistelmä
Pilvi on olennainen osa nykyisiä ohjelmistopalveluita. Nykyiset avoimen lähdekoodin sovellukset, kuten Docker ja Kubernetes, helpottavat pilvisovellusten hallintaa ja automatisoivat monia aiemmin ihmisen suorittamia tehtäviä. Nykyaikaiset mikropalveluarkkitehtuurilla toteutetut sovellukset on helppo siirtää pilveen ja skaalata tehokkaasti kulutuksen mukaisesti, jos sovellus on tilaton. Usein kaikki sovellukset tarvitsevat kuitenkin jonkinlaista tilallista tietoa. Mikropalveluarkkitehtuurissa tämä on usein hoidettu manuaalisesti luoduilla tietokannoilla, joita skaalataan ja konfiguroidaan manuaalisesti, tai vaihtoehtoisesti käytetään pilvipalveluntarjoajan ratkaisuja.
Kun perinteisellä monoliittiarkkitehtuurilla toteutettu sovellus halutaan muuntaa mikropalveluarkkitehtuuriin ja siirtää pilveen, yksi ratkaistava ongelma on tilallisuuden hallinta. Erityisesti Kubernetes ja Docker aiheuttavat useita rajoitteita tilallisille sovelluksille. Tässä työssä kartoitettiin näitä rajoitteita ja ratkaistiin niitä. Työssä on esitelty ja vertailtu erilaisia ratkaisuja ongelmaan ja kuvattu lopullinen ratkaisu.
Ratkaisuksi kehitettiin kaksi erillistä sovellusta, joista toinen vastaa asetustiedostojen hallinnasta, ja toinen vastaa sovelluksen tilatiedon säilyttämisestä. Työssä toteutettu asetustiedostojenhallintasovellus vastaa siitä, että hallittavan sovelluksen ilmentymillä on oikeat asetustiedostot muun muassa skaalauksen ja päivitysten yhteydessä. Lisäksi järjestelmän vastuulla on säilyttää asetustiedostoja ja ylläpitää niistä versiohistoriaa. Itse tilanhallintaan toteutettiin niin sanottu Kubernetes operaattori, joka on räätälöity juuri tämän sovelluksen tilallisuuden hallintaan.
Kun perinteisellä monoliittiarkkitehtuurilla toteutettu sovellus halutaan muuntaa mikropalveluarkkitehtuuriin ja siirtää pilveen, yksi ratkaistava ongelma on tilallisuuden hallinta. Erityisesti Kubernetes ja Docker aiheuttavat useita rajoitteita tilallisille sovelluksille. Tässä työssä kartoitettiin näitä rajoitteita ja ratkaistiin niitä. Työssä on esitelty ja vertailtu erilaisia ratkaisuja ongelmaan ja kuvattu lopullinen ratkaisu.
Ratkaisuksi kehitettiin kaksi erillistä sovellusta, joista toinen vastaa asetustiedostojen hallinnasta, ja toinen vastaa sovelluksen tilatiedon säilyttämisestä. Työssä toteutettu asetustiedostojenhallintasovellus vastaa siitä, että hallittavan sovelluksen ilmentymillä on oikeat asetustiedostot muun muassa skaalauksen ja päivitysten yhteydessä. Lisäksi järjestelmän vastuulla on säilyttää asetustiedostoja ja ylläpitää niistä versiohistoriaa. Itse tilanhallintaan toteutettiin niin sanottu Kubernetes operaattori, joka on räätälöity juuri tämän sovelluksen tilallisuuden hallintaan.