Java sovelluksen migraatio yksityisen pilveen

Tutkimuksessa selvitettiin mitä organisaation tulee huomioida siirtyessä käyttämään yksityistä pilveä. Mitä pilveen ja mikropalveluarkkitehtuuriin siirtyminen tarkoittaa niin uuskehityksessä kuin ylläpidossa oleville järjestelmille. Miten järjestelmien käyttöönotto pilvialustalle suunnitellaan ja to...

Full description

Bibliographic Details
Main Author: Timperi, Petri
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: 2020
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/72879
_version_ 1826225752175017984
author Timperi, Petri
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Timperi, Petri Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Timperi, Petri Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Timperi, Petri
datasource_str_mv jyx
description Tutkimuksessa selvitettiin mitä organisaation tulee huomioida siirtyessä käyttämään yksityistä pilveä. Mitä pilveen ja mikropalveluarkkitehtuuriin siirtyminen tarkoittaa niin uuskehityksessä kuin ylläpidossa oleville järjestelmille. Miten järjestelmien käyttöönotto pilvialustalle suunnitellaan ja toteutetaan. Tutkimus toteutettiin kaksiosaisena; mikropalvelu-arkkitehtuuriin siirtymistä selvitettiin kirjallisuus- ja artikkelikatsauksella ja yksityiseen pilveen migraatiota tapaustutkimuksella, jossa vietiin Java sovellus tilaajan OpenShiftillä toteutettuun yksityiseen pilveen. Mikropalvelu-arkkitehtuurista selvitettiin mitkä ovat sen keskeiset periaatteet, mitä suunnittelumalleja sille on olemassa ja miten sovellusten arkkitehtuurimigraatio käytännössä kannattaa tehdä. Yksityisen pilven migraatiossa koestettiin uudelleensijoitus menetelmällä Java sovelluksen vienti OpenShift alustalle, mitä toimenpiteitä se vaatii ja miten alusta palvelee sovelluk-sen uudelleensijoitusta. Mikropalvelu-arkkitehtuurista tarkasteltiin palveluihin jakamista, sekä uuskehitys- että migraatioprojektissa. Miten mikropalvelujen myötä tulevat rajapinnat kannattaa suunnitella, mitkä ovat niiden tehokkaat käyttötavat ja miten rajapintojen versiointi hoidetaan. Transaktion hallintaan perehdyttiin eri suunnittelumallien kautta. Erityisesti tarkasteltiin miten ylläpidossa olevien järjestelmien migraatio mikropalvelu-arkkitehtuuriin kannattaa tehdä. Java sovelluksen migraatioon liittyen selvitettiin OpenShift alustan keskeiset resurssit ja miten kokonaisuus toimii sovellusten käyttöönotossa alustalle. Tutkimuksessa havaittiin, että mikropalvelujen jakamisessa DDD-malli on yleinen ja se soveltuu hyvin pohjaksi, kun palveluita jaetaan pienempiin osiin. Rajapintojen kommunikaatio tyypeissä asynkroninen tapa tuottaa paremman löyhän liitoksen mutta on työläämpi toteuttaa verrattuna synkroniseen kommunikaatioon. Vanhojen järjestelmien migraatiossa painottui inkrementaalisuus ja kuristusmallin käyttö. Pilveen migraatiossa havaittiin, että mikropalvelu arkkitehtuuri on optimaalisin mutta myös uudelleensijoitus-strategialla voidaan saavuttaa konekapasiteetin käyttöaste hyötyjä. OpenShift alustan käyttö osoittautui perehtymistä vaativaksi, mutta alusta ominaisuuksiltaan kattavaksi. Kokemusten pohjalta alustan käyttöön voi suhtautua luottavaisesti, vaikkakin lisätutkimusta aiheesta tarvitaan erityisesti vikatilanteista toipumisen ja suorituskyvyn osalta. This study was conducted to find out what should be taken into account when taking a private cloud in use within an organization. What it means to migrate to microservices architecture both for new development and for legacy systems. What should be considered when taking into use a private cloud solution. The study was implemented in two parts; migration to microservices architecture was elaborated by book and article review whereas the migration of a Java application into private cloud was conducted as a case study. The private cloud used in the study was deployed at customer’s premises with Red Hat OpenShift technology. Microservices where studied by finding out its fundamental principles, what kind of design patterns there exists and what are the best practices to carry out an architecture migration. The migration into private cloud was experimented by rehosting a legacy Java application to OpenShift platform. It was explored what actions are needed in the process and how the platform supports re-hosting. The microservice decomposition was elaborated for both novel development and migration projects. What is the best way to design interfaces for micro-services, how are those used effectively and how to handle the versioning. Transaction handling was investigated through various design patterns describing the domain area. In particular, it was explored how a legacy system should be migrated to microservices architecture. In Java application migration, it was found out what are the key components of OpenShift and how the application is deployed into the platform in practice. The study discovered that a common model for service decomposition is DDD, which works well when dividing services into smaller domains. In communication types, the asynchronous design yields to better loose coupling, but it is laborious to implement compared to synchronous design. Incremental development and strangler fig pattern were advisable in migration of legacy applications. The microservices architecture was found out to be most optimal for cloud. Still, with plain lift-and-shift migration the savings in computing capacity can be achieved. The usage of OpenShift platform turned out to need some learning prior to utilization, but overall, the platform had extensive and working feature set. Based on the case study, the platform was trustworthy in terms of its features and basic usage. Further studies are needed on customer’s domain especially in failover and performance testing areas.
first_indexed 2020-11-30T21:00:49Z
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": "Timperi, Petri", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2020-11-30T12:02:06Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2020-11-30T12:02:06Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2020", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/72879", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Tutkimuksessa selvitettiin mit\u00e4 organisaation tulee huomioida siirtyess\u00e4 k\u00e4ytt\u00e4m\u00e4\u00e4n yksityist\u00e4 pilve\u00e4. Mit\u00e4 pilveen ja mikropalveluarkkitehtuuriin siirtyminen tarkoittaa niin uuskehityksess\u00e4 kuin yll\u00e4pidossa oleville j\u00e4rjestelmille. Miten j\u00e4rjestelmien k\u00e4ytt\u00f6\u00f6notto pilvialustalle suunnitellaan ja toteutetaan.\nTutkimus toteutettiin kaksiosaisena; mikropalvelu-arkkitehtuuriin siirtymist\u00e4 selvitettiin kirjallisuus- ja artikkelikatsauksella ja yksityiseen pilveen migraatiota tapaustutkimuksella, jossa vietiin Java sovellus tilaajan OpenShiftill\u00e4 toteutettuun yksityiseen pilveen. Mikropalvelu-arkkitehtuurista selvitettiin mitk\u00e4 ovat sen keskeiset periaatteet, mit\u00e4 suunnittelumalleja sille on olemassa ja miten sovellusten arkkitehtuurimigraatio k\u00e4yt\u00e4nn\u00f6ss\u00e4 kannattaa tehd\u00e4. Yksityisen pilven migraatiossa koestettiin uudelleensijoitus menetelm\u00e4ll\u00e4 Java sovelluksen vienti OpenShift alustalle, mit\u00e4 toimenpiteit\u00e4 se vaatii ja miten alusta palvelee sovelluk-sen uudelleensijoitusta.\nMikropalvelu-arkkitehtuurista tarkasteltiin palveluihin jakamista, sek\u00e4 uuskehitys- ett\u00e4 migraatioprojektissa. Miten mikropalvelujen my\u00f6t\u00e4 tulevat rajapinnat kannattaa suunnitella, mitk\u00e4 ovat niiden tehokkaat k\u00e4ytt\u00f6tavat ja miten rajapintojen versiointi hoidetaan. Transaktion hallintaan perehdyttiin eri suunnittelumallien kautta. Erityisesti tarkasteltiin miten yll\u00e4pidossa olevien j\u00e4rjestelmien migraatio mikropalvelu-arkkitehtuuriin kannattaa tehd\u00e4. Java sovelluksen migraatioon liittyen selvitettiin OpenShift alustan keskeiset resurssit ja miten kokonaisuus toimii sovellusten k\u00e4ytt\u00f6\u00f6notossa alustalle.\nTutkimuksessa havaittiin, ett\u00e4 mikropalvelujen jakamisessa DDD-malli on yleinen ja se soveltuu hyvin pohjaksi, kun palveluita jaetaan pienempiin osiin. Rajapintojen kommunikaatio tyypeiss\u00e4 asynkroninen tapa tuottaa paremman l\u00f6yh\u00e4n liitoksen mutta on ty\u00f6l\u00e4\u00e4mpi toteuttaa verrattuna synkroniseen kommunikaatioon. Vanhojen j\u00e4rjestelmien migraatiossa painottui inkrementaalisuus ja kuristusmallin k\u00e4ytt\u00f6. Pilveen migraatiossa havaittiin, ett\u00e4 mikropalvelu arkkitehtuuri on optimaalisin mutta my\u00f6s uudelleensijoitus-strategialla voidaan saavuttaa konekapasiteetin k\u00e4ytt\u00f6aste hy\u00f6tyj\u00e4. OpenShift alustan k\u00e4ytt\u00f6 osoittautui perehtymist\u00e4 vaativaksi, mutta alusta ominaisuuksiltaan kattavaksi. Kokemusten pohjalta alustan k\u00e4ytt\u00f6\u00f6n voi suhtautua luottavaisesti, vaikkakin lis\u00e4tutkimusta aiheesta tarvitaan erityisesti vikatilanteista toipumisen ja suorituskyvyn osalta.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "This study was conducted to find out what should be taken into account when taking a private cloud in use within an organization. What it means to migrate to microservices architecture both for new development and for legacy systems. What should be considered when taking into use a private cloud solution.\nThe study was implemented in two parts; migration to microservices architecture was elaborated by book and article review whereas the migration of a Java application into private cloud was conducted as a case study. The private cloud used in the study was deployed at customer\u2019s premises with Red Hat OpenShift technology. Microservices where studied by finding out its fundamental principles, what kind of design patterns there exists and what are the best practices to carry out an architecture migration. The migration into private cloud was experimented by rehosting a legacy Java application to OpenShift platform. It was explored what actions are needed in the process and how the platform supports re-hosting.\nThe microservice decomposition was elaborated for both novel development and migration projects. What is the best way to design interfaces for micro-services, how are those used effectively and how to handle the versioning. Transaction handling was investigated through various design patterns describing the domain area. In particular, it was explored how a legacy system should be migrated to microservices architecture. In Java application migration, it was found out what are the key components of OpenShift and how the application is deployed into the platform in practice. \nThe study discovered that a common model for service decomposition is DDD, which works well when dividing services into smaller domains. In communication types, the asynchronous design yields to better loose coupling, but it is laborious to implement compared to synchronous design. Incremental development and strangler fig pattern were advisable in migration of legacy applications. The microservices architecture was found out to be most optimal for cloud. Still, with plain lift-and-shift migration the savings in computing capacity can be achieved. The usage of OpenShift platform turned out to need some learning prior to utilization, but overall, the platform had extensive and working feature set. Based on the case study, the platform was trustworthy in terms of its features and basic usage. Further studies are needed on customer\u2019s domain especially in failover and performance testing areas.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2020-11-30T12:02:06Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2020-11-30T12:02:06Z (GMT). No. of bitstreams: 0\n Previous issue date: 2020", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "73", "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": "mikropalvelut", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "docker", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "openshift", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Java sovelluksen migraatio yksityisen pilveen", "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-202011306841", "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.collaborator", "value": "public", "language": "", "element": "contractresearch", "qualifier": "collaborator", "schema": "yvv"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "yvv.contractresearch.initiative", "value": "student", "language": "", "element": "contractresearch", "qualifier": "initiative", "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": "pilvipalvelut", "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_72879
language fin
last_indexed 2025-02-18T10:54:11Z
main_date 2020-01-01T00:00:00Z
main_date_str 2020
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/dcb74d49-7829-4bcf-ad4a-f2ce4757dfb6\/download","text":"URN:NBN:fi:jyu-202011306841.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2020
record_format qdc
source_str_mv jyx
spellingShingle Timperi, Petri Java sovelluksen migraatio yksityisen pilveen mikropalvelut docker openshift Tietojärjestelmätiede Information Systems Science 601 pilvipalvelut
title Java sovelluksen migraatio yksityisen pilveen
title_full Java sovelluksen migraatio yksityisen pilveen
title_fullStr Java sovelluksen migraatio yksityisen pilveen Java sovelluksen migraatio yksityisen pilveen
title_full_unstemmed Java sovelluksen migraatio yksityisen pilveen Java sovelluksen migraatio yksityisen pilveen
title_short Java sovelluksen migraatio yksityisen pilveen
title_sort java sovelluksen migraatio yksityisen pilveen
title_txtP Java sovelluksen migraatio yksityisen pilveen
topic mikropalvelut docker openshift Tietojärjestelmätiede Information Systems Science 601 pilvipalvelut
topic_facet 601 Information Systems Science Tietojärjestelmätiede docker mikropalvelut openshift pilvipalvelut
url https://jyx.jyu.fi/handle/123456789/72879 http://www.urn.fi/URN:NBN:fi:jyu-202011306841
work_keys_str_mv AT timperipetri javasovelluksenmigraatioyksityisenpilveen