Detecting anomalies in microservices using telemetry data: a case study

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorKaila, Ruth
dc.contributor.advisorPiironen, Janne
dc.contributor.authorIlomäki, Risto
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorLassenius, Casper
dc.date.accessioned2023-03-26T17:05:29Z
dc.date.available2023-03-26T17:05:29Z
dc.date.issued2023-03-21
dc.description.abstractMicroservices, small program components specialized for one task, are a common solution in modern software architecture. To keep the software reliable, secure, and fluent, incidents must be detected so that they can be remediated. Incidents are mostly significantly different abnormal activities, i.e., anomalies. Developing a tool for anomaly detection in microservices involves (1) defining the relevant metrics based on which anomalies are detected, (2) creating a model that detects abnormal activities, and (3) evaluating the results and reliability of the model. This thesis approaches the general problem as a case study conducted in Design Science methodology. It aims to develop an anomaly detection tool for a startup operating in SaaS business. To make the detections, the tool applies the unsupervised machine learning models autoencoder and K-means to metrics calculated from telemetry data. The anomaly detection tool is evaluated in qualitative and quantitative methods. The end user of the tool evaluates the accuracy and correctness of the detections. Quantitative approximate accuracy is determined by running models on historical test data. Furthermore, the end user of the tool elaborates on the usability of the tool. The results are promising. K-means was observed to detect more relevant instances and have higher accuracy in detecting past incidents than autoencoder. Most of the detected anomalies are worth remediating, i.e., true positives, and it is understandable why the detection is classified as an anomaly with the help of benchmark values from calculated from the training data. With the help of this tool, the end user can easily monitor, locate and further investigate the anomalies. While the tool is usable only within the specific context, the findings on how to aggregate telemetry data and use it for anomaly detection are scalable to the general level too. The thesis points out relevant metrics and methods with which anomalies can be detected. The anomaly detection tool has its limitations, however. In the unsupervised setting, determining the exact accuracy is infeasible and the fraction of undetected anomalies is not clear. Nonetheless, the tool is a good addition to the company’s software monitoring toolkit.en
dc.description.abstractOhjelmistojen rakentaminen mikropalveluina on yleinen ratkaisu nykyaikaisessa ohjelmistoarkkitehtuurissa. Mikropalvelut ovat pieniä ohjelmia, jotka ovat erikoistuneet yhden tietyn tehtävän suorittamiseen. Jotta ohjelmisto pysyisi luotettavana, turvallisena ja sen käyttö sujuvana, ei-toivotut tapahtumat on havaittava, jotta ne voidaan korjata. Tällaiset tapahtumat ovat enimmäkseen merkittävästi erilaisia, epänormaalia toimintaa, eli poikkeavuuksia. Mikropalveluihin kohdistuvan poikkeamantunnistustyökalun kehittäminen sisältää (1) tunnistuksessa käytettävien relevanttien mittareiden määrittämisen, (2) epänormaalin toiminnan havainnointimallin kehityksen ja (3) mallin tulosten ja luotettavuuden arvioinnin. Tässä työssä yleistä ongelmaa tarkastellaan tapaustutkimuksen lähtökohdista suunnitelutieteen metodologialla. Tutkimuksen tavoite on kehittää poikkeamantunnistustyökalu startup-yritykselle, joka toimii SaaS-liiketoiminnassa. Poikkeamien havaitsemiseen työkalu soveltaa ohjaamattomia koneoppimismalleja autoencoder ja K-means telemetriadatasta laskettuihin mittareihin. Poikkeamantunnistustyökalun arviointi tehdään laadullisella ja määrällisellä tavalla. Työkalun loppukäyttäjä arvioi asiantuntemuksensa perusteella tunnistusten oikeellisuutta. Suurpiirteiset tarkkuudet malleille määritetään ajamalla niitä historiallisella testidatalla. Lisäksi loppukäyttäjä arvioi työkalun käytettävyyttä. Tulokset ovat lupaavia. K-meansin arvioitiin havaitsevan merkityksellisempiä tapauksia kuin autoencoder, ja sillä on parempi tarkkuus menneiden poikkeamien havaitsemisessa. Useimmat havaitut poikkeamat ovat aiheuttaisivat toimenpiteitä, eli ne ovat oikeita tunnistuksia. Koulutusdatasta lasketut vertailuarvot helpottavat ymmärtämään havaintojen luokitteluperusteita. Työkalu helpottaa ohjelmiston valvontaa, poikkeavuuksien paikantamista ja niiden lisätutkimusta sekä korjaamisen aloittamista. Työkalua voidaan käyttää vain tapaustutkimuksen kontekstissa, mutta löydökset telemetriadatan käyttämisestä poikkeamien havaitsemiseen ovat yleistettävissä. Tutkimus osoittaa relevantteja mittareita ja metodeja, joilla anomalioita voidaan tunnistaa. Valvontatyökalulla on kuitenkin rajoituksensa. Tutkimuksen ohjaamattomassa ympäristössä mallien täsmällisten tarkkuuksien määrittäminen on mahdotonta, eikä havaitsemattomien poikkeavuuksien osuus ole selvä. Työkalu on kuitenkin hyvä lisä yrityksen ohjelmiston valvontaan.fi
dc.format.extent79 + 22
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/120231
dc.identifier.urnURN:NBN:fi:aalto-202303262554
dc.language.isoenen
dc.programmeMaster’s Programme in Information Networksfi
dc.programme.majorInformation Networksfi
dc.programme.mcodeSCI3047fi
dc.subject.keywordmicroservicesen
dc.subject.keywordanomaly detectionen
dc.subject.keywordtelemetry dataen
dc.subject.keywordmachine learningen
dc.subject.keywordunsupervised methodsen
dc.titleDetecting anomalies in microservices using telemetry data: a case studyen
dc.titlePoikkeamien tunnistus mikropalvelun telemetriadatalla: tapaustutkimusfi
dc.typeG2 Pro gradu, diplomityöfi
dc.type.ontasotMaster's thesisen
dc.type.ontasotDiplomityöfi
local.aalto.electroniconlyyes
local.aalto.openaccessno
Files