Analysing learning management system performance

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

Department

Major/Subject

Mcode

SCI3042

Language

en

Pages

53+6

Series

Abstract

Modern internet-scale applications are often broken up into small independently operated services and distributed across millions of computers around the globe in datacenters. In these microservices architectures, the small independent services communicate through a lightweight mechanism, such as an HTTP API. Due to the nature of these types of architectures, traditional observability tools, such as logs, and simple metrics are no longer sufficient at tracking transactions and explaining the full picture of the system. The number of processes involved in every end-user request is simply too large. Distributed tracing is the answer to many of the difficulties caused by the massive increase in complexity that these modern distributed architectures entail. This thesis implements distributed tracing into the A+ learning management system using open-source frameworks, such as OpenTelemetry and Grafana Tempo. The platform has previously suffered from performance issues due to the lack of performance testing tools. This thesis investigates how distributed tracing can be utilized to improve the observability of A+ with the goal of giving more insight into its performance. Performance testing tools were developed to help with analyzing the service performance in different scenarios before rolling out updates to the production environment. The results describe the benefits and limitations of distributed tracing when attempting to analyse the performance of a microservice-based platform such as the A+.

Nykyajan internetin mittakaavassa toimivat sovellukset jaetaan usein pieniksi, itsenäisesti toimiviksi palveluiksi, joita ajetaan ympäri maailmaa miljoonissa datakeskuksissa sijaitsevissa tietokoneissa. Näissä mikropalveluarkkitehtuureissa pienet itsenäiset palvelut kommunikoivat kevyen mekanismin, kuten HTTP-rajapinnan kautta. Tällaisten arkkitehtuurien luonteen vuoksi perinteiset havainnointityökalut, kuten lokit ja yksinkertaiset metriikat, eivät enää riitä seuraamaan tapahtumia ja muodostamaan kuvaa koko järjestelmästä. Palvelupyyntöjen käsittelyyn tarvittavien prosessien määrä on yksinkertaisesti liian suuri. Hajautettu jäljitys on vastaus moniin vaikeuksiin, joita nämä modernit hajautetut arkkitehtuurit tuovat mukanaan. Tämä diplomityö lisää hajautetun jäljityksen A+ -oppimisen hallintajärjestelmään käyttäen avoimen lähdekoodin kehyksiä, kuten OpenTelemetrya ja Grafana Tempoa. Alusta on aiemmin kärsinyt suorituskykyongelmista suorituskyvyn testaustyökalujen puutteen vuoksi. Tämä diplomityö tutkii, miten hajautettua jäljitystä voidaan hyödyntää A+:ssa havainnointikyvyn ja suorituskyvyn ymmärtämisen parantamiseksi. Suorituskyvyn testaustyökaluja kehitettiin auttamaan palvelun suorituskyvyn analysoinnissa ennen kuin päivityksiä tuodaan tuotantoympäristöön. Saadut tulokset tuovat esiin hajautetun jäljityksen hyötyjä ja rajoituksia, kun yritetään analysoida mikropalveluihin perustuvan alustan, kuten A+:n suorituskykyä.

Description

Supervisor

Vuorimaa, Petri

Thesis advisor

Sarolahti, Pasi

Other note

Citation