University of Oulu

Modernization of a legacy system : event streaming with Apache Kafka and Spring Boot

Saved in:
Author: Varsala, Teemu1
Organizations: 1University of Oulu, Faculty of Information Technology and Electrical Engineering, Computer Science
Format: ebook
Version: published version
Access: open
Online Access: PDF Full Text (PDF, 0.8 MB)
Pages: 77
Persistent link: http://urn.fi/URN:NBN:fi:oulu-202302161165
Language: English
Published: Oulu : T. Varsala, 2023
Publish Date: 2023-02-16
Thesis type: Master's thesis (tech)
Tutor: Visuri, Aku
Reviewer: Sanchez Milara, Ivan
Visuri, Aku
Description:

Abstract

In this thesis, we will design, implement, and evaluate a brand new replacement, the Watcher, for a legacy system built over two decades ago. The Watcher is able to track changes in our PDM system, and notify users of the changes by email or as a push notifcation using SSE. Functional requirements for the new system come from the legacy system including the possibility to create subscriptions with a wide range of options to flter out redundant data traffc. The Watcher will also be able to carry out all operations than the predecessor with increased performance and effciency. The main focus is on scalability, maintainability, and fault tolerance. The reason for building a new system is mainly the cost of maintainability and further development of the legacy system as well as features removed due to obsolete technologies.

In the literature review, we go through the theory of the technologies related to the project. We create a REST API with Spring Boot for interactions between users and the system, implement powerful event streaming and processing environment using Apache Kafka, and build a message service responsible for providing information via scheduled emails or SSE. In the end, we will use Docker to containerize all the services.

In the project design, we present functional as well as technical requirements that we use later on to evaluate the project’s success. We also compare the legacy system to the new one using metrics such as speed and ease of the installation process. In the end, we discuss the project’s future including steps before going to production such as automatic testing, and further development for years to come such as orchestration.

Legacy-palvelun uudistaminen : reaaliaikajärjestelmä Apache Kafkaa ja Spring Bootia hyödyntäen

Tiivistelmä

Tässä työssä suunnittelemme, toteutamme ja arvioimme uuden järjestelmän, joka tulee korvaamaan yli kaksi vuosikymmentä sitten luodun legacy-järjestelmän. Tämä uusi järjestelmä, ”the Watcher”, kykenee seuraamaan muutoksia meidän PDM järjestelmässämme, ja ilmoittamaan muutoksista käyttäjille sähköpostilla, sekä push-ilmoituksilla. Hyödynnämme tässä työssä toiminnallisia vaatimuksia, jotka ovat määritelty jo vanhalle järjestelmälle. Esimerkiksi tilausten luominen käyttäen useita suodattimia vähentäen samalla tarpeetonta dataliikennettä. ”The Watcher” kykenee suoriutumaan kaikista tehtävistä joista vanha järjestelmäkin, sekä lisäominaisuutena se tarjoaa paremman suorituskyvyn, sekä tehokkuuden. Pääpainona järjestelmässä on skaalautuvuus, ylläpidettävyys ja vikasietoisuus.

Kirjallisuuskatsauksessa käymme läpi projektiin liittyvien teknologioiden teorian. Toteutamme Spring Boot ohjelmointikehyksen avulla REST-rajapinnan, jonka välityksellä käyttäjät voivat kommunikoida järjestelmän kanssa. Rakennamme myös tehokkaan ympäristön datan käsittelyyn ja reaaliaikaiseen viestintään käyttäen Apache Kafkaa. Viimeiseksi luomme viestipalvelun, joka vastaa käyttäjien informoimisesta hyödyntäen SSE:ksi kutsuttua teknologiaa, sekä lähettämällä sähköpostiviestejä käyttäjien toivomana ajankohtana. Lopuksi vielä sijoitamme kaikki palvelut kontteihin Dockerin avulla.

Projektin suunnitteluosiossa esittelemme niin toiminnalliset, kuin teknisetkin vaatimukset, joiden avulla arvioimme myöhemmin projektin onnistumista. Vertaamme myös vanhaa ja uutta järjestelmää käyttäen metriikoita kuten nopeus ja asennusprosessin yksinkertaisuus. Lopussa keskustelemme projektin tulevaisuudesta sisältäen vaiheet jotka tulisi suorittaa ennen kuin järjestelmä voidaan ottaa tuotantokäyttöön kuten automaattinen testaus, sekä toiminnallisuuksien kehitys tulevina vuosina.

see all

Subjects:
Copyright information: © Teemu Varsala, 2023. This publication is copyrighted. You may download, display and print it for your own personal use. Commercial use is prohibited.