Please use this identifier to cite or link to this item: http://hdl.handle.net/10316/24110
Title: Self-healing Techniques for Web-based Applications
Authors: Magalhães, João Paulo 
Orientador: Silva, Luís Moura
Keywords: Self-healing; Autonomic computing; Web applications; Fault tolerance
Issue Date: 26-May-2014
Citation: MAGALHÃES, João Paulo Ferreira de - Self-healing techniques for web-based applications. Coimbra : [s.n.], 2013. Tese de doutoramento. Disponível na WWW: http://hdl.handle.net/10316/24110
Place of publication or event: Coimbra
Abstract: Web-based applications play an important role for the business of many enterprises. Numbers recently published, in the Internet Retailer Magazine, reveal the vibrancy of these businesses: in 2012 the volume of online sales grew about 19% in Latin America reaching $15.42 billion, grew 16% in US reaching $225.54 billion, grew 16% in Europe reaching $302.20 billion and grew 32% in Asia reaching $256.50 billion. Supporting this growth, there exist applications that are becoming increasingly complex in terms of functionalities and management. Such complexity can lead to scenarios of service unavailability or performance loss, damaging the revenue and the company’s reputation. According to Joshua Bixby, the president of Strangeloop Corporation, “one second of performance loss could cost $2.5 million in sales per year for a site that typically earns $100,000 a day”. Likely, “eight out of 10 visitors who have an unsatisfactory experience with a website are unlikely to return. Of these, three will go on to tell others about their poor impression of the site”. In 2001, Paul Horn from IBM, has referred the systems complexity as the major blocking factor affecting the IT industry sectors. According to him, the complexity of systems tends to be so high that they become difficult to maintain and manage. To tackle this problem he proposed the concept of Autonomic Computing (AC). AC is an holistic vision in which systems have autonomous management capabilities. It defines four self-managing attributes: self-configure, self-heal, self-optimize and self-protect. In this Thesis we present a self-healing system for Web applications. Its adoption in Web applications, aims the detection and recovery from anomalies that occur at runtime, in order to maximize the system availability and performance. In this context, we propose a framework called SHõWA. SHõWA is composed by several modules that do the monitoring of the application, analyze the data to detect and pinpoint anomalies and execute the necessary recovery actions. Monitoring is done through a small software agent, implemented by using the Aspect-Oriented Programming (AOP) paradigm. This agent does not require prior knowledge about the application under monitoring or changes to the application source code. To minimize the impact on performance induced by the monitoring process, the agent includes mechanisms that allow it to self-adapt, at runtime, the monitoring frequency and the amount of application calls to intercept. The data analysis is performed by using statistical correlation. It detects changes in the server response time and analyzes if those changes are associated with changes in the workload or are due to a performance anomaly. In presence of performance anomalies, the data analysis pinpoints the causes behind the anomaly. In particular, it observes changes in the system, changes on the application server or changes in the application, and establishes causal relationships between the response time variations and these changes. Upon the detection and anomaly pinpointing, the SHõWA framework selects and executes a recovery procedure (e.g., dynamic provisioning of system resources, downgrade the application, restart services or servers).
In the final part of this Thesis, we present a SHõWA extension, targeted for predicting in advance the occurrence of performance anomalies. The extension combines machine learning and time series analysis to estimate the parameters up to N epochs ahead and classifies the estimates to assess the system state. The prediction of anomaly aims to recover the system before the users are affected by the anomaly. The SHõWA framework was implemented and tested in this work. We highlight the following results: • Using a set of frequent anomalies, we did a comparison between different monitoring systems commonly used in Web-based applications. SHõWA was able to detect 100% of the anomalies we injected and it was the fastest detection technique for 82% of the injected anomalies; • Due to the adoption of self-adaptive monitoring, the SHõWA framework allows the interception of all the application calls without causing a significant performance overhead. According to the results, the server throughput is affected in less than 1% and the response time penalty is inferior to 2 milliseconds per request; • The SHõWA framework is able to distinguish between workload variations and performance anomalies; • The framework did not detect any anomalies when no anomalies were injected into the system. It detected all the performance anomalies we injected and, for all of them, there were users being affected by performance issues; • The performance anomalies were detected and recovered automatically. The recovery process mitigated the impact of the anomalies and without causing any visible error or loss of the work-in-progress; • Considering a Web-based application hosted in a cloud platform, the SHõWA framework has proved to be useful to self-provision the necessary resources (e.g., CPU, number of instances). It has detected workload and resource contention scenarios and has allowed to adjust the computational resources very quickly, reducing the impact of the anomalies on the end-users; • The monitoring, detection, localization and recovery of anomalies is done automatically, reducing to a minimum the need for human intervention. 
 These results, argue in favor of the adoption of SHõWA for production environments. SHõWA contributes to ensure the performance and availability of the service, maximizing the financial returns of the companies that rely on Web-based applications to perform business operations.
As aplicações Web desempenham um papel importante para o negócio de muitas em- presas. Dados recentemente publicados na Internet Retailer Magazine, revelam que em 2012 as vendas online cresceram: 19% na América Latina atingindo 15,42 biliões de dólares; 16% nos EUA atingindo 225,54 biliões de dólares; 16% na Europa atingindo 302,20 biliões de dólares; 32% na Asia atingindo 256,50 biliões de dólares. Por detrás deste crescimento, existem aplicações que são cada vez mais complexas e difíceis de manter. Estes aspetos, se não forem devidamente acautelados, podem levar a situações de indisponibilidade ou a anomalias de performance, afetando o retorno financeiro e a imagem das empresas. De acordo com Joshua Bixby, presidente da Strangeloop Corporation, “um atraso de um segundo no tempo de resposta, pode representar uma perda de 2,5 milhões de dólares por ano, considerando um site que fatura 100 mil dólares por dia”. O próprio afirma que, “oito em cada dez visitantes que tenham uma experiência negativa não voltam e três vão partilhar a sua experiência com outros”. Em 2001, Paul Horn da IBM, referiu-se à complexidade dos sistemas como um dos maiores entraves ao desenvolvimento tecnológico. Segundo o próprio, a complexidade dos sistemas tende a ser tão elevada que estes se tornam difíceis de gerir e manter. Para fazer face a este problema é proposto o conceito de Autonomic Computing (AC). Este conceito é uma visão holística, na qual os sistemas dispõem de capacidades de gestão autónoma. Foram identificadas quatro atributos fundamentais, nas quais o AC deve assentar: self-configure, self-heal, self-optimize e self-protect. Nesta Tese apresentamos um sistema de self-healing para aplicações Web. O self-healing refere-se à capacidade de auto detetar e recuperar de anomalias. A sua adoção em aplicações Web visa a deteção de anomalias que possam ocorrer em tempo de execução e na recuperação automática dessas anomalias. Neste âmbito, propomos um framework denominado de SHõWA. O SHõWA é composto por vários módulos que cooperam entre si, realizando as tarefas de monitorização da aplicação, a análise de dados para a deteção e localização de anomalias e a execução de procedimentos de recuperação. A monitorização é feita através de um agente, implementado segundo o paradigma de Aspect-Oriented Programming (AOP). Este agente não requer conhecimento prévio sobre a aplicação a monitorizar nem alterações no seu código fonte. Ele dispõe de algoritmos que permitem, de forma autónoma, ajustar a frequência de monitorização e o nível de profiling, reduzindo assim o impacto de performance causado pela própria monitorização. A análise de dados é feita através de correlação estatística, e tem como objetivo detetar variações de performance, analisando para o efeito se uma variação é motivada por alterações de workload ou devido a algum tipo de anomalia. Perante uma anomalia de performance, a análise de dados é feita com o intuito de localizar a anomalia, nomeadamente se na sua origem estão alterações ao nível do sistema, do servidor aplicacional ou da própria aplicação, identificando neste caso, os componentes envolvidos na anomalia de performance. Mediante a deteção e localização da anomalia, o framework seleciona e executa um plano de recuperação (p.ex.: redimensionar os recursos do sistema, fazer downgrade da aplicação, fazer restart sos serviços). Na parte final da Tese, apresentamos uma extensão do framework, destinado a prever a ocorrência de anomalias de performance. Esta extensão faz uso de modelos de análise de séries temporais para estimar valores e predizer, através de algoritmos de classificação (machine learning), o estado do sistema em função dessas estimativas. O framework SHõWA foi implementado e testado neste trabalho. Destacam-se os seguintes resultados: • Através de um conjunto de anomalias frequentemente observadas em aplicações Web, fizemos um estudo comparativo utilizando sistemas de monitorização diferentes. O framework SHõWA detetou 100% das anomalias injetadas e em 82% dos casos foi a ferramenta mais rápida a detetar as anomalias; • Com a adoção de mecanismos de monitorização adaptativa e seletiva, o framework SHõWA permite intercetar todos os métodos da aplicação sem afetar severamente a performance do sistema. Os resultados revelam que o throughput é afetado em menos de 1% e o atraso no tempo de resposta é inferior a 2 milissegundos; • O framework SHõWA é capaz de distinguir entre variações de workload e anomalias de performance; • O framework SHõWA não detetou anomalias quando estas não foram injetadas. Ele detetou todas as anomalias de performance injetadas e todas as vezes que detetou existiam utilizadores afetados por atrasos no tempo de resposta; • As anomalias detetadas foram recuperadas de forma automática. O processo de recuperação mitigou o impacto das anomalias sem causar erros ou perdas de trabalho em progresso; • Considerando uma aplicação Web a correr numa infraestrutura em cloud, o framework SHõWA revelou-se útil para redimensionar a infraestrutura e manter um bom nível de serviço. Ele detetou cenários de contenção no workload e de contenção nos recursos do sistema, e permitiu ajustar a infraestutura de forma rápida, reduzindo o impacto das anomalias junto dos utilizadores; • A monitorização, deteção, localização e recuperação de anomalias é feita automaticamente, reduzindo assim a necessidade de intervenção humana. 
Os resultados obtidos favorecem a adoção do framework em aplicações Web de produção. O framework SHõWA contribui para assegurar a performance e disponibilidade das aplicações, maximizando o retorno financeiro para as empresas que utilizam estas aplicações no âmbito do seu negócio.
Description: Tese de doutoramento no Programa de Doutoramento em Ciências e Tecnologias da Informação apresentada à Faculdade de Ciências e Tecnologia da Universidade de Coimbra
URI: http://hdl.handle.net/10316/24110
Rights: openAccess
Appears in Collections:FCTUC Eng.Informática - Teses de Doutoramento

Files in This Item:
File Description SizeFormat
JPM-PhD-Thesis-23092013.pdf8.29 MBAdobe PDFView/Open
Show full item record

Page view(s) 50

305
checked on Jan 21, 2020

Download(s) 50

446
checked on Jan 21, 2020

Google ScholarTM

Check


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.