Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/83550
Title: Online Failure Prediction in Containerized Environments
Other Titles: Previsão de Avarias durante a Execução em Ambientes baseados em Contentores
Authors: Lopes, João Pedro Simões 
Orientador: Antunes, Nuno Manuel dos Santos
Keywords: Contentores; Injeção de falhas de software; Monitorização de variáveis dos contentores; Previsão de avarias durante a execução; Virtualização ao nível do SO; Containers; Monitoring container variables; Online failure prediction; OS-level virtualization; Software fault injection
Issue Date: 12-Sep-2018
Project: info:eu-repo/grantAgreement/EC/H2020/777154/EU 
Serial title, monograph or event: Online Failure Prediction in Containerized Environments
Place of publication or event: DEI-FCTUC
Abstract: A previsão de avarias durante a execução é uma técnica promissora pois prevê a ocorrência de falhas, evitando ou mitigando as suas consequências. Treinar modelos de previsão necessita de dados de falhas, os quais são escassos. A injeção de falhas foi usada para criar esses dados à medida que o sistema evolui e para selecionar uma abordagem de previsão de avarias adequada. Contudo, as abordagens existentes são difíceis de aplicar na prática: os sistemas são complexos com limites indefinidos e os modelos criados são sensíveis às mudanças no sistema. Os contentores prometem isolamento, estabilidade e os limites são definidos pela sua natureza. As aplicações de micro-serviços baseadas em contentores possuem as características para tornar a previsão de avarias durante a execução aplicável. O objetivo deste trabalho é avaliar a viabilidade de usar previsão de avarias durante a execução em aplicações de micro-serviços baseadas em contentores, contribuindo para a sua aplicabilidade neste domínio. Para isso, começámos por analisar alternativas para monitorizar métricas dos contentores. É possível recolher métricas não intrusivamente, embora estas sejam diferentes das usadas em experiências anteriores de previsão de avarias durante a execução. Uma configuração de Docker com diferentes configurações de hardware foi usada para entender quais dessas métricas são relevantes e como elas variam em execuções similares. Em seguida, usámos injeção de falhas para produzir dados de falhas nos contentores, com o fim de treinar. Finalmente, avaliámos a eficácia da abordagem de previsão de avarias escolhida em avarias originadas pelas falhas injetadas. Os resultados mostram que é possível gerar dados de avarias, embora os dados em diferentes configurações divirjam significativamente. Eles também mostram que a abordagem de previsão de falhas não é eficaz quando as configurações e os parâmetros não são cuidadosamente selecionados para o domínio da aplicação.
Online Failure Prediction is very promising, as if it is possible to foresee the occurrence of failures, their consequences can be avoided or mitigated. Training prediction models requires the failure-related data, which is scarce. Fault Injection has been used to create this data as the system evolves and to select an adequate Failure Prediction approach. However, existing approaches are hard to apply in practice: systems are very complex with undefined boundaries, and the models created are very sensitive to changes in the system. Containers promise isolation, stability across executions and boundaries defined by nature. Micro-service applications based in containers have the adequate characteristics to make the Online Failure Prediction applicable. The objective of this work is to assess the feasibility of using Online Failure Prediction in containerized micro-services-based applications, contributing to the applicability of the technique in this domain. For this, we started by analyzing different alternatives to monitor container-related metrics. It is possible to gather several metrics in a non-intrusive way, although these metrics differ from the ones used in past Online Failure Prediction experiments. A Docker setup with different hardware configurations was used to understand which of these metrics are relevant, and how they vary across similar executions in different setups. Next, Fault Injection was used to produce failure data in container's environment, for training purposes. Finally, we evaluated how effective the chosen Failure Prediction approach was in failures originated by the injected faults. The results show that it is possible to generate failure data, although data across different setups diverge significantly. They also show that the failure predictions approach are not effective when the configurations and parameters are not carefully selected for the application domain.
Description: Dissertação de Mestrado em Engenharia Informática apresentada à Faculdade de Ciências e Tecnologia
URI: https://hdl.handle.net/10316/83550
Rights: openAccess
Appears in Collections:UC - Dissertações de Mestrado

Files in This Item:
Show full item record

Page view(s) 50

512
checked on Apr 23, 2024

Download(s) 50

743
checked on Apr 23, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons