IoT (Internet of Things) systems implement event-driven architectures that are deployed on an ever-increasing scale as more and more devices (things) become connected to the internet. Consequently, IoT cloud platforms are becoming increasingly distributed and complex as they adapt to handle larger amounts of user requests and device data. The complexity of such systems makes it close to impossible to predict how they will handle failures that inevitably occur once they are put into production. Chaos engineering, the practice of deliberately injecting faults in production, has successfully been used by many software companies as a means to build confidence in that their complex systems are reliable for the end-users. Nevertheless, its applications in the scope of IoT systems remain largely unexplored in research. Modern IoT cloud platforms are built cloud native with containerized microservices, container orchestration, and other cloud native technologies, much like any other distributed cloud computing system. We therefore investigate cloud native chaos engineering technology and its applications in IoT cloud platforms. We also introduce a framework for getting started with using cloud native chaos engineering to verify and improve the resilience of IoT systems and evaluate it through a case study at a commercial home appliance manufacturer. The evaluation successfully reveals unknown system behavior and results in the discovery of potential resilience improvements for the case study IoT system. The evaluation also shows three ways to measure the resilience of IoT cloud platforms with respect to perturbations, these are: (1) success rate of user requests, (2) system health, and (3) event traffic. / IoT(Sakernas Internet)-system implementerar händelsedrivna arkitekturer som driftsätts i allt större skala i och med att allt fler enheter (saker) blir anslutna till internet. IoT-molnplattformar blir därmed alltmer distribuerade och komplexa i takt med att de anpassas till att hantera större mängder användarförfrågningar och enhetsdata. Komplexiteten hos sådana system gör det nära omöjligt att förutsäga hur de hanterar problem som oundvikligen inträffar när de väl körs i produktionsmiljö. Kaosteknik, att avsiktligt injicera fel medans ett system körs i produktionsmiljön, har framgångsrikt använts av många mjukvaruföretag som ett sätt att bygga förtroende för att deras komplexa system är tillförlitliga för slutanvändarna. Trots det är dess tillämpningar inom ramen för IoT-system i stort sett outforskade inom dataforskning. Moderna IoT-molnplattformar byggs molnäkta med containeriserade mikrotjänster, containerorkestering, och andra molnäkta teknologier, precis som andra distribuerade molntjänstsystem. Vi undersöker därför molnäkta kaosteknik och dess tillämpningar i IoT-molnplattformar. Vi introducerar även ett ramverk för att komma igång med att använda molnäkta kaosteknik för att verifiera och förbättra motståndskraften hos IoT-system och utvärderar det genom en fallstudie hos en kommersiell tillverkare av hushållsapparater. Utvärderingen lyckas avslöja okänt systembeteende och resulterar i upptäckten av potentiella motståndskraftsförbättringar för IoT-systemet i fallstudien. Utvärderingen visar också tre sätt att mäta motståndskraften hos IoT-molnplattformar med hänsyn till störningar, dessa är: (1) andel framgångsrika användarförfrågningar, (2) systemhälsa och (3) händelsetrafik.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-305677 |
Date | January 2021 |
Creators | Björnberg, Adam |
Publisher | KTH, Skolan för elektroteknik och datavetenskap (EECS) |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | TRITA-EECS-EX ; 2021:767 |
Page generated in 0.0019 seconds