Mikropalveluarkkitehtuurit
Syrjä, Jorma (2016)
Syrjä, Jorma
Vaasan ammattikorkeakoulu
2016
Creative Commons Attribution-NonCommercial-NoDerivs 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201605147828
https://urn.fi/URN:NBN:fi:amk-201605147828
Tiivistelmä
Tämän opinnäytetyön tavoitteena oli tutkia mikropalvelurakennetta vaihtoehtona ohjelmistosuunnittelussa. Vertailtavaksi valittiin kolme eri kehitysympäristöä, joilla toteutettiin yksinkertainen Internet of Things –sovellus. Lopuksi selvitettiin, mikä vaihtoehdoista olisi paras olemassaolevan sovelluksen uudelleenrakentamiseen mikropalveluiksi tai uuden sovelluksen rakentamiseen ohjelmistokehittäjän näkökulmasta.
Mikropalveluarkkitehtuuri on ohjelmiston suunnittelussa käytetty arkkitehtuurimalli hajautetusta sovelluksesta, jossa sovelluskokonaisuus on jaettu itsenäisiksi prosesseiksi, usein eri palvelimille tai pilvipalveluun. Mikropalvelu eroaa perinteisestä monoliittisesta arkkitehtuurimallista erityisesti modulaarisuudessaan, koska mikropalvelusovellus on jaettu pieniin osiin, sitä voi myös hallita pieninä osina. Esimerkiksi päivitys ja vikatilanteet kohdistuvat vain tiettyyn osaan sovellusta, esim. kirjautumiseen verkkopalvelussa, jolloin muut osat toimivat normaalisti muista osista riippumatta. Mikropalvelumalli on ideana vanha, mutta sen perusteella toteutettuja sovelluksia on alettu kehittämään vasta viime vuosien aikana.
Vertailun kohteena oli kolme eri kehitysympäristöä, Spring Cloud, Microsoft Azure Service Fabric ja Lightbend Lagom. Jokaisella ympäristöllä toteutettiin samankaltainen pieni Internet of Things –sovellus, jolloin kävi ilmi mm. eri ympäristöjen eroavaisuudet mikropalveluiden toteutuksissa ja niiden ohjelmoinnissa. Lopulta päädyttiin sellaiseen lopputulokseen, että jokainen kehitysympäristö on potentiaalinen vaihtoehto sekä uuden sovelluksen kehittämiseen että vanhan sovelluksen uudelleenrakentamiseen, joka ympäristöllä on omat vahvuudet ja heikkoudet.
Mikropalveluarkkitehtuuri on ohjelmiston suunnittelussa käytetty arkkitehtuurimalli hajautetusta sovelluksesta, jossa sovelluskokonaisuus on jaettu itsenäisiksi prosesseiksi, usein eri palvelimille tai pilvipalveluun. Mikropalvelu eroaa perinteisestä monoliittisesta arkkitehtuurimallista erityisesti modulaarisuudessaan, koska mikropalvelusovellus on jaettu pieniin osiin, sitä voi myös hallita pieninä osina. Esimerkiksi päivitys ja vikatilanteet kohdistuvat vain tiettyyn osaan sovellusta, esim. kirjautumiseen verkkopalvelussa, jolloin muut osat toimivat normaalisti muista osista riippumatta. Mikropalvelumalli on ideana vanha, mutta sen perusteella toteutettuja sovelluksia on alettu kehittämään vasta viime vuosien aikana.
Vertailun kohteena oli kolme eri kehitysympäristöä, Spring Cloud, Microsoft Azure Service Fabric ja Lightbend Lagom. Jokaisella ympäristöllä toteutettiin samankaltainen pieni Internet of Things –sovellus, jolloin kävi ilmi mm. eri ympäristöjen eroavaisuudet mikropalveluiden toteutuksissa ja niiden ohjelmoinnissa. Lopulta päädyttiin sellaiseen lopputulokseen, että jokainen kehitysympäristö on potentiaalinen vaihtoehto sekä uuden sovelluksen kehittämiseen että vanhan sovelluksen uudelleenrakentamiseen, joka ympäristöllä on omat vahvuudet ja heikkoudet.