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 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.
...
Keywords
Metadata
Show full item recordCollections
- Pro gradu -tutkielmat [29743]
License
Related items
Showing items with similar title or keywords.
-
Kirjallisuuskatsaus liukkaisiin ohjelmistoihin soveltuvista tekniikoista ja arkkitehtuureista
Autto, Teemu (2024)Liukkaille ohjelmistoille kohdistuu omat vaatimukset, jotka poikkeavat perinteisistä ohjelmistoista. Tässä katselmuksessa tarkastellaan pilvipalveluista tuttuja tekniikoita liukkaiden ohjelmistojen viitekehyksessä. -
Kiertotalouden digitaaliset teknologiat
Shah-Aga, Said-Aga (2022)Tämän pro gradu tutkielman aiheena on digitaaliset teknologiat kiertotaloudessa. Nykyiset kulutustottumukset aiheuttavat maapallon resurssien vähenemisen, minkä vuoksi ratkaisuja kestävälle kehitykselle etsitään ahkerasti. ... -
Serverless-arkkitehtuuri ja järjestelmäkustannukset
Kuivanen, Karri (2019)Tämän tutkielman tavoitteena on selvittää, millä tavoin viime vuosina suurta suosiota saavuttaneen serverless-arkkitehtuurin hyödyntäminen vaikuttaa järjestelmän käyttökustannuksiin. Lisäksi tutkielma esittelee ... -
Advantages of Docker
Vase, Tuomas (2015)Docker on avoimen alustan sovellus, joka pystyy pakkaamaan sovelluksen kaikkien tarvittavien riippuvuuksien kanssa yhteen virtuaaliseen pakettiin, eli konttiin, ja tätä teknologiaa kutsutaan konttiteknologiaksi. Näitä ... -
Integrating Docker to a Continuous Delivery pipeline : a pragmatic approach
Vase, Tuomas (2016)Docker on kevyt avoimen alustan sovellus, joka pystyy pakkaamaan sovelluksen kaikkien tarvittavien riippuvuuksien kanssa yhteen konttiin, ja tätä teknologiaa kutsutaan konttiteknologiaksi. Oikein käytettynä IT-ammattilaiset ...