Detecting anomalies in microservices using telemetry data: a case study
No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Author
Date
2023-03-21
Department
Major/Subject
Information Networks
Mcode
SCI3047
Degree programme
Master’s Programme in Information Networks
Language
en
Pages
79 + 22
Series
Abstract
Microservices, 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.Ohjelmistojen 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.Description
Supervisor
Lassenius, CasperThesis advisor
Kaila, RuthPiironen, Janne
Keywords
microservices, anomaly detection, telemetry data, machine learning, unsupervised methods