Toiminnanohjausjärjestelmän rajapinnan pilkkominen mikropalveluiksi
Marin, Ari (2018)
Marin, Ari
2018
Tietotekniikka
Tieto- ja sähkötekniikan tiedekunta - Faculty of Computing and Electrical Engineering
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ä
2018-01-10
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201712142346
https://urn.fi/URN:NBN:fi:tty-201712142346
Tiivistelmä
Tämän opinnäytetyön tavoitteena oli tutkia mikropalveluarkkitehtuuria ja sen sisällyttämistä nykyiseen monoliittiseen järjestelmään. Monoliitin ja mikropalveluiden vertailun jälkeen tarkasteltiin olemassa olevaa REST-rajapintaa sekä mahdollisuutta pilkkoa se mikropalveluiksi.
Monoliittisessa arkkitehtuurityylissä sovellus julkaistaan ja päivitetään yhtenä suurena kokonaisuutena. Mikropalvelut ovat pieniä ja itsenäisiä palveluita, jotka työskentelevät yhdessä toistensa kanssa. Mikropalvelut ovat kokonaisuutena ohjelmistoarkkitehtuuri-tyyli, joka vaatii sovelluksen toiminnallisen jakamisen pieniin, mieluusti yhden asian tekeviin palveluihin. Jaetut palvelut koostavat yhdessä hajautetun järjestelmän. Järjestelmän palvelut voidaan ylläpitämisen ja jakelun helpottamiseksi laittaa esim. Docker-kontteihin. Toisin kun monoliittisessa arkkitehtuurityylissä, mikropalveluissa yhden palvelun päivittäminen tai kaatuminen ei vaikuta olennaisesti koko muuhun järjestelmään.
Olemassa olevalle rajapinnalle tehtiin testi pilkkominen. Rajapinnasta eriytettiin yksi yksinkertainen ominaisuus omaksi palvelukseen ja samalla se poistettiin olemasta olevasta rajapinnasta. Tämän jälkeen Spring Cloud-kirjastojen avulla näistä luotiin omat palvelut. Lopputuloksena kaksi itsenäistä palvelua, jotka toimivat niin yhdessä kuin erikseen. Olemassa olevan monoliitin pilkkominen mikropalveluiksi on siis täysin mahdollista ja oikeilla kirjastoilla mahdollisesti jopa helppoa.
Monoliittisessa arkkitehtuurityylissä sovellus julkaistaan ja päivitetään yhtenä suurena kokonaisuutena. Mikropalvelut ovat pieniä ja itsenäisiä palveluita, jotka työskentelevät yhdessä toistensa kanssa. Mikropalvelut ovat kokonaisuutena ohjelmistoarkkitehtuuri-tyyli, joka vaatii sovelluksen toiminnallisen jakamisen pieniin, mieluusti yhden asian tekeviin palveluihin. Jaetut palvelut koostavat yhdessä hajautetun järjestelmän. Järjestelmän palvelut voidaan ylläpitämisen ja jakelun helpottamiseksi laittaa esim. Docker-kontteihin. Toisin kun monoliittisessa arkkitehtuurityylissä, mikropalveluissa yhden palvelun päivittäminen tai kaatuminen ei vaikuta olennaisesti koko muuhun järjestelmään.
Olemassa olevalle rajapinnalle tehtiin testi pilkkominen. Rajapinnasta eriytettiin yksi yksinkertainen ominaisuus omaksi palvelukseen ja samalla se poistettiin olemasta olevasta rajapinnasta. Tämän jälkeen Spring Cloud-kirjastojen avulla näistä luotiin omat palvelut. Lopputuloksena kaksi itsenäistä palvelua, jotka toimivat niin yhdessä kuin erikseen. Olemassa olevan monoliitin pilkkominen mikropalveluiksi on siis täysin mahdollista ja oikeilla kirjastoilla mahdollisesti jopa helppoa.