A reference architecture for event-driven microservice systems in the public cloud
Loading...
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Author
Date
2019-12-16
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
72
Series
Abstract
The emergence of public cloud computing platforms has had a profound effect on how software is being developed. To take advantage of many of the features of cloud platforms, software architecture of applications must aligned with the characteristics of cloud services. Where systems designed for traditional data center deployments have typically consisted of a single large application and a centralized data store, systems targeting cloud platform have become distributed applications. The microservice architecture is a software architecture style for building distributed systems that consist of autonomous services, each responsible for a single problem domain. Decomposing an application to individual components makes is possible to utilize cloud platform features such as scaling each part of the system according to load and performance. Enterprise applications are the context where the microservice architecture pattern is typically applied. These applications are large, long-lived, in state of constant change and highly integrated to other systems. But building complex enterprise applications as distributed systems poses architectural challenges on how to build a system that is evolvable, maintainable and understandable. This thesis describes patterns for building microservice systems that can scale to a large amount of services while retaining the autonomy the services and the maintainability of the system as a whole. A key factor in these patterns is the use of events for communication between the different components of the system. The thesis then presents a reference architecture on how such a system can be developed by utilizing managed services of a public cloud platform.Lisääntyvä pilvipalveluiden käyttö on vaikuttanut merkittävästi siihen, millaisia sovelluksia kehitetään. Sovelluksen arkkitehtuurin täytyy olla suunniteltu siten, että pilvipalveluiden ominaisuuksia voidaan hyödyntää. Sovellukset, jotka ovat suunniteltu ennen pilvipohjaisia arkkitehtuureja koostuvat tyypillisesti yhdestä suuresta asennettavasta komponentista ja keskitetystä tietovarastosta. Pilvipalveluiden myötä tämän mallin sijaan on ruvettu rakentamaan hajautettuja järjestelmiä. Mikropalveluarkkitehtuuri on ohjelmistoarkkitehtuuri, jossa hajautettu järjestelmä koostetaan yksittäisistä erillisistä palveluista. Jokainen palvelu vastaa järjestelmän tietystä toiminnosta tai osa-alueesta. Arkkitehtuuri, jossa sovellus on pilkottu pieniin autonomisiin komponentteihin mahdollistaa monien pilvipalveluiden ominaisuuksien (kuten kuorman mukaisen skaalauksen) käytn. Monimutkaiset yritysjärjestelmät ovat kenttä, jossa mikropalveluarkkitehtuuria tyypillisesti käytetään. Nämä järjestelmät ovat suuria, jatkuvan muutoksen alaisia ja moninaisin tavoin integroituneita useisiin muihin järjestelmiin. Monimutkaisten yritysjärjestelmien rakentaminen mikropalveluarkkitehtuurilla luo omat haasteensa siinä, miten järjestelmästä saadaan ylläpidettävä, jatkokehityskelpoinen ja ymmärrettävä. Tämä diplomityö kuvaa malleja mikropalvelujärjestelmien rakentamiseen siten, että järjestelmän kasvaessa yksittäiset mikropalvelut pysyvät erillisinä ja autonomisina sekä järjestelmä kokonaisuutena pystyy ylläpidettävänä. Avainrakenne näiden tavoitteiden saavuttamisessa on tapahtumien käyttö tiedon välittämisessä palveluiden välillä. Diplomityössä esitetään sitten viitearkkitehtuuri miten nämä mallit voidaan ottaa käyttöön julkisessa pilvipalvelussa.Description
Supervisor
Di Francesco, MarioThesis advisor
Pulliainen, ErkkiKeywords
software architecture, microservice architecture, distributed systems, cloud computing