Moving away from monolithic architecture design and implementation

Many applications are using server-side architecture monolithically as it is the easiest way to make a minimum viable product. However, along with the user size grow, some performance issue may arise that cannot be easily resolved with the limited scalability. Monolith also slows down the developmen...

Full description

Bibliographic Details
Main Author: Liu, Yanjun
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:eng
Published: 2020
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/69373
_version_ 1826225685741436928
author Liu, Yanjun
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Liu, Yanjun Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Liu, Yanjun Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Liu, Yanjun
datasource_str_mv jyx
description Many applications are using server-side architecture monolithically as it is the easiest way to make a minimum viable product. However, along with the user size grow, some performance issue may arise that cannot be easily resolved with the limited scalability. Monolith also slows down the development due to many developers working on the same codebase. Microservices has been a hot topic during the last decade. It is an architecture that brings the benefits of agility, high scalability, availability, observability, independent deployability to the system. Nevertheless, the main challenge is how to adopt microservice architectures into an existing monolithic application. The key idea in this paper is to analyse different architecture design patterns in order to migrate to microservices architecture incrementally. For this purpose, the paper includes an introduction of different application architectures, different microservices design patterns with a real-world example. As a result, demonstrate the tools and patterns that have been selected for transformation planning. None of the architecture is a silver bullet for every problem. It is vital to design an architecture that fits the specific use case.
first_indexed 2020-06-02T20:05:05Z
format Pro gradu
fullrecord [{"key": "dc.contributor.advisor", "value": "Khriyenko, Oleksiy", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.advisor", "value": "Terziyan, Vagan", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Liu, Yanjun", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2020-06-02T06:18:08Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2020-06-02T06:18:08Z", "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/69373", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Many applications are using server-side architecture monolithically as it is the easiest way to make a minimum viable product. However, along with the user size grow, some performance issue may arise that cannot be easily resolved with the limited scalability. Monolith also slows down the development due to many developers working on the same codebase. Microservices has been a hot topic during the last decade. It is an architecture that brings the benefits of agility, high scalability, availability, observability, independent deployability to the system. Nevertheless, the main challenge is how to adopt microservice architectures into an existing monolithic application. The key idea in this paper is to analyse different architecture design patterns in order to migrate to microservices architecture incrementally. For this purpose, the paper includes an introduction of different application architectures, different microservices design patterns with a real-world example. As a result, demonstrate the tools and patterns that have been selected for transformation planning. None of the architecture is a silver bullet for every problem. It is vital to design an architecture that fits the specific use case.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2020-06-02T06:18:08Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2020-06-02T06:18:08Z (GMT). No. of bitstreams: 0\n Previous issue date: 2020", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "71", "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": "eng", "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": "microservices", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "monolithic web application", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "application architecture", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "design patterns", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Moving away from monolithic architecture : design and implementation", "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-202006023631", "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": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.collaborator", "value": "business", "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": "restrictedAccess", "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": "602", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "verkkopalvelut", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietotekniikka-arkkitehtuuri", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "online services", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "information technology architecture", "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.rights.accessrights", "value": "The author has not given permission to make the work publicly available electronically. Therefore the material can be read only at the archival workstation at Jyv\u00e4skyl\u00e4 University Library (https://kirjasto.jyu.fi/en/workspaces/facilities).", "language": "en", "element": "rights", "qualifier": "accessrights", "schema": "dc"}, {"key": "dc.rights.accessrights", "value": "Tekij\u00e4 ei ole antanut lupaa avoimeen julkaisuun, joten aineisto on luettavissa vain Jyv\u00e4skyl\u00e4n yliopiston kirjaston arkistoty\u00f6semalta. Ks. https://kirjasto.jyu.fi/fi/tyoskentelytilat/laitteet-ja-tilat..", "language": "fi", "element": "rights", "qualifier": "accessrights", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_69373
language eng
last_indexed 2025-02-18T10:55:34Z
main_date 2020-01-01T00:00:00Z
main_date_str 2020
publishDate 2020
record_format qdc
source_str_mv jyx
spellingShingle Liu, Yanjun Moving away from monolithic architecture : design and implementation microservices monolithic web application application architecture design patterns Tietotekniikka Mathematical Information Technology 602 verkkopalvelut tietotekniikka-arkkitehtuuri online services information technology architecture
title Moving away from monolithic architecture : design and implementation
title_full Moving away from monolithic architecture : design and implementation
title_fullStr Moving away from monolithic architecture : design and implementation Moving away from monolithic architecture : design and implementation
title_full_unstemmed Moving away from monolithic architecture : design and implementation Moving away from monolithic architecture : design and implementation
title_short Moving away from monolithic architecture
title_sort moving away from monolithic architecture design and implementation
title_sub design and implementation
title_txtP Moving away from monolithic architecture : design and implementation
topic microservices monolithic web application application architecture design patterns Tietotekniikka Mathematical Information Technology 602 verkkopalvelut tietotekniikka-arkkitehtuuri online services information technology architecture
topic_facet 602 Mathematical Information Technology Tietotekniikka application architecture design patterns information technology architecture microservices monolithic web application online services tietotekniikka-arkkitehtuuri verkkopalvelut
url https://jyx.jyu.fi/handle/123456789/69373 http://www.urn.fi/URN:NBN:fi:jyu-202006023631
work_keys_str_mv AT liuyanjun movingawayfrommonolithicarchitecturedesignandimplementation