Observability and Chaos Engineering for System Calls in Containerized Applications
Chaos engineering is about testing the resilience of systems in production to see if they perform as expected during changing conditions. Container usage is becoming more common and as such applying principles of chaos engineering to their usage is important. In this thesis we investigate something...
Main Author: | |
---|---|
Format: | Others |
Language: | English |
Published: |
KTH, Skolan för elektroteknik och datavetenskap (EECS)
2019
|
Subjects: | |
Online Access: | http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-263093 |
id |
ndltd-UPSALLA1-oai-DiVA.org-kth-263093 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-UPSALLA1-oai-DiVA.org-kth-2630932019-11-19T09:47:48ZObservability and Chaos Engineering for System Calls in Containerized ApplicationsengObserverbarhet och kaosteknik för systemanrop i containerbaserade applikationerSimonsson, JesperKTH, Skolan för elektroteknik och datavetenskap (EECS)2019Computer and Information SciencesData- och informationsvetenskapChaos engineering is about testing the resilience of systems in production to see if they perform as expected during changing conditions. Container usage is becoming more common and as such applying principles of chaos engineering to their usage is important. In this thesis we investigate something that every containerized application uses, system calls and their possible perturbations consisting of the tuple (s, e, d), a system call, error code and delay. The perturbations consist of 9 different system calls, 7 error codes and 3 possible delays. Targets for these perturbations are mainly containerized HTTP-based applications. Included with this is the need for observability and as such monitoring is created for system calls, HTTP and resource based metrics. For this purpose an application called ChaosOrca was developed with support for both monitoring and system call perturbations on containers. We find that for the nine system calls and four applications evaluated the system call perturbations that have an effect on some of the applications were: open, poll, read, readv, select, sendf ile64, write and writev. With the only perturbation able to result in a crash being the perturbation of the select system call with an error code. Furthermore, we find that the metrics collected are enough to reason about the system behavior, where having a network protocol specific metric is useful but not always necessary. Kaosteknik handlar om att testa ett systems robusthet i produktion för att se hur det kan hantera förändrade förhållanden. Containeranvändning är något som blir mer vanligt och att då applicera principerna för kaosteknik kan anses viktigt. I den här uppsatsen undersöker vi något som alla applikationer som kör i containrar använder, systemanrop och dess möjliga störningskombinationer på formatet (s, e, d), ett systemanrop, en felkod och en fördröjning. Störningskombinationerna består av 9 olika systemanrop, 7 felkoder och 3 olika fördröjningar. Mål för dessa störningskombinationer var huvudsakligen HTTPbaserade applikationer. Inkluderat för detta är ett behov för observerbarhet och som följd skapas övervakning av systemanrop, HTTP och systemresurser. För att uppfylla kraven utvecklades en mjukvara kallad ChaosOrca med support för både övervakning och modifiering av systemanrop. Vi kommer fram till att för de nio systemanrop och fyra applikationer som utvärderats så var de som hade en effekt på någon av applikationerna: open, poll, read, readv, select, sendf ile64, write and writev. Den enda systemanropstörning som orsakade en krasch var select med en felkod. Fortsättningsvis finner vi att de mätvärden som samlats in är tillräckliga för att kunna utvärdera applikationernas beteende, där de nätverksprotokoll specifika mätvärdena är givande men inte alltid behövs. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-263093TRITA-EECS-EX ; 2019:538application/pdfinfo:eu-repo/semantics/openAccess |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Computer and Information Sciences Data- och informationsvetenskap |
spellingShingle |
Computer and Information Sciences Data- och informationsvetenskap Simonsson, Jesper Observability and Chaos Engineering for System Calls in Containerized Applications |
description |
Chaos engineering is about testing the resilience of systems in production to see if they perform as expected during changing conditions. Container usage is becoming more common and as such applying principles of chaos engineering to their usage is important. In this thesis we investigate something that every containerized application uses, system calls and their possible perturbations consisting of the tuple (s, e, d), a system call, error code and delay. The perturbations consist of 9 different system calls, 7 error codes and 3 possible delays. Targets for these perturbations are mainly containerized HTTP-based applications. Included with this is the need for observability and as such monitoring is created for system calls, HTTP and resource based metrics. For this purpose an application called ChaosOrca was developed with support for both monitoring and system call perturbations on containers. We find that for the nine system calls and four applications evaluated the system call perturbations that have an effect on some of the applications were: open, poll, read, readv, select, sendf ile64, write and writev. With the only perturbation able to result in a crash being the perturbation of the select system call with an error code. Furthermore, we find that the metrics collected are enough to reason about the system behavior, where having a network protocol specific metric is useful but not always necessary. === Kaosteknik handlar om att testa ett systems robusthet i produktion för att se hur det kan hantera förändrade förhållanden. Containeranvändning är något som blir mer vanligt och att då applicera principerna för kaosteknik kan anses viktigt. I den här uppsatsen undersöker vi något som alla applikationer som kör i containrar använder, systemanrop och dess möjliga störningskombinationer på formatet (s, e, d), ett systemanrop, en felkod och en fördröjning. Störningskombinationerna består av 9 olika systemanrop, 7 felkoder och 3 olika fördröjningar. Mål för dessa störningskombinationer var huvudsakligen HTTPbaserade applikationer. Inkluderat för detta är ett behov för observerbarhet och som följd skapas övervakning av systemanrop, HTTP och systemresurser. För att uppfylla kraven utvecklades en mjukvara kallad ChaosOrca med support för både övervakning och modifiering av systemanrop. Vi kommer fram till att för de nio systemanrop och fyra applikationer som utvärderats så var de som hade en effekt på någon av applikationerna: open, poll, read, readv, select, sendf ile64, write and writev. Den enda systemanropstörning som orsakade en krasch var select med en felkod. Fortsättningsvis finner vi att de mätvärden som samlats in är tillräckliga för att kunna utvärdera applikationernas beteende, där de nätverksprotokoll specifika mätvärdena är givande men inte alltid behövs. |
author |
Simonsson, Jesper |
author_facet |
Simonsson, Jesper |
author_sort |
Simonsson, Jesper |
title |
Observability and Chaos Engineering for System Calls in Containerized Applications |
title_short |
Observability and Chaos Engineering for System Calls in Containerized Applications |
title_full |
Observability and Chaos Engineering for System Calls in Containerized Applications |
title_fullStr |
Observability and Chaos Engineering for System Calls in Containerized Applications |
title_full_unstemmed |
Observability and Chaos Engineering for System Calls in Containerized Applications |
title_sort |
observability and chaos engineering for system calls in containerized applications |
publisher |
KTH, Skolan för elektroteknik och datavetenskap (EECS) |
publishDate |
2019 |
url |
http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-263093 |
work_keys_str_mv |
AT simonssonjesper observabilityandchaosengineeringforsystemcallsincontainerizedapplications AT simonssonjesper observerbarhetochkaosteknikforsystemanropicontainerbaseradeapplikationer |
_version_ |
1719293027395043328 |