Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät

Mikropalveluarkkitehtuuri on ohjelmistokehittämisessä hyödynnettävä pilvipohjainen arkkitehtuurityyli, joka perustuu pieniin itsenäisiin verkkoyhteyden yli kommunikoiviin palveluihin. Tämän työn tavoitteena on selvittää mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevia tekij...

Full description

Bibliographic Details
Main Author: Ketola, Olli
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:fin
Published: 2019
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/64652
_version_ 1826225755489566720
author Ketola, Olli
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Ketola, Olli Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Ketola, Olli Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Ketola, Olli
datasource_str_mv jyx
description Mikropalveluarkkitehtuuri on ohjelmistokehittämisessä hyödynnettävä pilvipohjainen arkkitehtuurityyli, joka perustuu pieniin itsenäisiin verkkoyhteyden yli kommunikoiviin palveluihin. Tämän työn tavoitteena on selvittää mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevia tekijöitä. Työn empiirisessä tutkimuksessa pyritään vastamaan kahteen tutkimuskysymykseen. Mitkä toimintamallit ja prosessit tukevat mikropalveluarkkitehtuuriin perustuvaa kehittämistä ja mitkä tekniset ratkaisut mahdollistavat mikropalveluarkkitehtuurin tehokkaan toiminnan? Kirjallisuuskatsauksen ensimmäisessä luvussa käydään läpi, mistä mikropalveluarkkitehtuuri on saanut alkunsa ja esitellään aiemman tutkimuskirjallisuuden valossa mikropalveluarkkitehtuurin oleellisiksi tunnistettuja osa-alueita. Toisessa luvussa käydään läpi toimintamalleja ja prosesseja, jotka usein liitettään mikropalveluarkkitehtuurin yhteyteen. Kirjallisuuskatsauksen jälkeen esitellään empiirisen tutkimuksen käytännön toteutus ja käydään läpi tutkimuksen tulokset sekä pohditaan, miten tulokset linkittyvät aiempaan tutkimuskirjallisuuteen. Työn empiirinen tutkimus toteutettiin hyödyntäen laadullista teemahaastatteluihin perustuvaa tutkimusmenetelmää. Haastatellut henkilöt olivat ohjelmistokehittäjiä ja ohjelmistoarkkitehteja, joilla oli aiempaa kokemusta mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämisestä ja suunnittelemisesta. Haastattelujen perusteella saadut tulokset olivat hyvin linjassa aiemman tutkimuskirjallisuuden kanssa. Mikropalveluarkkitehtuuriin perustuvien järjestelmien rakentamiseen liittyen tärkeänä pidettiin DDD-periaatteita seuraavaa suunnittelua, mikropalveluiden mahdollistamaa teknologia riippumatonta kehittämistä, REST-periaatteita seuraavaa kommunikointia ja tietovarastojen eriyttämistä. Lisäksi esiin nousi valmiiden pilvialustojen hyödyntäminen, joka mahdollistaa konttien tehokkaan käytön. Mikropalveluiden kehittämisen kannalta oleellisiksi toimintamalleiksi tunnistettiin DevOps-periaatteita seuraavien käytänteiden omaksuminen ja automaattisten julkaisuprosessien rakentaminen. Microservice architecture is an architectural style that is being used for building cloud native software. It is based on small services that communicate through an Internet connection and can be developed and released independently. The goal of this thesis is to identify how microservice based applications are developed at the moment. More precisely, the goal is to investigate what process and methods are used to support microservice development and what kind of technological solutions enables microservice architecture to work efficiently. The first part of the literature review explains where microservice architecture has come from and what is considered the main elements in microservice architecture. In the second part of the literature goes through the processes and the methods that are being used to develop microservice based applications. Rest of the chapters are related to the empirical part of the thesis and discuss how research was done and presents the results of the thesis and discuss how results are in line with previous literature. The empirical part of the thesis was done as a qualitative research by following the theme interview method. Interviewees were software developers and software architects who had experience on building and designing microservice based applications. Results were in line with existing literature. The most significant findings related to the developing microservice based application were, a design that follows DDD principles, technologically independent development, inner communication that follows REST principles, differentiated data storages and extensive use cloud platforms that enables the use of containers. From process and methods perspective DevOps principles and continuous integration and delivery practices were identified to be an integral part of the microservice architecture.
first_indexed 2019-08-19T08:21:44Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Sepp\u00e4nen, Ville", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Ketola, Olli", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2019-06-14T13:11:19Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2019-06-14T13:11:19Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2019", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/64652", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Mikropalveluarkkitehtuuri on ohjelmistokehitt\u00e4misess\u00e4 hy\u00f6dynnett\u00e4v\u00e4 pilvipohjainen arkkitehtuurityyli, joka perustuu pieniin itsen\u00e4isiin verkkoyhteyden yli kommunikoiviin palveluihin. T\u00e4m\u00e4n ty\u00f6n tavoitteena on selvitt\u00e4\u00e4 mikropalveluarkkitehtuuriin perustuvien j\u00e4rjestelmien kehitt\u00e4mist\u00e4 tukevia tekij\u00f6it\u00e4. Ty\u00f6n empiirisess\u00e4 tutkimuksessa pyrit\u00e4\u00e4n vastamaan kahteen tutkimuskysymykseen. Mitk\u00e4 toimintamallit ja prosessit tukevat mikropalveluarkkitehtuuriin perustuvaa kehitt\u00e4mist\u00e4 ja mitk\u00e4 tekniset ratkaisut mahdollistavat mikropalveluarkkitehtuurin tehokkaan toiminnan? Kirjallisuuskatsauksen ensimm\u00e4isess\u00e4 luvussa k\u00e4yd\u00e4\u00e4n l\u00e4pi, mist\u00e4 mikropalveluarkkitehtuuri on saanut alkunsa ja esitell\u00e4\u00e4n aiemman tutkimuskirjallisuuden valossa mikropalveluarkkitehtuurin oleellisiksi tunnistettuja osa-alueita. Toisessa luvussa k\u00e4yd\u00e4\u00e4n l\u00e4pi toimintamalleja ja prosesseja, jotka usein liitett\u00e4\u00e4n mikropalveluarkkitehtuurin yhteyteen. Kirjallisuuskatsauksen j\u00e4lkeen esitell\u00e4\u00e4n empiirisen tutkimuksen k\u00e4yt\u00e4nn\u00f6n toteutus ja k\u00e4yd\u00e4\u00e4n l\u00e4pi tutkimuksen tulokset sek\u00e4 pohditaan, miten tulokset linkittyv\u00e4t aiempaan tutkimuskirjallisuuteen. Ty\u00f6n empiirinen tutkimus toteutettiin hy\u00f6dynt\u00e4en laadullista teemahaastatteluihin perustuvaa tutkimusmenetelm\u00e4\u00e4. Haastatellut henkil\u00f6t olivat ohjelmistokehitt\u00e4ji\u00e4 ja ohjelmistoarkkitehteja, joilla oli aiempaa kokemusta mikropalveluarkkitehtuuriin perustuvien j\u00e4rjestelmien kehitt\u00e4misest\u00e4 ja suunnittelemisesta. Haastattelujen perusteella saadut tulokset olivat hyvin linjassa aiemman tutkimuskirjallisuuden kanssa. Mikropalveluarkkitehtuuriin perustuvien j\u00e4rjestelmien rakentamiseen liittyen t\u00e4rke\u00e4n\u00e4 pidettiin DDD-periaatteita seuraavaa suunnittelua, mikropalveluiden mahdollistamaa teknologia riippumatonta kehitt\u00e4mist\u00e4, REST-periaatteita seuraavaa kommunikointia ja tietovarastojen eriytt\u00e4mist\u00e4. Lis\u00e4ksi esiin nousi valmiiden pilvialustojen hy\u00f6dynt\u00e4minen, joka mahdollistaa konttien tehokkaan k\u00e4yt\u00f6n. Mikropalveluiden kehitt\u00e4misen kannalta oleellisiksi toimintamalleiksi tunnistettiin DevOps-periaatteita seuraavien k\u00e4yt\u00e4nteiden omaksuminen ja automaattisten julkaisuprosessien rakentaminen.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Microservice architecture is an architectural style that is being used for building cloud native software. It is based on small services that communicate through an Internet connection and can be developed and released independently. The goal of this thesis is to identify how microservice based applications are developed at the moment. More precisely, the goal is to investigate what process and methods are used to support microservice development and what kind of technological solutions enables microservice architecture to work efficiently. The first part of the literature review explains where microservice architecture has come from and what is considered the main elements in microservice architecture. In the second part of the literature goes through the processes and the methods that are being used to develop microservice based applications. Rest of the chapters are related to the empirical part of the thesis and discuss how research was done and presents the results of the thesis and discuss how results are in line with previous literature. The empirical part of the thesis was done as a qualitative research by following the theme interview method. Interviewees were software developers and software architects who had experience on building and designing microservice based applications. Results were in line with existing literature. The most significant findings related to the developing microservice based application were, a design that follows DDD principles, technologically independent development, inner communication that follows REST principles, differentiated data storages and extensive use cloud platforms that enables the use of containers. From process and methods perspective DevOps principles and continuous integration and delivery practices were identified to be an integral part of the microservice architecture.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2019-06-14T13:11:19Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2019-06-14T13:11:19Z (GMT). No. of bitstreams: 0\n Previous issue date: 2019", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "80", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "mikropalvelu", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "mikropalveluarkkitehtuuri", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "DevOps", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Mikropalveluarkkitehtuuriin perustuvien j\u00e4rjestelmien kehitt\u00e4mist\u00e4 tukevat tekij\u00e4t", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201906143243", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietoj\u00e4rjestelm\u00e4tiede", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Information Systems Science", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "601", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "j\u00e4rjestelm\u00e4arkkitehtuuri", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_64652
language fin
last_indexed 2025-02-18T10:55:59Z
main_date 2019-01-01T00:00:00Z
main_date_str 2019
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/229e87a8-d476-45c8-852b-4c5002e696bd\/download","text":"URN:NBN:fi:jyu-201906143243.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2019
record_format qdc
source_str_mv jyx
spellingShingle Ketola, Olli Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät mikropalvelu mikropalveluarkkitehtuuri DevOps Tietojärjestelmätiede Information Systems Science 601 järjestelmäarkkitehtuuri
title Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
title_full Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
title_fullStr Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
title_full_unstemmed Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
title_short Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
title_sort mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
title_txtP Mikropalveluarkkitehtuuriin perustuvien järjestelmien kehittämistä tukevat tekijät
topic mikropalvelu mikropalveluarkkitehtuuri DevOps Tietojärjestelmätiede Information Systems Science 601 järjestelmäarkkitehtuuri
topic_facet 601 DevOps Information Systems Science Tietojärjestelmätiede järjestelmäarkkitehtuuri mikropalvelu mikropalveluarkkitehtuuri
url https://jyx.jyu.fi/handle/123456789/64652 http://www.urn.fi/URN:NBN:fi:jyu-201906143243
work_keys_str_mv AT ketolaolli mikropalveluarkkitehtuuriinperustuvienjärjestelmienkehittämistätukevattekijät