Você está na página 1de 152

UNIVERSIDADE FEDERAL DO CEAR

DEPARTAMENTO DE COMPUTAO
CURSO DE CINCIA DA COMPUTAO

EMANUEL FERREIRA COUTINHO

FOLE: UM FRAMEWORK CONCEITUAL PARA AVALIAO DE


DESEMPENHO DA ELASTICIDADE EM AMBIENTES DE
COMPUTAO EM NUVEM

FORTALEZA, CEAR
2014

EMANUEL FERREIRA COUTINHO

FOLE: UM FRAMEWORK CONCEITUAL PARA AVALIAO DE


DESEMPENHO DA ELASTICIDADE EM AMBIENTES DE
COMPUTAO EM NUVEM
Tese submetida Coordenao do Curso de
Ps-Graduao em Cincia da Computao da
Universidade Federal do Cear, como requisito
parcial para a obteno do grau de Doutor em
Cincia da Computao.

rea de Concentrao: Redes de Computadores

Orientador: Prof. Dr. Jos Neuman de Souza

Co-Orientador: Prof. Dr. Danielo Gonalves


Gomes

FORTALEZA, CEAR
2014

A000z

COUTINHO, E. F..
FOLE: Um Framework Conceitual para Avaliao de
Desempenho da Elasticidade em Ambientes de Computao em Nuvem / Emanuel Ferreira Coutinho. 2014.
151p.;il. color. enc.
Orientador: Prof. Dr. Jos Neuman de Souza
Co-Orientador: Prof. Dr. Danielo Gonalves Gomes
Tese(Cincia da Computao) - Universidade Federal do Cear, Departamento de Computao, Fortaleza, 2014.
1. Computao em Nuvem 2. Elasticidade 3. Anlise de
Desempenho I. Prof. Dr. Jos Neuman de Souza(Orient.) II. Universidade Federal do Cear Cincia da Computao(Doutorado)
III. Doutor
CDD:000.0

Aos meus pais Milton e Inz, minha


esposa Carla Ilane, e meu filho Lucas.

AGRADECIMENTOS

Agradeo primeiramente a Deus pela oportunidade da vida.


Agradeo a meu pai Milton e minha me Inz, pois sem eles no seria nada. Sem
sombra de dvida sou o que sou devido a eles.
Obrigado a minha esposa Carla Ilane e meu filho Lucas por terem pacincia comigo
durante todo esse perodo da minha vida. Espero que eu tambm tenha muita pacincia com
vocs.
Agradeo ao meu orientador Jos Neuman e co-orientador Danielo pela orientao
e apoio durante essa etapa de minha vida.
E finalmente, agradeo pela ajuda, dicas, dvidas, apoio, patrocnios, viagens, revises de artigos e publicaes a todos os amigos e colegas da UFC: Instituto Universidade
Virtual, MDCC, GREat, Ibituruna e UFC Quixad.

RESUMO

Atualmente muitos clientes e provedores esto utilizando recursos de ambientes de Computao


em Nuvem, tais como processamento e armazenamento, para suas aplicaes e servios. Devido
facilidade de utilizao, baseada no modelo de pagamento por uso, natural que a quantidade
de usurios e suas respectivas cargas de trabalho tambm cresam. Como consequncia, os provedores devem ampliar seus recursos e manter o nvel de qualidade acordado com os clientes,
sob pena de quebras do Service Level Agreement (SLA) e consequentes multas. Com o aumento
na utilizao de recursos computacionais, uma das caractersticas principais da Computao em
Nuvem tem se tornado bastante atrativa: a elasticidade. A elasticidade pode ser definida como o
quanto uma nuvem computacional se adapta a variaes na sua carga de trabalho atravs do provisionamento e desprovisionamento de recursos. Devido pouca disponibilidade de informao
em relao configurao dos experimentos, em geral no trivial implementar conceitos de
elasticidade, muito menos aplic-los em ambientes de nuvens computacionais. Alm disso, a
maneira de se medir a elasticidade no to bvia, e bastante variada, no havendo ainda uma
padronizao para esta tarefa, e sua avaliao pode ser executada de diferentes maneiras devido
s diversas tecnologias e estratgias para o provimento da elasticidade. Um aspecto comum na
avaliao de desempenho da elasticidade a utilizao de recursos do ambiente, como CPU e
memria, e mesmo sem ter uma mtrica especfica para a elasticidade, possvel se obter uma
avaliao indireta. Nesse contexto, este trabalho prope o FOLE, um framework conceitual para
a realizao de anlise de desempenho da elasticidade em nuvens computacionais de maneira
sistemtica, flexvel e reproduzvel. Para apoiar o framework, mtricas especficas para a elasticidade e mtricas para sua medio indireta foram propostas. Para a medio da elasticidade
em Computao em Nuvem, propomos mtricas baseadas em conceitos da Fsica, como tenso
e estresse, e da Microeconomia, como Elasticidade do Preo da Demanda. Adicionalmente,
mtricas baseadas em tempos de operaes de alocao e desalocao de recursos, e na utilizao desses recursos foram propostas para apoiar a medio da elasticidade. Para verificao
e validao da proposta, dois estudos de caso foram realizados, um em uma nuvem privada
e outro em uma nuvem hbrida, com experimentos projetados utilizando microbenchmarks e
uma aplicao cientfica clssica, executados sobre uma infraestrutura baseada em conceitos de
Computao Autonmica. Por meio desses experimentos, o FOLE foi validado em suas atividades, permitindo a sistematizao de uma anlise de desempenho da elasticidade. Os resultados
mostram que possvel avaliar a elasticidade de um ambiente de Computao em Nuvem por
meio de mtricas especficas baseadas em conceitos de outras reas de conhecimento, e tambm complementada por mtricas relacionadas a tempos de operaes e recursos de maneira
satisfatria.
Palavras-chave: Computao em Nuvem. Elasticidade. Anlise de Desempenho. Metodologia.

ABSTRACT

Currently, many customers and providers are using resources of Cloud Computing environments, such as processing and storage, for their applications and services. Through ease of use,
based on the pay per use model, it is natural that the number of users and their workloads also
grow. As a result, providers should expand their resources and maintain the agreed level of
quality for customers, otherwise breaks the Service Level Agreement (SLA) and the resulting
penalties. With the increase in computational resources usage, a key feature of Cloud Computing has become quite attractive: the elasticity. Elasticity can be defined as how a computational
cloud adapts to variations in its workload through resources provisioning and deprovisioning.
Due to limited availability of information regarding configuration of the experiments, in general is not trivial to implement elasticity concepts, much less apply them in cloud environments.
Furthermore, the way of measuring cloud elasticity is not obvious, and there is not yet a standard for this task. Moreover, its evaluation could be performed in different ways due to many
technologies and strategies for providing cloud elasticity. A common aspect of elasticity performance analysis is the use of environmental resources, such as CPU and memory, and even
without a specific metric, to allow an indirectly assess of elasticity. In this context, this work
proposes FOLE, a conceptual framework for conducting performance analysis of elasticity in
Cloud Computing environments in a systematic, flexible and reproducible way. To support the
framework, we proposed a set of specific metrics for elasticity and metrics for its indirect measurement. For the measurement of elasticity in Cloud Computing, we proposed metrics based on
concepts of Physics, such as strain and stress, and Microeconomics, such as Price Elasticity of
Demand. Additionally, we also proposed metrics based on resources allocation and deallocation
operation times, and used resources, to support the measurement of elasticity. For verification
and validation of the proposal, we performed two experiments, one in a private cloud and other
in a hybrid cloud, using microbenchmarks and a classic scientific application, through a designed infrastructure based on concepts of Autonomic Computing. Through these experiments,
FOLE had validated their activities, allowing the systematization of a elasticity performance
analysis. The results show it is possible to assess the elasticity of a Cloud Computing environment using specific metrics based on other areas of knowledge, and also complemented by
metrics related to time and resources operations satisfactorily.
Keywords: Cloud Computing. Elasticity. Performance Analysis. Methodology.

LISTA DE FIGURAS

Figura 2.1 Ambiente de Computao em Nuvem

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Figura 2.2 Modelo de servio da Computao em Nuvem (baseado em (VERDI et al.,


2010)). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figura 2.3 Modelos de implantao da Computao em Nuvem.

. . . . . . . . . . . . . . . . . . . . . 31

Figura 2.4 Modelo genrico de um processo ou sistema. Fonte: Adaptado de Montgomery


(2009). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 2.5 Estrutura de um elemento autonmico. Fonte: (KEPHART; CHESS, 2003)
Figura 2.6 Detalhes funcionais de um gerente autonmico. Fonte: (IBM, 2005)

. 37

. . . . . . . 39

Figura 3.1 Fluxo do protocolo da reviso. Fonte: Adaptado de Kitchenham (2004).

. . . 41

Figura 3.2 Publicaes sobre elasticidade em Computao em Nuvem de 2009 a 2013 por
pas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 3.3 Classificao de solues e estratgias de elasticidade

. . . . . . . . . . . . . . . . . . . . 58

Figura 4.1 Representao das mtricas propostas para a anlise da elasticidade em nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Figura 4.2 Grfico da elasticidade para as mtricas propostas para avaliao da utilizao
e necessidade de recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Figura 4.3 Grfico da elasticidade para as mtricas propostas para avaliao de estados de
alocao e desalocao de recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Figura 5.1 Exemplos de acordeo (a) e de um fole (b).
Figura 5.2 Fluxo de atividades do framework FOLE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Figura 5.3 Arquitetura autonmica genrica para elasticidade em Computao em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90


Figura 5.4 Arquitetura autonmica para elasticidade em Computao em Nuvem com a
utilizao de nuvens privadas e pblicas (nuvem hbrida) . . . . . . . . . . . . . . . . . 91
Figura 5.5 Tela tpica para uma anlise de desempenho com a mdia de utilizao de CPU
de todas as mquinas virtuais, a alocao conforme os limiares definidos na
infraestrutura, as mtricas de elasticidade e o tempo de resposta das requisies
de um experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Figura 6.1 Arquitetura e ambiente experimental para o experimento com nuvem privada

98

Figura 6.2 Representao da carga de trabalho aplicada ao experimento com nuvem privada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Figura 6.3 Tempo de resposta das requisies para cada uma das quatro mquinas virtuais (milissegundos), utilizao mdia de CPU (%) e alocao/desalocao das
mquinas virtuais para o Experimento 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Figura 6.4 Tempo de resposta das requisies para cada uma das quatro mquinas virtuais (milissegundos), utilizao mdia de CPU (%) e alocao/desalocao das
mquinas virtuais para o Experimento 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Figura 6.5 Experimento 1 - Microbenchmark: Estresse da Qualidade na Nuvem (SQN ),
Tenso dos Recursos Demandados (TRD ), Tenso dos Recursos Alocados (TRA ),
Elasticidade dos Recursos Demandados (ERDi ) e Elasticidade dos Recursos
Alocados (ERAi ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Figura 6.6 Experimento 2 - Blast: Estresse da Qualidade na Nuvem (SQN ), Tenso dos
Recursos Demandados (TRD ), Tenso dos Recursos Alocados (TRA ), Elasticidade dos Recursos Demandados (ERDi ) e Elasticidade dos Recursos Alocados
(ERAi ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Figura 6.7 Elasticidade dos Recursos Demandados (EDi ) para os Experimentos 1 e 2
Figura 6.8 Relao custo/benefcio da elasticidade para os dois experimentos.

. . 106

. . . . . . . . 109

Figura 6.9 Grficos sobrepostos da elasticidade para o Experimento 1 - Microbenchmark.


Figura 6.10 Grficos sobrepostos da elasticidade para o Experimento 2 - Blast.

110

. . . . . . . . . 111

Figura 6.11 Grfico de bolhas para os dois experimentos indicando mquinas virtuais alocadas por mquinas virtuais demandadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Figura 6.12 Arquitetura e ambiente experimental

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Figura 6.13 Representao da carga de trabalho aplicada ao Experimento 2 com nuvem


hbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Figura 6.14 Representao da carga de trabalho aplicada ao Experimento 3 com nuvem
hbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Figura 6.15 Mdia de utilizao de CPU, alocao das mquinas virtuais, mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e tempo de resposta das requisies para o Experimento 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Figura 6.16 Mdia de utilizao de CPU, alocao das mquinas virtuais, mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e tempo de resposta das requisies para o Experimento 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Figura 6.17 Mdia de utilizao de CPU, alocao das mquinas virtuais, mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e tempo de resposta das requisies para o Experimento 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Figura 6.18 Boxplot gerado para os trs experimentos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Figura B.1 Tela com o consumo de CPU de um experimento individual por mquina virtual
e com todas as mquinas virtuais em paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Figura B.2 Tela com o consumo de memria de um experimento individual por mquina
virtual e com todas as mquinas virtuais em paralelo . . . . . . . . . . . . . . . . . . . . . 148
Figura B.3 Tela com a leitura e escrita em disco de um experimento individual por mquina
virtual e com todas as mquinas virtuais em paralelo . . . . . . . . . . . . . . . . . . . . . 149

Figura B.4 Tela com pacotes enviados e pacotes recebidos de um experimento individual
por mquina virtual e com todas as mquinas virtuais em paralelo . . . . . . . . . 149
Figura B.5 Tela com tempo de resposta de um experimento individual por mquina virtual
e com todas as mquinas virtuais em paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Figura B.6 Tela com a mdia de utilizao de CPU de todas as mquinas virtuais e a alocao das mquinas virtuais de um experimento . . . . . . . . . . . . . . . . . . . . . . . . . 150
Figura B.7 Tela com as mtricas de elasticidade de um experimento

. . . . . . . . . . . . . . . . . . 151

Figura B.8 Tela tpica para uma anlise de desempenho com a mdia de utilizao de CPU
de todas as mquinas virtuais, a alocao conforme os limiares definidos na
infraestrutura, as mtricas de elasticidade e o tempo de resposta das requisies
de um experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

LISTA DE TABELAS

Tabela 1.1 Publicaes diretamente relacionadas tese


Tabela 1.2 Publicaes indiretamente relacionadas tese
Tabela 2.1 Funes internas de um gerente autonmico

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
. . . . . . . . . . . . . . . . . . . . . . . . . . . 25
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Tabela 3.1 Definies de elasticidade identificadas durante a reviso

. . . . . . . . . . . . . . . . . 45

Tabela 3.2 Quantidade de trabalhos publicados por ano de publicao

. . . . . . . . . . . . . . . . 45

Tabela 3.3 Tipos de experimentos identificados nas publicaes

. . . . . . . . . . . . . . . . . . . . . 49

Tabela 3.4 Principais ferramentas identificadas para provisionamento de servios na nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50


Tabela 3.5 Benchmarks e cargas de trabalho identificadas

. . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Tabela 3.6 Traos computacionais identificados

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Tabela 3.7 Mtricas especficas para elasticidade

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Tabela 3.8 Comparao entre trabalhos relacionados de benchmarks, frameworks e testbeds. Tcnica (Tec.): Medio (M), Simulao (S) e Modelagem Analtica
(MA); Metodologia (Met.) e Projeto de Experimentos (Proj.): Detalhado (D),
Parcial (P) e Ausente (A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Tabela 3.9 Comparao entre trabalhos relacionados de mtricas para elasticidade. Experimento (Exp.): Medio (M), Simulao (S), Modelagem Analtica (MA), No
possui experimentos (N); Tipo da Mtrica (Tipo): Especfica para elasticidade
(E), Indireta (I), No props mtrica (N) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Tabela 4.1 Mtricas propostas orientadas a tempos de operaes e a recursos alocados

. 71

Tabela 4.2 Lista de variveis e nomenclatura para mtricas baseadas em conceitos da F-

sica

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Tabela 4.3 Lista de variveis e nomenclatura para mtricas baseadas em Microeconomia


Tabela 5.1 Estrutura dos arquivos de log lidos pela ferramenta
Tabela 5.2 Mtricas disponibilizadas pela ferramenta

75

. . . . . . . . . . . . . . . . . . . . . . . 94

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Tabela 6.1 Critrios para avaliao de desempenho para os experimentos


Tabela 6.2 Mtricas coletadas para os Experimentos 1 e 2

. . . . . . . . . . . . . 99

. . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Tabela 6.3 Critrios para avaliao de desempenho para os experimentos

. . . . . . . . . . . . . 117

Tabela 6.4 Resultados das mtricas de elasticidade e valores estatsticos para os trs experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Tabela 6.5 Mtricas orientadas a tempos de operaes de alocao e desalocao de recursos, orientadas a utilizao de recursos, e calculadas da literatura para os trs
experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Tabela A.1 Lista de variveis e nomenclatura para mtricas complementares baseadas em
tempos de alocao de recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Tabela A.2 Lista de variveis e nomenclatura para mtricas complementares baseadas em
quantidade de recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

LISTA DE SIGLAS

ACM
API
ARIMA
CSV
GB
HPC
IaaS
IEEE
IoT
IP
KB
MAPE
MB
MPI
MTC
NIST
PaaS
QoS
QP
QS
SaaS
SD
ssh
SLA
SVR
TAE
TASo
TASu
TAT
TI
TRAE
TRASu
TRASo
URL
VCPU
XML

ACM Digital Library


Application Programming Interface
Auto Regressive Integrated Moving-Average
Comma-separated values
Gbytes
High Performance Computing - Computao de Alto Desempenho
Infrastructure as a Service - Infraestrutura como um Servio
IEEExplore
Internet of Things
Internet Protocol
Kbytes
Monitor-Analyze-Plan-Execute
Mbytes
Message Passing Interface
Many-Task Computing
National Institute of Standards and Technology
Platform as a Service - Plataforma como um Servio
Quality of Service - Qualidade de Servio
Questo de Pesquisa
Questo Secundria
Software as a Service - Software como um Servio
ScienceDirect
Secure Shell
Service Level Agreement - Acordo de Nvel de Servio
Support Vector Regression
Tempo de Alocao Estabilizada
Tempo de Alocao Sobreprovisionada
Tempo de Alocao Subprovisionada
Tempo de Alocao Transitria
Tecnologia da Informao
Total de Recursos Alocados Estabilizados
Total de Recursos Alocados Subprovisionados
Total de Recursos Alocados Sobreprovisionados
Uniform Resource Locator - Localizador Padro de Recursos
Virtual CPU - CPU Virtual
eXtensible Markup Language

SUMRIO

INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.1

Contextualizao e Caracterizao do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.2

Hiptese e Questes de Partida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.3

Objetivos e Metas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.4

Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.5

Escopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.6

Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.7

Organizao do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

REFERENCIAL TERICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1

Computao em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.1

Caractersticas Essenciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.1.2

Modelos de Servios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1.3

Modelos de Implantao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.2

Anlise de Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.3

Computao Autonmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.1

Comportamento dos Elementos Autonmicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.3.2

Polticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.3.3

Elementos do Auto Gerenciamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.3.4

Consideraes Arquiteturais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1

Adaptao da Reviso Sistemtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.1

Atividade 1: Planejamento da Reviso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.2

Atividade 2: Conduo da Reviso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.1.3

Atividade 3: Resultado da Reviso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.2

Viso Geral dos Estudos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.3

Resultados das Questes de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.3.1

Questo Secundria 1 (QS1): Como est sendo realizada anlise de desempenho


para elasticidade em ambientes de Computao em Nuvem? . . . . . . . . . . . . . . . . . . . 48

3.3.2

Questo Secundria 2 (QS2): Quais ferramentas, benchmarks e cargas de trabalho so utilizados para avaliar a elasticidade de ambientes de Computao em
Nuvem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.3.3

Questo Secundria 3 (QS3): Quais mtricas so mais utilizadas para avaliar a


elasticidade de ambientes de Computao em Nuvem? . . . . . . . . . . . . . . . . . . . . . . . . 53

3.3.4

Questo Secundria 4 (QS4): Quais so as tendncias de pesquisa em Computao em Nuvem do ponto de vista de elasticidade? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.3.5

Questo Secundria 5 (QS5): Quais so as estratgias adotadas no provimento da


elasticidade em Computao em Nuvem? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.4

Ambientes, Metodologias e Mtricas Especficos para Elasticidade . . . . . . . . . . 63

MTRICAS PARA ELASTICIDADE EM NUVENS COMPUTACIONAIS . . 68

4.1

Mtricas Orientadas a Tempos de Alocao e Utilizao de Recursos . . . . . . . . 68

4.2

Mtricas Orientadas a Fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4.3

Mtricas Orientadas a Microeconomia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

4.4

Interpretao das Mtricas para Elasticidade em Nuvens Computacionais . . . 76

4.5

Benefcios da Utilizao das Mtricas de Elasticidade . . . . . . . . . . . . . . . . . . . . . . 78

FRAMEWORK CONCEITUAL FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.1

Elasticidade em Computao em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2

O Framework Conceitual FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3

Descrio das Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.4

Aplicao do FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.5

Suporte Ferramental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.5.1

Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.5.2

Ferramenta para Visualizao Grfica dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

EXPERIMENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1

Experimento - Nuvem Privada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1.1

Material e Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1.2

Carga de Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.1.3

Projeto do Experimento - Instanciao do FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

6.1.4

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

6.1.5

Mtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.1.6

Discusso dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

6.2

Experimento - Nuvem Hbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

6.2.1

Material e Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

6.2.2

Carga de Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

6.2.3

Projeto do Experimento - Instanciao do FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

6.2.4

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

6.2.5

Discusso do Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

CONSIDERAES FINAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

7.1

Resultados Alcanados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

7.2

Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.2.1

Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.2.2

Mtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7.2.3

Framework FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.2.4

Arquiteturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.2.5

Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

REFERNCIAS BIBLIOGRFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134


APNDICE A -- MTRICAS COMPLEMENTARES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
APNDICE B -- FERRAMENTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

18

INTRODUO

Este documento apresenta um estudo sobre elasticidade em Computao em Nuvem. Aspectos motivacionais, metodolgicos e estruturais esto descritos nesta introduo. Na
Seo 1.1 deste captulo o problema contextualizado e caracterizado. A hiptese e as questes de partida que nortearam o desenvolvimento deste trabalho so apresentadas na Seo 1.2.
Na Seo 1.3, os objetivos e as principais metas deste trabalho so elencados. Em seguida, na
Seo 1.4, a metodologia utilizada para a elaborao deste trabalho descrita. O escopo do trabalho descrito na Seo 1.5. A Seo 1.6 apresenta as principais contribuies deste trabalho
e publicaes relacionadas. Por fim, a Seo 1.7 encerra o captulo apresentando a estrutura do
restante deste documento.
1.1

Contextualizao e Caracterizao do Problema

Com o aumento no acesso aos ambientes computacionais em nuvem e sua facilidade


de utilizao, baseada no modelo de pagamento por uso, natural que a quantidade de usurios
e as respectivas cargas de trabalho tambm cresam. Como consequncia, os provedores devem
ampliar seus recursos e manter o nvel de qualidade acordado com os clientes, sob pena de
quebras do Service Level Agreement (SLA) e decorrentes multas.
Atualmente, muitos clientes e provedores esto utilizando recursos de ambientes
de Computao em Nuvem, tais como processamento e armazenamento, para a execuo de
suas aplicaes e disponibilizao de servios. Com o aumento na utilizao dos recursos, uma
das caractersticas principais da Computao em Nuvem tem se tornado bastante atrativa: a
elasticidade.
O monitoramento de recursos computacionais, como CPU, memria e largura de
banda, se torna essencial tanto para os provedores, os quais disponibilizam os servios, quanto
para seus clientes. Uma maneira de se avaliar um ambiente monitorando algum aspecto,
como utilizao de recursos. Muitas vezes a elasticidade est associada a algum recurso do
provedor. Na Amazon EC2, por exemplo, o cliente pode estar utilizando uma instncia com
poucos recursos, e em caso de necessidade de recursos, monitorado atravs servio de monitoramento (Cloud Watch), o servio de escalonamento (Auto Scaling) pode acionar que o servio
de balanceamento de carga (Elastic Load Balance) incremente a quantidade de instncias.
Uma maneira de monitorar aplicaes em nuvem de modo mais efetivo utilizar
mecanismos de Computao Autonmica, atravs dos quais recursos so adicionados e removidos do ambiente conforme limiares de uso pr-estabelecidos (KEPHART; CHESS, 2003). Um
sistema autnomo ou autonmico composto por um conjunto de elementos autnomos. Um
elemento autnomo um componente responsvel pela gesto do seu prprio comportamento
em conformidade com polticas, e por interagir com outros elementos autnomos que fornecem
ou consomem servios computacionais (KEPHART; CHESS, 2003). Mecanismos de Computao Autonmica, como loops de controle e regras, podem ser empregados no monitoramento
de uma nuvem computacional. Assim recursos podem ser adicionados e removidos do am-

19

biente conforme limiares de uso pr-estabelecidos. Esse tipo de estratgia de monitoramento


est diretamente associado a uma das principais caractersticas da Computao em Nuvem: a
elasticidade. Esse tipo de estratgia de monitoramento est diretamente associada a uma das
principais caractersticas da Computao em Nuvem: a elasticidade.
A elasticidade uma caracterstica essencial da Computao em Nuvem. Conforme
o National Institute of Standards and Technology (NIST), a elasticidade a habilidade de rpido provisionamento e desprovisionamento, com capacidade de recursos virtuais praticamente
infinita e quantidade adquirvel sem restrio a qualquer momento (MELL; GRANCE, 2009).
Uma definio de elasticidade mais recente proposta por Herbst, Kounev e Reussner (2013)
consiste no quanto um sistema capaz de se adaptar a variaes na carga de trabalho pelo
provisionamento e desprovisionamento de recursos de maneira autonmica, de modo que em
cada ponto no tempo os recursos disponveis combinem com a demanda da carga de trabalho
o mais prximo possvel. Considerando que a elasticidade est se tornando uma necessidade
cada vez maior em ambientes de nuvens computacionais devido caracterstica dinmica das
diversas cargas de trabalho impostas, diversos provedores esto disponibilizando servios de
monitoramento de recursos e provimento da elasticidade.
Atualmente diversos provedores de servio disponibilizam servios/mecanismos de
elasticidade aos usurios, tais como a Amazon EC2 (AMAZONWEBSERVICES, 2013), Microsoft Azure (MICROSOFT, 2014) e HP Cloud Services (HP, 2013). Porm, a maneira de
avaliar o desempenho da elasticidade no uma tarefa fcil, pois diversos aspectos associados
ao seu desempenho, tais como alocao, desalocao e utilizao de recursos, so implementados de diversas maneiras. No h um padro na maneira de se medir a elasticidade. Alm disso,
existe uma grande quantidade de tecnologias e estratgias para o provimento da elasticidade.
Por fim, no comum a utilizao de mtricas especficas para a medio da elasticidade de
uma nuvem computacional, e sim mtricas indiretamente associadas.
O conceito de elasticidade comum em algumas reas de atuao diferentes da
Computao, tais como a Fsica, Biologia e Microeconomia. Gambi et al. (2013) e Shawky
e Ali (2012) descrevem algumas analogias da elasticidade de outras reas em comparao
elasticidade em Computao em Nuvem. Todas essas reas possuem o conceito de elasticidade
adequados aos seus domnios. No diferente para a Computao em Nuvem, que possui
tambm o conceito da elasticidade seguindo a mesma ideia central: um efeito que surge sobre
um material quando este sujeito a uma fora.
Um estudo sobre elasticidade em nuvem foi realizado por Coutinho et al. (2013),
com destaque para diversos aspectos como: definies, estado da arte da elasticidade, anlise de
desempenho, mtricas, estratgicas elsticas, benchmarks, desafios e tendncias na construo
de solues elsticas. Este estudo reforou a importncia da elasticidade atualmente tanto para
provedores de acesso quanto para clientes.
Diversas estratgias para a avaliao da elasticidade foram propostas na literatura
(ISLAM et al., 2012; SHAWKY; ALI, 2012; HERBST; KOUNEV; REUSSNER, 2013). Porm,
a maneira de se medir a elasticidade bastante variada, no havendo ainda uma padronizao
para tal tarefa. Um aspecto comum a utilizao de recursos do ambiente, como CPU, me-

20

mria e throughput, para indiretamente se avaliar a elasticidade, mesmo sem ter uma mtrica
especfica para a elasticidade.
Diversas arquiteturas para solues de provisionamento e manuteno do SLA utilizando recursos de Computao Autonmica em ambientes de Computao em Nuvem tm
sido propostas (REGO et al., 2011; TORDSSON et al., 2012; EMEAKAROHA et al., 2012;
BUYYA; CALHEIROS; LI, 2012; URIARTE; WESTPHALL, 2014). Porm, devido pouca
disponibilidade de informao acerca de sua instalao e configurao corretas, do ponto de
vista experimental em geral no trivial implementar tais arquiteturas, muito menos aplic-las
em ambientes de nuvens computacionais. Alm disso, nota-se uma carncia de trabalhos na
literatura que avaliem o desempenho destes ambientes de forma metodolgica e sistematizada.
Em geral, a anlise de desempenho utiliza mtricas para a medio de algum aspecto
do ambiente, como CPU, memria e rede. Uma mtrica para a medio da elasticidade no
fcil de se obter. Um estudo sobre mtricas para elasticidade em Computao em Nuvem foi
realizado por Coutinho et al. (2013), onde em geral mtricas de algum recurso do ambiente so
utilizadas para avaliar indiretamente elasticidade do ambiente. Poucas mtricas especficas para
elasticidade foram identificadas, e no so claras de se aplicar e interpretar.
Diante dos aspectos descritos, surge o problema de como realizar anlise de desempenho de maneira flexvel e reutilizvel em ambientes de Computao em Nuvem para a
avaliao da elasticidade. Em geral, trabalhos no so reutilizveis, no so flexveis, falta o
detalhamento e descrio das atividades, assim como a maneira de utilizao e interpretao
das mtricas, dificultando a comparao e reproduo dos resultados.
Um framework ou arcabouo conceitual um conjunto de conceitos utilizados para
a resoluo de um problema de um domnio especfico, sendo que existem dois tipos: frameworks verticais (ou especialistas, confeccionados atravs da experincia obtida em um determinado domnio especfico ou de um especialista, tentando resolver problemas de um determinado domnio de aplicao), e frameworks horizontais (podem ser utilizados em diferentes
domnios) (CRUZ, 2013).
Na tentativa de diminuir esta lacuna, foi proposto o FOLE, um framework conceitual para a resoluo de um problema especfico de anlise de desempenho da elasticidade no
domnio das nuvens computacionais. O FOLE suporta um conjunto de mtricas para a medio
direta e indireta da elasticidade, baseadas em tempos de operaes de alocao e desalocao
de recursos, quantidade de recursos utilizados, e alguns conceitos de elasticidade da Fsica e
Microeconomia.
1.2

Hiptese e Questes de Partida

Considerando que a avaliao de desempenho de uma nuvem computacional uma


atividade importante para a comparao, evoluo e adaptao do ambiente conforme as necessidades dos usurios e servios, esta tese de doutorado procura testar a seguinte hiptese:
A sistematizao da anlise de desempenho da elasticidade em Computao em

21

Nuvem permite uma avaliao de quanto a nuvem se adqua s cargas de trabalho


e contribui para tomada de deciso de maneira eficiente
A partir dessa hiptese quatro questes de partida (QP) foram levantadas:
QP01: Quais so as principais caractersticas que uma nuvem computacional deve possuir
para prover elasticidade ?
QP02: possvel construir um mecanismo de elasticidade em um ambiente de Computao em
Nuvem que permita sua adequao s necessidades dos usurios ?
QP03: possvel medir a elasticidade de uma nuvem computacional ?
QP04: possvel elaborar uma metodologia para anlise de desempenho que permita avaliar
a elasticidade de uma nuvem computacional ?
1.3

Objetivos e Metas

Esta tese de doutorado tem como objetivo principal propor um framework conceitual para anlise de desempenho da elasticidade em Computao em Nuvem, denominado
FOLE, com o intuito de permitir a realizao de uma anlise de desempenho em ambientes de
Computao em Nuvem com foco em elasticidade de maneira sistematizada, flexvel e reproduzvel. Para o atendimento do objetivo, este foi decomposto em seis metas (META):
META01: Realizar uma reviso bibliogrfica sobre anlise de desempenho da elasticidade em
ambientes Computao em Nuvem (QP01);
META02: Descrever uma arquitetura baseada em conceitos de Computao Autonmica que
suporte a avaliao da elasticidade em Computao em Nuvem; (QP02);
META03: Definir mtricas para a avaliao da elasticidade (QP03);
META04: Propor uma estratgia para anlise de desempenho especfica para elasticidade em
Computao em Nuvem (QP04);
META05: Desenvolver uma ferramenta que permita o suporte anlise de desempenho na
coleta e visualizao de dados (QP03, QP04).
META06: Analisar o comportamento da elasticidade em um ambiente de Computao em
Nuvem (QP03, QP04).
1.4

Metodologia
A elaborao da tese est orientada seguinte metodologia:
I. Estudo do referencial terico necessrio ao desenvolvimento do trabalho (conceitos e
tecnologias) (META1, META2, META3);

22

II. Realizao de uma reviso bibliogrfica atravs de uma reviso sistemtica para identificao de trabalhos relacionados, solues, mtricas e arquiteturas propostas para a anlise
de desempenho da elasticidade em nuvem (META1, META2, META3);
III. Comparao de trabalhos relacionados a mtricas e metodologias para anlise de desempenho da elasticidade em nuvem (META1, META3, META4);
IV. Planejamento de uma arquitetura baseada em conceitos de Computao Autonmica para
a anlise da elasticidade em nuvem, e sua consequente implementao em uma nuvem
computacional (META2);
V. Proposta de mtricas que auxiliem na avaliao da elasticidade por meio de aspectos
variados do ambiente (META3, META6):
a) Mtricas baseadas em tempos de operaes de alocao e desalocao de recursos e
na utilizao de recursos;
b) Mtricas baseadas em conceitos da Microeconomia e Fsica;
VI. Proposta de um framework para anlise de desempenho da elasticidade em nuvem (META4);
VII. Desenvolvimento de ferramentas de suporte anlise de desempenho (coleta, automao
e visualizao) (META2, META5);
VIII. Projeto de experimentos para validao das mtricas, arquitetura, ferramentas e framework
(META2, META3, META4, META5, META6).
1.5

Escopo

Alguns conceitos e aspectos identificados na literatura em trabalhos de Computao


em Nuvem no foram abordados neste trabalho. Entretanto, em momentos oportunos eles sero
relacionados e comentados sempre que possvel. Nosso foco a proposio de mtricas para
a elasticidade, descrio de ferramentas de suporte (anlise e visualizao), construo de um
framework conceitual para apoiar a anlise de desempenho da elasticidade, e experimentos para
validao das respectivas mtricas e framework. Os itens a seguir descrevem o escopo abordado
em nosso trabalho sobre alguns desses conceitos.
Computao Autonmica: Os aspectos de Computao Autonmica abordados neste trabalho
foram baseados no trabalho de Kephart e Chess (2003). Apenas alguns aspectos de Computao
Autonmica foram utilizados na elaborao deste trabalho: loops de controle, regras, arquitetura proposta e elementos de auto configurao. Demais elementos do auto gerenciamento (auto
otimizao, auto cura e auto proteo) no sero considerados neste trabalho.
Segurana: Este aspecto, como no foco do trabalho, limitou-se s questes de segurana da
infraestrutura utilizada, considerando apenas login de usurio da rede interna (nuvem privada)
e da nuvem pblica, conexes ssh (Secure Shell) e chaves de segurana. A nuvem privada se localiza na rede de computadores da universidade, e s executa servios acadmicos de pesquisa.

23

A nuvem pblica utilizada foi uma conta especial cedida por um provedor, para fins acadmicos, no possuindo muita liberdade de utilizao e acesso, tendo a quantidade de instncias e
capacidade limitadas.
Nuvens Distribudas: Nuvens distribudas, ou D-Clouds, consistem em um grande nmero de
pequenos datacenters distribudos por uma rea geogrfica, sendo atraente para provedores de
servios que j possuem facilidades de desenvolvimento distribudas interconectadas por redes
de alta velocidade (SCOPE, 2011). Nuvens distribudas possuem caractersticas semelhantes
aos provedores de nuvem atuais, que alm de suas ofertas essenciais, tais como servios escalveis, uso sob demanda e pagamento por uso, tambm tiram proveito da geodiversidade (ENDO
et al., 2011). Neste trabalho, nuvens distribudas no sero utilizadas, limitando-se apenas utilizao de uma nuvem privada e uma nuvem pblica para os experimentos, e sua combinao
consistindo uma nuvem hbrida.
Qualidade de Servio: Este trabalho utiliza alguns conceitos de QoS (Quality of Service)
associados manuteno da qualidade. Porm seu foco apenas obter uma referncia para os
servios ou cargas de trabalho utilizados. No inteno deste trabalho desenvolver estratgias
eficientes de manuteno de QoS, apesar de QoS ser um aspecto muito importante em qualquer
ambiente computacional, e sim utiliz-las para a validao de algumas atividades.
Provisionamento: No inteno deste trabalho desenvolver estratgias de provisionamento
de recursos. Apenas utilizar uma estratgia para a validao da proposta. A estratgia de
provisionamento pode ser modificada a qualquer momento sem interferir na proposta deste
trabalho.
Predio: No inteno deste trabalho o desenvolvimento de mtodos de predio do comportamento das cargas de trabalho, assim como a utilizao de recursos. Apenas utilizar uma
estratgia para a validao da proposta. A qualquer momento a estratgia de predio pode ser
modificada, sem interferir na proposta deste trabalho.
Custo Financeiro: Este trabalho no considera o aspecto financeiro nos experimentos. Mesmo
assim, temos cincia da importncia deste aspecto para a avaliao de provedores pblicos,
onde a precificao tema contnuo de pesquisa em diversas instituies.
1.6

Contribuies
As principais contribuies desta tese foram:

1. Um framework conceitual para anlise de desempenho da elasticidade (FOLE);


2. Mtricas para a medio da elasticidade baseadas em tempos de operaes de alocao e
desalocao de recursos, na quantidade de recursos utilizados, e em conceitos da Fsica e
Microeconomia;
3. Uma arquitetura baseada em conceitos da Computao Autonmica para o provimento
de solues elsticas;

24

4. Uma ferramenta para apoio avaliao de desempenho da elasticidade, com suporte


visualizao e anlise.
A Tabela 1.1 apresenta as publicaes produzidas at o momento no decorrer do
curso de doutorado diretamente relacionadas ao trabalho, tanto publicadas quanto submetidas.
O artigo 1 descreve uma mtrica para a medio da elasticidade baseada em conceitos da Microeconomia e experimentos sobre nuvens privadas e pblicas. O artigo 2 prope mtricas para
a medio da elasticidade em Computao em Nuvem baseada em conceitos da Fsica e da Microeconomia. O artigo 3 apresenta um survey sobre o estado da arte da elasticidade em Computao em Nuvem. O artigo 4 apresenta uma mtrica para a medio da elasticidade baseada em
conceitos da Fsica. O artigo 5 descreve um framework conceitual para anlide de desempenho
da elasticidade. O artigo 6 descreve uma proposta de arquitetura para o provimento de elasticidade em Computao em Nuvem. O artigo 7 apresenta um conjunto de mtricas propostas para
a medio da elasticidade baseada em tempos de operaes de alocao e desalocao de recursos e quantidade de recursos. O artigo 8 um minicurso que apresenta os resultados de uma
reviso sistemtica sobre elasticidade e anlise de desempenho em ambientes de Computao
em Nuvem.
A Tabela 1.2 exibe as publicaes que foram produzidas durante o perodo do doutorado que auxiliaram no estudo, conhecimento tcnico e aplicaes, contribuindo indiretamente
para o trabalho. Os trabalhos 1, 3, 6, 7, 8, 9 e 10 auxiliaram no estudo de tecnologias relacionadas a Computao em Nuvem, focando em infraestruturas, mtricas, benchmarks e anlise de
desempenho. Os trabalhos 2, 4 e 5 so trabalhos que utilizaram Computao em Nuvem com
recursos de Computao de Alto Desempenho (HPC-High Performance Computing).
Tabela 1.1: Publicaes diretamente relacionadas tese
No.
1
2
3
4

Referncia
On Applying Microeconomics Concepts to Cloud Elasticity Evaluation The 30th ACM/SIGAPP Symposium On Applied Computing (SAC2015)
Metrics for Evaluating Cloud Computing Elasticity - Computer Networks
(COMNET)
Elasticity in Cloud Computing: A Survey - Annals of Telecommunications
Uma Mtrica para Avaliao da Elasticidade em Computao em Nuvem
Baseada em Conceitos da Fsica - XII Workshop em Clouds e Aplicaes
(WCGA2014) (COUTINHO et al., 2014)
Uma Proposta de Framework Conceitual para Anlise de Desempenho da
Elasticidade em Nuvens Computacionais - XII Workshop em Clouds e
Aplicaes (WCGA2014) (COUTINHO; GOMES; SOUZA, 2014b)
Uma Proposta de Arquitetura Autonmica para Elasticidade em Computao em Nuvem - IV Workshop de Sistemas Distribudos Autonmicos
(WOSIDA2014) (COUTINHO; GOMES; SOUZA, 2014a)
An analysis of elasticity in cloud computing environments based on allocation time and resources - IEEE Latin America Conference on Cloud
Computing and Communications (LatinCloud 2013) (COUTINHO; GOMES; SOUZA, 2013)
Elasticidade em computao na nuvem: Uma abordagem sistemtica XXXI Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos (SBRC 2013) (COUTINHO et al., 2013)

Tipo
Conferncia (submetido)
Journal (aguardando resultado do editor)
Journal (aceito para publicao)
Conferncia

Conferncia

Conferncia

Conferncia

Minicurso

25

Tabela 1.2: Publicaes indiretamente relacionadas tese


No.
1

10

1.7

Referncia
Uma Anlise do Impacto da Qualidade da Internet Mvel na Utilizao de Cloudlets - XXXII Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos (SBRC 2014) (COSTA et al., 2014)
Performance Analysis on Scientific Computing and Cloud Computing Environments - 7th Euro American Association on Telematics and Information Systems (EATIS 2014) (COUTINHO; PAILLARD; SOUZA, 2014)
How to deploy a Virtual Learning Environment in the Cloud? - 7th Euro American
Association on Telematics and Information Systems (EATIS 2014) (COUTINHO et
al., 2014)
High Performance Computing and Cloud Computing Applications at the Discipline
of Distributed Applications Development - International Journal of Computer Architecture Education (IJCAE) (COUTINHO; PAILLARD, 2013b)
Aplicaces de Computao de Alto Desempenho e Computao em Nuvem na Disciplina de Desenvolvimento de Aplicaes Distribudas - Workshop sobre Educao
em Arquitetura de Computadores (WEAC 2013) (COUTINHO; PAILLARD, 2013a)
Estratgias para Alocao Dinmica de Recursos em um Ambiente Hbrido de Computao em Nuvem - XI Workshop em Clouds e Aplicaes (WCGA2013) (REGO;
COUTINHO; SOUZA, 2013)
Anlise de Desempenho com Benchmarks em um Ambiente Pblico de Computao
em Nuvem - X Workshop em Clouds e Aplicaes (WCGA2012) (COUTINHO et
al., 2012)
Alocao Autonmica de Recursos para Mquinas Virtuais Baseada em Caractersticas de Processamento - II Workshop on Autonomic Distributed Systems (WOSiDA2012) (REGO et al., 2012)
Proposta de Workflow para Alocao de Mquinas Virtuais Utilizando Caractersticas de Processamento - IX Workshop em Clouds e Aplicaes (WCGA2011)
(REGO; COUTINHO; SOUZA, 2011)
FairCPU: Architecture for Allocation of Virtual Machines Using Processing Features - Fourth IEEE International Conference on Utility and Cloud Computing (UCC)
(REGO et al., 2011)

Tipo
Conferncia

Conferncia

Conferncia

Journal

Conferncia

Conferncia

Conferncia

Conferncia

Conferncia

Conferncia

Organizao do Documento

Este captulo apresentou a problemtica que motiva esta tese de doutorado, a hiptese e as questes de partida envolvidas, os objetivos e as principais metas deste trabalho.
Tambm apresentou a metodologia que ser utilizada para o atendimento dos objetivos e metas,
alm do escopo, contribuies e publicaes. O restante desse documento est organizado da
seguinte maneira:
Captulo 2 - Apresenta o referencial terico, com alguns conceitos necessrios para o melhor
entendimento do trabalho. Aborda Computao em Nuvem, Anlise de Desempenho e Computao Autonmica;
Captulo 3 - Este captulo apresenta uma reviso bibliogrfica, com a identificao de trabalhos
relacionados elasticidade, anlise de desempenho, mtricas, ferramentas e solues elsticas,
por meio de uma reviso sistemtica. Tambm so descritos, analisados e comparados trabalhos
relacionados;
Captulo 4 - Mtricas propostas para a medio da elasticidade e para a medio de aspectos

26

relacionados elasticidade so apresentadas neste captulo;


Captulo 5 - O framework conceitual FOLE apresentado, com o detalhamento de suas atividades. Adicionalmente, uma arquitetura para uma soluo elstica proposta, baseada em
conceitos de Computao Autonmica, e uma ferramenta para suportar a anlise de desempenho descrita;
Captulo 6 - Experimentos para a validao do FOLE e das mtricas propostas so descritos.
Dois experimentos so realizados, utilizando nuvens privadas e pblicas.
Captulo 7 - Este captulo dedicado s consideraes finais desta tese de doutorado. Nele
so descritos os resultados alcanados e uma discusso sobre as questes de partida. Por fim,
trabalhos futuros derivados desta tese so apresentados.
Apndices - Os apndices apresentam material complementar deste trabalho. Mtricas complementares e telas da ferramenta desenvolvida so exibidas.

27

REFERENCIAL TERICO

Neste captulo so descritos conceitos necessrios ao entendimento do trabalho.


Aspectos da Computao em Nuvem, Anlise de Desempenho e Computao Autonmica so
apresentados de maneira geral.
2.1

Computao em Nuvem

A Computao em Nuvem est se tornando uma das palavras chaves da indstria


de Tecnologia da Informao (TI). A nuvem uma metfora para a Internet ou infraestrutura
de comunicao entre os componentes arquiteturais, baseada em uma abstrao que oculta a
complexidade da infraestrutura. Cada parte desta infraestrutura provida como um servio os
quais normalmente so alocados em centros de dados, utilizando hardware compartilhado para
computao e armazenamento (BUYYA et al., 2009).
A infraestrutura do ambiente de Computao em Nuvem normalmente composta
por um grande nmero (centenas ou milhares) de mquinas fsicas ou ns fsicos de baixo
custo, conectadas por meio de uma rede, como ilustra a Figura 2.1. Cada mquina fsica pode
ter diferentes configuraes de hardware e software, com variaes na capacidade em termos
de CPU, memria e armazenamento em disco (SOROR et al., 2010). Em cada mquina fsica
existe um nmero varivel de mquinas virtuais, ns virtuais ou instncias em execuo, de
acordo com a capacidade do hardware disponvel na mquina fsica.

Figura 2.1: Ambiente de Computao em Nuvem


Em 1961, John McCarthy1 foi a primeira pessoa a sugerir publicamente que a tecnologia de compartilhamento do tempo computacional pode resultar em um futuro no qual o
poder de computao e at mesmo aplicaes especficas poderiam ser vendidos por meio do
modelo de negcio utilitrio (como gua ou eletricidade). Essa ideia de um computador ou
informaes de utilidade foi muito popular durante o final da dcada 60, mas desapareceu em
1 John

McCarthy, em um discurso para celebrar o centenrio do MIT em 1961, Architects of the Information
Society, Thirty-Five Years of the Laboratory for Computer Science at MIT

28

meados da dcada de 90. No entanto, por volta do ano 2000, a ideia ressurgiu em novas formas, tais como provedores de servios de aplicaes, Computao em Grade e Computao em
Nuvem.
A Computao em Nuvem uma evoluo dos servios e produtos de tecnologia da
informao sob demanda, tambm chamada de Utility Computing (BRANTNER et al., 2008).
O objetivo da Utility Computing fornecer componentes bsicos como armazenamento, processamento e largura de banda de uma rede como uma mercadoria atravs de provedores
especializados com um baixo custo por unidade utilizada. Usurios de servios baseados em
Utility Computing no precisam se preocupar com escalabilidade, pois a capacidade fornecida
praticamente infinita. A Utility Computing prope fornecer disponibilidade total, isto , os
usurios podem ler e gravar dados a qualquer tempo, sem nunca serem bloqueados, e os tempos de resposta so quase constantes e no dependem do nmero de usurios simultneos, do
tamanho do banco de dados ou de qualquer parmetro do sistema. Os usurios no precisam
se preocupar com backups, pois se os componentes falharem, o provedor responsvel por
substitu-los e tornar os dados disponveis em tempo hbil (BRANTNER et al., 2008).
Uma razo importante para a construo de novos servios baseados em Utility
Computing que provedores de servios que utilizam servios de terceiros pagam apenas pelos
recursos que recebem, ou seja, pagam pelo uso. No so necessrios grandes investimentos iniciais em TI e o custo cresce de forma linear e previsvel com o uso. Dependendo do modelo do
negcio, possvel que o provedor de servios repasse o custo de armazenagem, processamento
e de rede para os usurios finais, j que realizada a contabilizao do uso.
Existem diversas propostas para definir o paradigma da Computao em Nuvem,
resumidas por Vaquero et al. (2009). O National Institute of Standards and Technology (NIST)
argumenta que a Computao em Nuvem um paradigma em evoluo e apresenta a seguinte
definio: Computao em nuvem um modelo que possibilita acesso, de modo conveniente
e sob demanda, a um conjunto de recursos computacionais configurveis (por exemplo, redes,
servidores, armazenamento, aplicaes e servios) que podem ser rapidamente adquiridos e
liberados com mnimo esforo gerencial ou interao com o provedor de servios (MELL;
GRANCE, 2009). Ainda segundo o NIST, a Computao em Nuvem composta por cinco
caractersticas essenciais, trs modelos de servio e quatro modelos de implantao, detalhados
a seguir.
2.1.1

Caractersticas Essenciais

As caractersticas essenciais so vantagens que as solues de Computao em Nuvem oferecem. Algumas destas caractersticas, em conjunto, definem exclusivamente a Computao em Nuvem e fazem a distino com outros paradigmas. Por exemplo, a elasticidade
rpida de recursos, amplo acesso e a medio de servio so caractersticas bsicas para compor
uma soluo de Computao em Nuvem.
Self-service sob demanda: O usurio pode adquirir unilateralmente recursos computacionais, como tempo de processamento no servidor ou armazenamento na rede, na medida

29

em que necessite e sem precisar de interao humana com os provedores de cada servio;
Amplo acesso: Recursos so disponibilizados por meio da rede e acessados atravs de
mecanismos padronizados que possibilitam o uso por plataformas do tipo thin, tais como
celulares, laptops e PDAs;
Pooling de recursos: Os recursos computacionais do provedor so organizados em um
pool para servir mltiplos usurios usando um modelo multi-tenant ou multi-inquilino,
com diferentes recursos fsicos e virtuais, dinamicamente atribudos e ajustados de acordo
com a demanda dos usurios. Estes usurios no precisam ter conhecimento da localizao fsica dos recursos computacionais, podendo somente especificar a localizao em
um nvel mais alto de abstrao, tais como o pas, estado ou centro de dados;
Elasticidade rpida: Recursos podem ser adquiridos de forma rpida e elstica, em alguns
casos automaticamente, caso haja a necessidade de escalar com o aumento da demanda,
e liberados, na retrao dessa demanda. Para os usurios, os recursos disponveis para
uso parecem ser ilimitados e podem ser adquiridos em qualquer quantidade e a qualquer
momento;
Servio medido: Sistemas em nuvem automaticamente controlam e otimizam o uso de
recursos por meio de uma capacidade de medio. A automao realizada em algum
nvel de abstrao apropriado para o tipo de servio, tais como armazenamento, processamento, largura de banda e contas de usurio ativas. O uso de recursos pode ser monitorado e controlado, possibilitando transparncia para o provedor e o usurio do servio
utilizado.
2.1.2

Modelos de Servios

O ambiente de Computao em Nuvem composto de trs modelos de servios.


Estes modelos so importantes, pois eles definem um padro arquitetural para solues de Computao em Nuvem, conforme descrito na Figura 2.2.
Software como um Servio (SaaS): O modelo de SaaS proporciona sistemas de software
com propsitos especficos que so disponveis para os usurios por meio da Internet
e acessveis a partir de vrios dispositivos do usurio por meio de uma interface thin
client como um navegador web. No SaaS, o usurio no administra ou controla a infraestrutura subjacente, incluindo rede, servidores, sistema operacional, armazenamento
ou mesmo as caractersticas individuais da aplicao, exceto configuraes especficas.
Como exemplos de SaaS podemos destacar os servios de Customer Relationship Management (CRM) da Salesforce e o Google Drive.
Plataforma como um Servio (PaaS): O modelo de PaaS fornece sistema operacional, linguagens de programao e ambientes de desenvolvimento para as aplicaes, auxiliando
a implementao de sistemas de software. Assim como no SaaS, o usurio no administra
ou controla a infraestrutura subjacente, mas tem controle sobre as aplicaes implantadas

30

Figura 2.2: Modelo de servio da Computao em Nuvem (baseado em (VERDI et al., 2010)).
e, possivelmente, as configuraes de aplicaes hospedadas nesta infraestrutura. Google
App Engine (GOOGLE, 2014) e Microsoft Azure (AZURE, 2012) so exemplos de PaaS.
Infraestrutura como um Servio (IaaS): A IaaS torna mais fcil e acessvel o fornecimento
de recursos, tais como servidores, rede, armazenamento e outros recursos de computao
fundamentais para construir um ambiente de aplicao sob demanda, que podem incluir
sistemas operacionais e aplicativos. Em geral, o usurio no administra ou controla a infraestrutura da nuvem, mas tem controle sobre os sistemas operacionais, armazenamento,
aplicativos implantados e, eventualmente, seleciona componentes de rede, tais como firewalls. O Amazon Elastic Cloud Computing (EC2) (AMAZONWEBSERVICES, 2013),
Eucalyptus (LIU; LIANG; BROOKS, 2007), OpenNebula (OPENNEBULA.ORG, 2012)
e OpenStack (OPENSTACK.ORG, 2013) so exemplos de IaaS.

2.1.3

Modelos de Implantao

Quanto ao acesso e disponibilidade, h diferentes tipos de modelos de implantao


para os ambientes de Computao em Nuvem. A restrio ou abertura de acesso depende do
processo de negcios, do tipo de informao e do nvel de viso desejado, conforme descrito na
Figura 2.3:
Nuvem Privada: A infraestrutura de nuvem utilizada exclusivamente por uma organizao, sendo esta nuvem, local ou remota, administrada pela prpria empresa ou por
terceiros;

31

Figura 2.3: Modelos de implantao da Computao em Nuvem.


Nuvem Pblica: A infraestrutura de nuvem disponibilizada para o pblico em geral,
sendo acessada por qualquer usurio que conhea a localizao do servio;
Nuvem Comunidade: Fornece uma infraestrutura compartilhada por uma comunidade de
organizaes com interesses em comum;
Nuvem Hbrida: A infraestrutura uma composio de duas ou mais nuvens, que podem
ser do tipo privada, pblica ou comunidade, e que continuam a ser entidades nicas, mas
conectadas por meio de tecnologia proprietria ou padronizada que permite a portabilidade de dados e aplicaes.

2.2

Anlise de Desempenho

Muitos trabalhos executam atividades para avaliar o desempenho de diversos aspectos, tais como um ambiente, uma aplicao, uma poltica, um algoritmo, entre outros. Em
Computao em Nuvem no diferente, pois diversas reas so objeto de avaliaes, podendo
a anlise de desempenho ser utilizada para compreender o nvel de qualidade dos servios e
possibilitar o ajuste da elasticidade por meio de polticas de alocao de recursos.
Anlise de desempenho envolve coleta de dados para auxiliar clientes e patrocinadores a definir e alcanar seus objetivos. Apresenta vrias perspectivas sobre um problema ou
oportunidade, determinando o direcionamento para barreiras ou desempenho bem sucedido, e
prope uma soluo com base nas descobertas. Inclui: medio, modelagem, estatstica, projeto
experimental, simulao, teoria das filas, etc. Em geral so identificados trs aspectos:
Sistema: Qualquer conjunto de hardware, software e/ou firmware;
Mtricas: Critrios utilizados para avaliar o desempenho do sistema ou componentes;
Cargas de trabalho: Requisies realizadas pelos usurios do sistema.
possvel realizar diversas atividades com anlise de desempenho, tais como especificar requisitos do desempenho, avaliar alternativas do projeto, comparar dois ou mais
sistemas, determinar o valor timo de um parmetro (ajuste do sistema), encontrar gargalos
de desempenho, caracterizar a carga de trabalho no sistema, determinar o nmero e tamanho
dos componentes (capacidade planejamento) e predizer o desempenho de futuras cargas. Jain
(1991) realiza um estudo detalhado sobre anlise de desempenho. Neste estudo, uma abordagem para avaliao de desempenho descrita:

32

Definir metas e o sistema;


Listar os servios e seus resultados;
Selecionar mtricas;
Listar parmetros;
Selecionar fatores para estudo;
Selecionar tcnica de avaliao;
Selecionar carga de trabalho;
Projetar os experimentos;
Analisar e interpretar os dados;
Apresentar os resultados.
Contudo, na abordagem no existe a noo de plano de ao conforme os resultados
vo sendo coletados e interpretados, e nem h a idia do ciclo de vida da anlise de desempenho.
Alm disso, Raj Jain aborda predominantemente o projeto do experimento e a intrepretao dos
dados. Segundo Montgomery (2009), um experimento um teste ou uma srie de testes nas
quais mudanas intencionais so realizadas para que variveis de entrada de um processo ou
sistema possam ser observadas e identificar as razes para mudanas que podem ser observadas
nas respostas de sada. Em geral experimentos so utilizados para estudar o desempenho de
processos e sistemas, e estes podem ser representados pelo modelo da Figura 2.4. Geralmente
um processo visualizado como uma combinao de mquinas, mtodos, pessoas e outros
recursos, que transformam alguma entrada em alguma sada, que possui uma ou mais respostas
observveis. Algumas das variveis desse sistema so controlveis enquanto outras no. Os
objetivos de um experimento podem incluir o seguinte:
Determinao de quais variveis influenciam mais na resposta;
Determinao de onde configurar a varivel que mais influencia de maneira que a resposta
seja quase sempre prxima ao resultado desejado;
Determinao de onde configurar a varivel que mais influencia de modo que a variao
na resposta seja pequena;
Determinao de onde configurar a varivel que mais influencia de modo que os efeitos
das variveis no controladas sejam minimizados.
Em geral, a abordagem de planejar e conduzir o experimento chamado de estratgia de experimentao. Projeto experimental uma importante ferramenta para melhorar o
desempenho de processos e sistemas, assim como no desenvolvimento de novas aplicaes. A
aplicao de tcnicas de projeto experimental previamente pode resultar em: rendimento do

33

Figura 2.4: Modelo genrico de um processo ou sistema. Fonte: Adaptado de Montgomery


(2009).
processo ou sistema melhorado, variabilidade reduzida e conformidade prximos com requisitos ou metas, tempo de desenvolvimento reduzido e reduo dos custos globais. Mtodos de
projeto experimental tambm ajudam na tomada de deciso, como por exemplo: avaliao e
comparao de configuraes, avaliao de alternativas, seleo de parmetros de projeto onde
um produto trabalha bem sob uma grande variedade de condies, e determinao de parmetros chave de projeto que impactam no desempenho do produto. O projeto estatstico de
experimentos se refere ao processo de planejamento de maneira que os dados possam ser apropriadamente analisados por mtodos estatsticos, resultando em concluses objetivas e vlidas.
Montgomery (2009) descreve algumas orientaes para o projeto de experimentos:
Reconhecimento e declarao do problema;
Escolha dos fatores, nveis e intervalos;
Seleo das variveis de resposta;
Escolha do projeto experimental;
Realizao do experimento;
Anlise estatstica dos dados;
Concluses e recomendaes.
Menasce, Dowdy e Almeida (2004) descreve como as mtricas podem ser agrupadas da seguinte maneira: tempo de resposta (tempo que o sistema leva para reagir a uma
requisio humana, geralmente medido em segundos), throughput (taxa na qual requisies so
completadas a partir de um sistema computacional, e medido em operaes por unidade de
tempo), disponibilidade (frao de tempo que um sistema est ativo e disponvel para clientes),
confiabilidade (probabilidade de que o sistema funcione adequadamente e continuamente sobre
um perodo fixo de tempo), segurana (combinao de confidencialidade, integridade de dados
e no repudiao), escalabilidade (um sistema dito escalvel quando seu desempenho no se

34

degrada significantemente com o aumento dos usurios ou carga), e extensibilidade (propriedade do sistema de evoluo para lidar com os novos requisitos funcionais e de desempenho).
Jain (1991) tambm agrupa as mtricas de maneira semelhante, porm mais simplificada: tempo de resposta, throughput, utilizao (frao de tempo que o recurso est ocupado
atendendo requisies), confiabilidade, disponibilidade (perodo de tempo em que um sistema
est indisponvel (downtime) e perodo de tempo em que um sistema est disponvel (uptime)),
aquisio de sistemas (custo e custo/desempenho). Algumas mtricas so compartilhadas entre
diferentes grupos, dependendo do contexto de utilizao, por exemplo: tempo de alocao e
de desalocao de recursos so mtricas de tempo de resposta, mas tambm so mtricas de
escalabilidade.
2.3

Computao Autonmica

Atualmente, os sistemas esto cada vez se tornando mais complexos, seja com a
utilizao de tecnologias diversas, seja pela complexidade das aplicaes (DENKO; YANG;
ZHANG, 2009). A Computao Autonmica aborda o projeto e implementao de sistemas
computacionais com capacidade de se configurar, proteger, otimizar, tolerar falhas e solucionar
problemas automaticamente, respondendo s mudanas do sistema (PARASHAR; HARIRI,
2006). O termo "autnomo" teve origem na Biologia. Baseado nestes conceitos, solues para
auto gerenciamento tm sido propostas.
Segundo Kephart e Chess (2003), um sistema autonmico composto por um conjunto de elementos autonmicos. Um elemento autonmico um componente responsvel pela
gesto do seu prprio comportamento em conformidade com polticas e por interagir com outros
elementos autnomos que fornecem ou consomem servios computacionais. Segundo Hariri et
al. (2006), Computao Autonmica inspirada no sistema nervoso autonmico humano, que
tem desenvolvido estratgias e algoritmos para lidar com complexidades e incertezas, e objetiva
a construo de sistemas e aplicaes capazes de gerenciarem a si mesmos, com o mnimo de
interveno humana.
2.3.1

Comportamento dos Elementos Autonmicos

Para White et al. (2004), um elemento autonmico deve ser autogerenciado, ou seja,
ele deve ser responsvel por se configurar internamente para reparao de falhas internas, otimizao de seus prprios comportamentos, e auto proteo contra ataques. Para simplificar o
gerenciamento de grandes sistemas, um elemento autonmico deve tratar os problemas localmente sempre que possvel. Ele deve ser capaz de estabelecer e manter relacionamentos com
outros elementos autonmicos os quais provm e demandam servios, induzindo vrios requisitos (WHITE et al., 2004). Um elemento autonmico deve descrever seus servios precisamente
de maneira que seja acessvel e compreensvel por outros elementos autonmicos. Relacionamentos so baseados em acordos, ento o elemento autonmico deve entender e manter os
termos do acordo, devendo ser capaz de negociar para estabelecer acordos.

35

Alm disso, um elemento autonmico deve gerenciar seu comportamento e relacionamentos de forma a atender obrigaes, tanto pelo ajuste ou configurao de parmetros
prprios, quanto pela projeo sobre novos recursos de outros elementos autonmicos. Existem dois tipos de obrigaes nas quais um elemento autonmico pode se sujeitar: honrar os
termos do acordo, e receber e manter polticas. Um elemento autonmico deve rejeitar qualquer requisio de servio que viole suas polticas ou acordos, assim como recusar ou propor
outras relaes e polticas que possam causar violaes. Ele deve possuir capacidades analticas
suficientes para suportar estas funcionalidades (WHITE et al., 2004).
2.3.2

Polticas

A habilidade em alto nvel de traduo de diretivas para aes especficas a serem


tomadas pelos elementos executada pelo uso de polticas (WHITE et al., 2004). Uma poltica
a representao de comportamentos desejados ou restries sobre o comportamento. Gerenciamento baseado em polticas tem sido tpico de pesquisa por mais de uma dcada (SLOMAN,
1994). Para Computao Autonmica, o foco especificamente sobre auto gerenciamento baseado em polticas. Kephart e Walsh (2004) destacam trs formas de polticas: atuao, objetivo
e funes utilitrias.
No nvel mais baixo de especificao esto polticas de atuao, as quais esto tipicamente sob a forma de SE (CONDIO) ENTO (AO). Por exemplo SE (Tempo de
Resposta > 2 segundos) ENTO (Incremente CPU em 20%). Um elemento autonmico empregando polticas de ao deve medir ou sintetizar os estados quantificados na condio, e
deve executar as aes estabelecidas sempre que uma condio for satisfeita. O problema com
as polticas de ao que, quando uma srie de polticas de ao especificada, conflitos podem surgir entre as polticas, sendo difceis de detectar. Por exemplo, se um servidor web e
um servidor de aplicao de um sistema multicamadas solicitarem mais recursos, e os recursos
disponveis forem insuficientes para ambos, surge um conflito. Para lidar com tais conflitos,
o sistema precisa de polticas de resoluo de conflitos adicionais, por exemplo, dando maior
prioridade ao servidor de aplicativos. No entanto, como os conflitos aparecem em tempo de
execuo, difcil especificar as polticas de resoluo de conflitos (SOUSA, 2010).
No nvel seguinte, condies so atendidas sem se especificar como ating-las. Por
exemplo: o tempo de resposta no deve exceder 2 segundos. Polticas de objetivo so mais poderosas que polticas de ao pois um humano ou elemento autonmico podem direcionar para
outro elemento sem requerer conhecimento detalhado. Elementos autonmicos que empregam
polticas de objetivo devem possuir capacidade de planejamento ou modelagem suficientes para
traduzir objetivos em aes. Polticas de objetivo liberam o administrador da necessidade de especificar as aes de baixo nvel. No entanto, as polticas de objetivo ainda sofrem o problema
de conflito, tambm encontrados com as polticas de ao. Por exemplo, quando o conjunto
de estados desejados para atender um objetivo do servidor web e um conjunto de estados desejados para cumprir um objetivo de servidor de aplicativos so disjuntos (interseo vazia),
surgem conflitos. O problema encontrar entre os estados indesejveis o que causa menor
prejuzo (SOUSA, 2010).

36

No nvel mais alto esto as polticas de funes utilitrias, que especificam o desejo
alternativo de estados alternativos. Isto executado pela associao numrica de valores ou
pela ordenao total ou parcial dos estados possveis. Funes utilitrias so mais poderosas
que polticas de objetivo porque elas automaticamente determinam o objetivo mais valioso em
qualquer situao. Elementos autonmicos que empregam polticas de funo utilitria devem
possuir sofisticadas capacidades de otimizao e modelagem suficientes para traduzir funes
utilitrias em aes. Por outro lado, as funes utilitrias so difceis de definir assim como
cada aspecto que influencia a deciso desta funo que deve ser quantificado (SOUSA, 2010).
2.3.3

Elementos do Auto Gerenciamento

Elementos do auto gerenciamento podem ser utilizados para instituir auto configurao, auto reparao, auto otimizao e auto proteo no nvel de sistema (WHITE et al.,
2004). Esta lista descrita em Kephart e Chess (2003), White et al. (2004), Sousa (2010).
Existem outras estratgias, outros padres, portanto esta lista de elementos no exaustiva.
Auto Configurao: Um sistema autonmico se instala, se configura e modifica seu comportamento automaticamente conforme metas de alto nvel que especificam o que desejado, mas no necessariamente como realiz-las. Na configurao interna pode ocorrer
a adio ou retirada de componentes, e em seguida, a auto configurao. Em relao
configurao externa, tem-se a adaptao infraestrutura global, ambiente e servios;
Auto Reparao: Um sistema autonmico detecta problemas, seja de hardware ou software, realiza o diagnstico e tenta automaticamente corrig-los. Se um problema pode ser
resolvido automaticamente, o sistema o faz. Para isso, o sistema executa um conjunto de
testes para se certificar que a correo no introduziu outros defeitos. Caso no seja possvel executar a auto reparao, o problema relatado para o administrador do sistema.
Para realizar a auto reparao, os seguintes passos so executados: deteco, isolamento,
correo e reintegrao. A deteco consiste em identificar um problema, situao ou
comportamento fora dos padres. Assim, possvel isolar a parte do sistema impactada,
de forma a no comprometer o restante do sistema. A correo trata da soluo do problema e a reintegrao consiste na adio da parte afetada e corrigida ao sistema;
Auto Otimizao: Um sistema autonmico busca continuamente formas para otimizar a
utilizao dos recursos, a fim de melhorar o desempenho. Assim, em oposio a um comportamento reativo, o sistema autonmico pode proativamente decidir fazer uma alterao
no sistema. Na auto otimizao, o sistema monitora e gerencia recursos automaticamente
em ambientes imprevisveis, maximizando a utilizao sem a interveno humana;
Auto Proteo: Um sistema autonmico antecipa, detecta, identifica e se protege de ataques. O sistema prev falhas de segurana e tenta imped-los (comportamento proativo).
Algumas aes da auto proteo esto relacionados especificao e gerenciamento do
acesso aos recursos, proteo contra acessos no autorizados, deteco intruses e relato
ao administrador do sistema medida que estes ocorrem.

37

2.3.4

Consideraes Arquiteturais

Segundo Kephart e Chess (2003), sistemas autonmicos so colees interativas de


elementos autonmicos (sistemas individuais constituintes que contm recursos e distribuem
servios para humanos e outros elementos autonmicos). Elementos autonmicos gerenciam
seu comportamento interno e relacionamentos com outros elementos autonmicos conforme polticas estabelecidas. O gerenciamento do prprio sistema resulta em diversas interaes atravs
de elementos autonmicos do auto gerenciamento dos elementos autonmicos individuais. A
Figura 2.5 exibe um elemento autonmico tipicamente composto por um ou mais elementos
gerenciados acoplados a um nico gerenciador autonmico, que os controla. O elemento gerenciado essencialmente equivalente ao encontrado em sistemas no autonmicos, embora ele
possa ser adaptado para habilitar que o gerente autonmico o controle e monitore. O elemento
gerenciado pode ser um recurso de hardware, como uma CPU ou impressora, ou um recurso de
software, como um banco de dados ou um sistema legado.
Cada elemento autonmico responsvel pelo gerenciamento de seus estados internos, comportamento e interaes com o ambiente, que consiste de sinais e mensagens de
outros elementos e do mundo externo. O comportamento de um elemento interno e seus relacionamentos com outros elementos orientado pelos objetivos embutidos por seus projetistas,
por outros elementos que possuem autoridade sobre ele ou subcontratos com elementos pares

Figura 2.5: Estrutura de um elemento autonmico. Fonte: (KEPHART; CHESS, 2003)

38

Tabela 2.1: Funes internas de um gerente autonmico


Funo
Monitorar
Analisar
Planejar
Executar

Definio
Funo do gerente autonmico que coleta, agrega, filtra e reporta detalhes, como mtricas e
topologias, que foram coletadas de recursos gerenciados.
Funo do gerente autonmico que correlaciona e modela situaes complexas, como previso
de sries temporais ou modelos de filas, para compreender o estado atual do sistema.
Funo do gerente autonmico que estrutura as aes necessrias para executar metas e objetivos.
Funo do gerente autonmico que muda o comportamento do recurso gerenciado utilizando
atuadores, baseado em aes recomendadas pela funo de planejamento.

com consentimento explcito. O elemento pode requerer assistncia de outros elementos para
executar metas. Em caso afirmativo, ele ser responsvel por obter os recursos necessrios de
outros elementos e por lidar com casos de exceo, como a falha de um recurso requerido.
Um elemento ou recurso gerenciado um componente do sistema controlado, podendo ser um recurso nico ou uma coleo de recursos, controlado por sensores e atuadores
(IBM, 2004). No entanto, ao contrrio dos elementos no autonmicos, um elemento gerenciado fornece um conjunto de sensores e atuadores que so utilizados pelo gerente autonmico
para monitorar e controlar.
O gerente autonmico um componente que implementa um loop de controle, e
realiza aes de: gerenciar a coleta (filtragem e relatrio de dados coletados pelos sensores);
analisar e aprender sobre o elemento gerenciado; e acumular conhecimento e predizer aes
futuras (IBM, 2004). O gerente autonmico tambm fornece sensores e atuadores para ser
utilizado por outros elementos autonmicos em uma infraestrutura distribuda (SOUSA, 2010).
Segundo IBM (2005), um evento uma mudana significante no estado de um recurso do
sistema. Um evento pode ser gerado por um problema, para a resoluo de um problema ou
para a execuo de uma tarefa. A Tabela 2.1 exibe aes de um ciclo de vida de um gerente
autonmico.
Sensores provm mecanismos para coletar informaes sobre o estado e transies
de um elemento (IBM, 2004). Um sensor consiste em: um conjunto de propriedades que expem informao sobre o estado atual de um recurso gerenciado, acessadas atravs de operaes
padro de consulta; e um conjunto de eventos de gerenciamento (no solicitados, mensagens assncronas ou notificaes) que ocorrem quando o recurso gerenciado sofre alteraes de estado
que merea relato (IBM, 2005).
Atuadores so mecanismos que modificam o estado do elemento conforme decises tomadas pelo sistema autnomo (IBM, 2004). Um atuador consiste em: uma coleo de
operaes padro de escrita que permitem alterar o estado do elemento gerenciado; e uma coleo de operaes que so implementadas pelos gerentes autonmicos que permite aos recursos
gerenciados realizar requisies ao seu gerente (IBM, 2005).
A Figura 2.6 exibe uma arquitetura semelhante arquitetura proposta por Kephart
e Chess (2003), porm com mais detalhes e incluso dos sensores e atuadores. Em essncia, as
duas arquiteturas so idnticas, pois possuem as mesmas funcionalidades e objetivos, alm das
funes de monitorar, analisar, planejar e executar.

39

Figura 2.6: Detalhes funcionais de um gerente autonmico. Fonte: (IBM, 2005)

40

TRABALHOS RELACIONADOS

Elasticidade um ponto chave para a adio de QoS atravs de servios em nuvem.


Ela permite que provedores adicionem ou removam recursos, sem interrupo e em tempo de
execuo, para lidar com variaes nas cargas de trabalho aplicadas. Esses recursos podem ser
adquiridos rapidamente, em alguns casos automaticamente, para atender ao aumento e reduo
da carga de trabalho (MELL; GRANCE, 2009). Aspectos relacionados elasticidade tm recebido muita ateno, tais como tempo de resposta, cargas de trabalho e SLA. Estas questes so
importantes em ambientes de Computao em Nuvem porque provedores precisam adicionar
recursos conforme as cargas de trabalho para prevenir violaes de SLA, e remover recursos
quando a carga de trabalho diminui.
Elasticidade comumente associada escalabilidade de sistemas. Porm existem
diferenas. Escalabilidade definida como a habilidade de um sistema adicionar mais recursos para atender a grandes cargas de trabalho (ISLAM et al., 2012). Elasticidade consiste no
crescimento e reduo de recursos conforme as cargas de trabalho. A escalabilidade somente
considera o crescimento da carga de trabalho, no considera o tempo, e no captura quanto
tempo leva para o sistema atender o nvel de desempenho desejado. Diferentemente, o tempo
para a elasticidade um aspecto central, o qual depende da velocidade de resposta a uma carga
de trabalho.
Embora diversos estudos em Computao em Nuvem tenham explorado o tema
elasticidade (COSTA et al., 2011; SHARMA et al., 2011; SULEIMAN et al., 2012; ISLAM et
al., 2012; GALANTE; BONA, 2012), o processo de anlise do estado da arte para a seleo de
trabalhos relacionados necessita de uma metodologia para sua elaborao e execuo, e assim
evitar algo incompleto ou uma fraca reviso de literatura.
3.1

Adaptao da Reviso Sistemtica

Uma reviso sistemtica uma reviso orientada a um protocolo que sintetiza estudos com foco em um tpico de pesquisa ou relacionado questes chave (RUSSELL; CHUNG;
BALK, 2009). Por meio da utilizao de um processo controlado e formal de pesquisa bibliogrfica, espera-se que os resultados retornem os tpicos mais pesquisados, lacunas, desafios,
processos, ferramentas e tcnicas. Para a execuo da reviso foi utilizado como base o guia
para reviso sistemtica de Kitchenham (2004) com algumas adaptaes (simplificao das atividades, no discusso das vulnerabilidades da reviso e no apresentao dos dados de maneira
estatstica). A Figura 3.1 exibe a adaptao utilizada neste trabalho.
3.1.1

Atividade 1: Planejamento da Reviso


Descreve as atividades necessrias para o planejamento da reviso.

Identificar Necessidade da Reviso

41

Figura 3.1: Fluxo do protocolo da reviso. Fonte: Adaptado de Kitchenham (2004).


Elasticidade comumente citada como uma das vantagens da Computao em Nuvem, porm
no fcil encontrar trabalhos que se aprofundem no assunto.
Desenvolver Protocolo da Reviso
O protocolo de reviso est descrito a seguir em sete subatividades:
(i) Definir Questes de Pesquisa
Aps a leitura dos artigos selecionados, esta reviso sistemtica teve como objetivo
responder s seguintes questes:
Questo Principal: Qual o estado da arte sobre elasticidade em ambientes de Computao
em Nuvem?

42

Questo Secundria 1 (QS1): Como est sendo realizada anlise de desempenho para
elasticidade em ambientes de Computao em Nuvem?
Questo Secundria 2 (QS2): Quais ferramentas, benchmarks e cargas de trabalho so
utilizados para avaliar a elasticidade de ambientes de Computao em Nuvem?
Questo Secundria 3 (QS3): Quais mtricas so mais utilizadas para avaliar a elasticidade de ambientes de Computao em Nuvem?
Questo Secundria 4 (QS4): Quais so as tendncias de pesquisa em Computao em
Nuvem do ponto de vista de elasticidade?
Questo Secundria 5 (QS5): Quais so as estratgias adotadas no provimento da elasticidade em Computao em Nuvem?
(ii) Definir String de Busca
Em todas as consultas foram utilizadas as seguintes palavras chave: "cloud computing", elasticity, "performance analysis", "performance evaluation", metric, benchmark e
tool. Aps alguns refinamentos, a seguinte string de busca foi gerada: ("cloud computing")
AND ("elasticity") AND ("performance analysis" OR "performance evaluation") AND ("metric" OR "benchmark" OR "tool").
(iii) Definir Fontes de Pesquisa
Para esta reviso, os artigos foram pesquisados nos indexadores Science Direct1 ,
ACM Digital Library2 e IEEExplore3 .
(iv) Definir Procedimento de Busca nas Fontes
A mesma string de busca foi utilizada nos trs indexadores por meio do mecanismo
de busca avanada existente em cada um.
(v) Definir Critrios de Incluso e Excluso
Algumas restries foram utilizadas para limitar a busca. Foram pesquisados trabalhos do tipo peridico ou conferncia e os trabalhos deveriam ter sido publicados entre os anos
de 2009 a 2013. A palavra chave elasticity deve constar no trabalho, j que todos os trabalhos
esto em ingls. Novamente, os trabalhos selecionados e no selecionados so verificados para
se garantir que nenhum trabalho tenha sido includo ou excludo erroneamente.
(vi) Definir Procedimento de Seleo
Etapa 1: A estratgia de busca aplicada nas fontes.
Etapa 2: Para selecionar um conjunto inicial de estudos, os ttulos e resumos de
todos os artigos obtidos foram lidos e confrontados com os critrios de incluso e excluso.
1 ScienceDirect

- http://www.sciencedirect.com/
Digital Library - http://dl.acm.org/
3 IEEEXplore - http://ieeexplore.ieee.org
2 ACM

43

Etapa 3: Todos os artigos selecionados na etapa 2 foram lidos por completo e novamente confrontados com os critrios do item (v). Os artigos includos so documentados e
encaminhados para extrao dos dados.
(vii) Definir Procedimento de Extrao dos Dados
A extrao das informaes dos artigos foi realizada com base em um formulrio
com perguntas direcionadas a obter respostas para as questes de pesquisa da reviso. O formulrio consistia de uma planilha com os seguintes itens a serem preenchidos para cada trabalho
lido: ttulo, ano de publicao, veculo de publicao, autores, pas, grupo, palavras chave,
proposta, observaes, tipo de anlise, mtricas, mtricas para elasticidade, carga de trabalho,
ferramentas, trabalhos futuros e reproduo.
3.1.2

Atividade 2: Conduo da Reviso


A conduo da reviso consistiu de quatro subatividades, descritas a seguir:

Identificar Estudos Primrios


A coleta de informaes desta reviso sistemtica ocorreu no ms de julho de 2012.
A execuo das demais atividades ocorreu no segundo semestre de 2012 e atualizada em maio
de 2013. Como resultado obtido, na Science Direct foram encontrados 42 trabalhos, na ACM
Digital Library 67 e no o IEEExplorer 173 trabalhos, totalizando 282 trabalhos.
Selecionar Estudos Primrios
Para um refinamento dos resultados, como critrio de incluso os resumos dos 282
trabalhos foram lidos para que fosse confirmado se eles realmente estavam alinhados com o
tema, e se de alguma forma o termo elasticidade era utilizado no trabalho, restando 82 trabalhos
divididos em 19 do Science Direct, 21 da ACM Digital Library e 42 do IEEExplorer.

Avaliar Qualidade dos Estudos


A avaliao da qualidade dos artigos dos estudos primrios foi feita de forma simplificada verificando apenas a presena ou no de alguma forma de aplicao do conceito elasticidade em Computao em Nuvem, ou mtricas e ferramentas especficas para elasticidade.
Extrair Dados
Uma vez definido o conjunto dos trabalhos selecionados para leitura completa,
efetuou-se o processo de extrao dos dados conforme planejado no item de procedimento
de extrao de dados. Para isto uma planilha para cada artigo foi preenchida com as informaes definidas no item "Definir Procedimento de Extrao dos Dados". Esta atividade durou
aproximadamente quatro meses para ser concluda.

44

3.1.3

Atividade 3: Resultado da Reviso

Consistiu de duas atividades, onde so apresentados os resultados da reviso de


maneira geral e para cada questo planejada.
Apresentar Viso Geral dos Estudos
Apresenta uma viso geral dos resultados obtidos pela reviso. Estes resultados
mostram informaes gerais no diretamente associada elasticidade, mas servem para contextualizar a poca da realizao da reviso.
Apresentar Resultados das Questes
Apresenta o resultado das questes de pesquisa (questes principal e secundrias).
3.2

Viso Geral dos Estudos

Aps a leitura dos artigos selecionados, os resultados foram consolidados conforme


o planejamento. Algumas informaes foram identificadas antes da consolidao das questes
pesquisadas, possibilitando uma viso geral sobre os estudos de elasticidade em Computao
em Nuvem.
Segundo o National Institute of Standards and Technology (NIST), elasticidade a
capacidade de rpido provisionamento e desprovisionamento, com capacidade de recursos virtuais praticamente infinita e quantidade adquirvel sem restrio a qualquer momento (MELL;
GRANCE, 2009). Herbst, Kounev e Reussner (2013) propuseram uma definio mais atual para
a elasticidade, definida como o grau no qual um sistema capaz de se adaptar variaes na
carga de trabalho pelo provisionamento e desprovisionamento de recursos de maneira autonmica, de modo que em cada ponto no tempo os recursos disponveis combinem com a demanda
da carga de trabalho o mais prximo possvel. Nesta reviso sistemtica diversas definies de
elasticidade foram identificadas, descritas na Tabela 3.1.
A Tabela 3.2 exibe a quantidade de publicaes para cada ano, considerando tanto
peridicos quanto conferncias. O ano de publicao considerado foi o que estava registrado
no prprio trabalho como data de publicao. O perodo considerado foram os anos de 2009 a
2013. No momento da obteno dos artigos, alguns trabalhos ainda estavam na situao de "in
press". provvel que ao longo deste trabalho estes artigos j tenham sido publicados.
Percebe-se que houve um acrscimo nas publicaes em 2011, alcanando o mximo em 2012 com 37. Talvez este aumento deveu-se ao fato que muitos grupos de trabalho
obtiveram resultados de suas pesquisas em Computao em Nuvem neste perodo de tempo.
Em 2013 foram identificados apenas 11 trabalhos publicados, mas este nmero deve aumentar
devido publicao de artigos em desenvolvimento. Alm disso, considerando que os artigos
foram selecionados em maio de 2013, provavelmente existiro mais trabalhos ao longo do ano.

45

Tabela 3.1: Definies de elasticidade identificadas durante a reviso


Autor
Cooper et al. (2010)
Fito, Goiri e Guitart (2010)
Aisopos, Tserpes e Varvarigou (2011)

Espadas et al. (2011)


Li et al. (2011)
Perez-Sorrosal et al. (2011)
Garg, Versteeg e Buyya (2011, 2012)

Han et al. (2012)


Islam et al. (2012)
Pandey et al. (2012)

Definio de Elasticidade
Capacidade de adicionar novas instncias e distribuir a carga de trabalho para estas instncias.
Habilidade de adquirir e liberar recursos de granularidades variadas
de acordo com a carga da trabalho em um curto intervalo de tempo.
Capacidade do provedor alterar dinamicamente a quantidade de recursos de CPU, memria e espao em disco para uma determinada
tarefa.
Habilidade de criar um nmero varivel de instncias de mquinas
virtuais que dependem da demanda da aplicao.
Habilidade do sistema de se adaptar mudanas repentinas na carga
de trabalho.
Capacidade de aumentar e diminuir a quantidade de rplicas sem interromper o processamento em andamento.
Capacidade de um servio escalar durante perodos de pico caracterizada pelo tempo mdio para expandir ou contrair a capacidade do
servio e capacidade mxima do servio.
Habilidade de escalar recursos de maneira adaptvel para cima e para
baixo para atender variao da demanda das aplicaes.
Capacidade de provisionar recursos automaticamente e rapidamente.
Habilidade de um sistema expandir e contrair sem problemas.

Tabela 3.2: Quantidade de trabalhos publicados por ano de publicao


Ano
2009
2010
2011
2012
2013
in press at o momento da coleta

Quantidade
2
5
23
37
11
4

A consulta foi refeita em julho de 2014, resultando em um acrscimo natural de trabalhos. Porm no foram identificados trabalhos para a definio de mtricas especficas para a medio
da elasticidade, nem metodologias para sua avaliao.
A maioria dos trabalhos foram originados do peridico Future Generation Computer Systems (FGCS)4 , com 13 publicaes. Estas publicaes so recentes, tendo em vista que
a maioria de seus trabalhos so de 2012 (4) e 2013 (6), os quais no momento da seleo, 7
estavam no estado de in press. Muitas conferncias esto comeando a publicar trabalhos em
nuvem nos ltimos anos e a tendncia que apaream mais conferncias especficas. Os veculos de publicao retornados pela pesquisa foram bem diversificados. A exceo do Future
Generation Computer Systems, os demais veculos obtiveram uma, duas ou trs publicaes.
A contabilizao dos pases foi realizada da seguinte forma: para cada pas de cada
grupo de pesquisa em uma publicao, incrementou-se a quantidade de publicao do pas.
Portanto, alguns artigos contabilizaram mais de um pas. A Figura 3.2 apresenta as publicaes
por pas. Os pases que mais se destacaram nas publicaes relacionadas elasticidade em
4 Future

Generation Computer Systems (FGCS) - http://www.journals.elsevier.com/future-generationcomputer-systems/

46

Figura 3.2: Publicaes sobre elasticidade em Computao em Nuvem de 2009 a 2013 por pas.
Computao em Nuvem foram: Estados Unidos (16), Austrlia (15), China (10) e Espanha (9).
Apesar dos Estados Unidos possurem mais publicaes, estas foram de diferentes grupos de
pesquisas e associadas a empresas.
Ao todo foram identificados 108 grupos de pesquisas distribudos entre 24 pases.
Os grupos que apresentaram mais publicaes em Computao em Nuvem relacionados elasticidade foram Cloud Computing and Distributed Systems (CLOUDS) Laboratory5 e Dept. Arquitectura de Computadores y Automtica6 , que possuem muitas publicaes devido a atuao
em diversas reas de pesquisa em Computao em Nuvem. Coincidentemente os autores com
o maior nmero de publicaes so de grupos consolidados de pesquisa em Computao em
Nuvem. Estes autores so de grupos da Austrlia e Espanha, e seus trabalhos no so restritos
apenas elasticidade.
3.3

Resultados das Questes de Pesquisa


O resultado e anlise das questes de pesquisa esto descritos a seguir:

Questo Principal: Qual o estado da arte sobre elasticidade em ambientes de Computao


em Nuvem?
Em todos os trabalhos os termos elasticidade e anlise de desempenho ocorreram.
Alguns trabalhos desenvolveram experimentos especificamente para a elasticidade, enquanto
que a maioria utilizou recursos de ambientes para a elasticidade ou propuseram solues elsticas. De maneira geral, a maioria dos trabalhos em Computao em Nuvem relacionados
elasticidade englobaram os seguintes temas:
Arquiteturas para Computao em Nuvem;
5 Cloud
6 Dept.

Computing and Distributed Systems (CLOUDS) Laboratory - http://www.cloudbus.org


Arquitectura de Computadores y Automtica - http://dsa-research.org

47

Estratgias para alocao de recursos;


Ferramentas para propsito geral;
Definio da tarifao de servios na nuvem;
Aplicaes de alto desempenho e web;
Ambientes diversificados (predominantemente Amazon).
De maneira mais especfica, algumas categorias de reas de pesquisa foram identificadas nos trabalhos:
Elasticidade: Mtricas para medir a elasticidade foram propostas por Islam et al. (2012),
Li et al. (2011) e Calheiros et al. (2012). Para avaliar a elasticidade, os experimentos
realizados utilizaram cargas de trabalho variveis (TIRADO et al., 2011);
Alocao de recursos: Estratgias e polticas para a alocao de recursos foram propostas,
variando desde modelos matemticos, anlise dos recursos disponveis, modelos multiinquilinos e localizao geogrfica, dentre outros (ESPADAS et al., 2011; PANIAGUA;
SRIRAMA; FLORES, 2011; BRYANT et al., 2011; LI; TORDSSON; ELMROTH, 2011;
OTTO; STANOJEVIC; LAOUTARIS, 2012; CALHEIROS; RANJAN; BUYYA, 2011).
Geralmente mtricas estavam associadas s polticas, seja para anlise dos recursos, seja
para tomada de deciso para a alocao;
SLA: Os trabalhos pesquisados utilizaram a elasticidade para garantir QoS. Alguns frameworks foram identificados para avaliao do SLA: YCSB (COOPER et al., 2010), OPTIMIS (FERRER et al., 2012) e SMICloud (GARG; VERSTEEG; BUYYA, 2011, 2012).
Tambm foram estudados seus efeitos diante de variaes em cargas de trabalho distintas
para analisar os efeitos sobre a manuteno do SLA;
Tarifao: As pesquisas em tarifao de servios na nuvem aparecem ainda de maneira
muito variada, geralmente propostas de tarifao baseadas na utilizao de recursos (HAN
et al., 2012). Um ponto a ser considerado a minimizao dos custos entre os modelos
de servios de provedores (HE et al., 2010; HONG; XUE; THOTTETHODI, 2012);
High Performance Computing (HPC): A Computao de Alto Desempenho surgiu em
vrios trabalhos, tanto do ponto de vista de simplesmente executar aplicaes HPC na nuvem quanto ao desenvolvimento de metodologias (MAUCH; KUNZE; HILLENBRAND,
2012; LU; JACKSON; BARGA, 2010; ZHAI et al., 2011). Raveendran, Bicer e Agrawal
(2011) utilizaram aplicaes Message Passing Interface (MPI) elsticas para um framework de nuvem. Moreno-Vozmediano, Montero e Llorente (2011) utilizaram o acesso
ubquo de recursos na nuvem para implantar um cluster no topo de uma infraestrututra de
nuvem para resolver aplicaes do tipo Many-Task Computing (MTC);
Computao Autonmica: Muitos trabalhos indiretamente utilizaram recursos ou princpios de Computao Autonmica, tentando reduzir a interveno humana (ETCHEVERS

48

et al., 2011; GHANBARI et al., 2011; NIU et al., 2012; PANDEY et al., 2012). A utilizao de agentes para coleta de informaes, principalmente mtricas associadas a algum
recurso computacional do ambiente, para posterior tomada de deciso baseada em regras,
foi uma tcnica muitas vezes utilizada para promover elasticidade;
Computao Mvel: A nuvem pode ser utilizada para melhorar o desempenho de aplicaes em dispositivos mveis atravs do processamento e armazenamento de maneira
elstica na nuvem (NIEHORSTER et al., 2011). A Internet of Things (IoT) deve aumentar a interao entre a nuvem e os diversos dispositivos mveis (PANIAGUA; SRIRAMA;
FLORES, 2011; FLORES; SRIRAMA; PANIAGUA, 2011);
Anlise de Desempenho: Avaliaes de desempenho orientadas a cargas de trabalho em
nuvens privadas e nuvens pblicas foram alvos de algumas pesquisas em (GAO et al.,
2011; TUDORAN et al., 2012);
Arquitetura: Abordagens para segurana (LI et al., 2012) e para o gerenciamento de
mquinas virtuais (MONTERO; MORENO-VOZMEDIANO; LLORENTE, 2011) foram
propostas. Muitos trabalhos utilizaram aspectos de integrao entre ambientes, como
GRID e nuvens. Alguns frameworks e arquiteturas foram propostos para gerenciar a alocao de recursos utilizando balanceadores de carga e brokers (TORDSSON et al., 2012).
Dawoud, Takouna e Meinel (2011) propuseram uma arquitetura de escalonamento para
mquinas virtuais elsticas. Etchevers et al. (2011) utilizaram um modelo arquitetural de
aplicao e protocolo de auto configurao que automatiza a distribuio de aplicaes
distribudas legadas. Lucas-Simarro et al. (2012) propuseram uma arquitetura baseada
em diferentes estratgias de escalonamento atravs de vrias nuvens utilizando critrios
de otimizao, restries do usurio e do ambiente.
3.3.1

Questo Secundria 1 (QS1): Como est sendo realizada anlise de desempenho


para elasticidade em ambientes de Computao em Nuvem?

Neste trabalho foram identificados trs tipos de experimentos, conforme as definies de Jain (1991): experimentao, modelagem analtica e simulao. Alm disso, esses tipos
podem ocorrer de maneira combinada. A Tabela 3.3 descreve o quantitativo dos tipos de experimentos por publicao. Dos 82 artigos pesquisados, 6 eram do tipo survey e no possuiam
nenhum experimento. Estes trabalhos no esto inclusos na Tabela 3.3.
A maioria dos trabalhos faz algum tipo de experimentao, seja experimentao
simples ou combinada com outra tcnica. comum que os experimentos em elasticidade em
Computao em Nuvem ocorram na Amazon EC2. Diversos artigos fizeram a experimentao combinando tipos de experimentos. Isso implica em uma qualidade maior dos trabalhos,
pois eles tornam-se mais completos e possvel a comparao entre trabalhos iguais mas com
vises diferentes. Os trabalhos utilizaram o CloudSim (CALHEIROS et al., 2011) ou traos
computacionais (traces) para realizar simulaes.
Apesar dos experimentos serem bem variados, existem deficincias no projeto dos
experimentos. Os objetivos, servios e resultados dos experimentos so informados. Contudo,

49

Tabela 3.3: Tipos de experimentos identificados nas publicaes


Tipo de Experimento
Experimentao
Modelagem Analtica
Simulao
Experimentao e Modelagem Analtica
Simulao e Modelagem Analtica
Experimentao e Simulao
Total

SD
7
0
0
8
2
0
17

ACM
11
2
0
2
3
1
19

IEEE
15
3
7
9
5
1
40

Total por Tipo de Experimento


33
5
7
19
10
2
76

o planejamento no detalhado nas publicaes. Em alguns trabalhos, a justificativa para a seleo das mtricas, dos parmetros, e ferramentas utilizadas na configurao dos experimentos
no so informadas. Em relao aos resultados, muitas vezes estes so apenas dispostos em
tabelas ou grficos e os comentrios relacionados so superficiais.
O projeto experimental utilizado nos experimentos est diretamente associado
carga de trabalho ou benchmark utilizados, o que significa que se no possurem algum mecanismo de configurao da carga, o experimento fica muito dependente das ferramentas. Em
geral os experimentos dos trabalhos identificados utilizaram o SPECweb2005 (WEE; LIU,
2010; PEREZ-SORROSAL et al., 2011; BRYANT et al., 2011) ou o TPC-W (KOSSMANN;
KRASKA; LOESING, 2010; ISLAM et al., 2012; HAN et al., 2012), que permitem configuraes das cargas de trabalho.
A maneira na qual os experimentos foram conduzidos requer um projeto mais detalhado, pois est diretamente associado ao esforo e custo do experimento. A anlise e interpretao dos dados em vrios trabalhos foi bastante completa, porm em alguns casos foi
meramente descritiva e geral, o que pode deixar concluses em aberto. Todos esses fatores
prejudicam a reproduo dos experimentos e consequente comparao entre trabalhos.
Por outro lado, a quantidade de 31 trabalhos com tcnicas de avaliao combinadas
proporciona uma qualidade maior dos trabalhos. Essa combinao de tcnicas de avaliao
permite que se possa ter uma viso terica, muitas vezes do ponto de vista matemtico, e prtica
dos experimentos.
3.3.2

Questo Secundria 2 (QS2): Quais ferramentas, benchmarks e cargas de trabalho


so utilizados para avaliar a elasticidade de ambientes de Computao em Nuvem?

Para facilitar a anlise dos resultados desta questo, os seguintes grupos foram considerados: infraestrutura, benchmarks, cargas de trabalho, aplicaes, traos computacionais,
simulao, solvers, servidores web, banco de dados e linguagens de programao.
Para a construo e configurao de um ambiente de Computao em Nuvem so
necessrias vrias ferramentas. Consideramos neste trabalho, apenas para fim de categorizao,
ambientes e seus diversos produtos/servios/ferramentas como ferramentas.
Algumas ferramentas so utilizadas para a construo de um ambiente de nuvem,
ou proviso de servios na nuvem. Exemplos de ambientes identificados foram Amazon EC2,

50

Tabela 3.4: Principais ferramentas identificadas para provisionamento de servios na nuvem


Descrio
Amazon EC2
Amazon S3
OpenNebula
Amazon RDS
ElasticHosts
Microsoft Azure
Amazon AutoScaling
Amazon CloudWatch
Aneka
Eucalyptus
GoGrid

Quantidade
27
7
6
4
4
4
3
3
3
3
3

Descrio
Google APP ENGINE
Amazon EBS
Amazon Elastic Load Balancer
Amazon SIMPLE DB
FlexiScale
Ganglia
IBM Cloud
Nimbus
Rackspace
Rightscale
Scicloud

Quantidade
3
2
2
2
2
2
2
2
2
2
2

OpenNebula, Microsoft Azure, Eucalyptus, Aneka, ElasticHosts, Google App Engine e Rightscale. Todos esses ambientes foram identificados em pelo menos dois trabalhos na pesquisa. A
Tabela 3.4 exibe os ambientes e ferramentas que mais se destacaram nesta pesquisa.
Especificamente algumas ferramentas possuem produtos que tm sido largamente
utilizados atualmente, no somente para servios de instncias. Amazon EC2 foi o ambiente
mais utilizado, e possui vrios servios de diversas reas: instncias (EC2), escalonamento
(AutoScaling), monitoramento (CloudWatch), banco de dados (S3, MySQL, EBS, RDS, SimpleDB), e balanceamento de carga (Elastic Load Balancing), entre outros. RackSpace possui
servios de instncias e dados. Microsoft Azure tambm surge como uma opo de provedor,
com alguns estudos que utilizaram instncias, banco de dados e monitoramento.
O Amazon CloudWatch7 oferece monitoramento de recursos em nuvem. Tanto
desenvolvedores quanto administradores do sistema podem utiliz-lo para coletar e monitorar
mtricas, que podem ser utilizadas para reagir imediatamente situaes e manter servios funcionando de acordo com o SLA. Assim possvel obter uma visibilidade geral da utilizao de
recursos e do desempenho dos servios e aplicativos. O Auto Scaling8 um servio que permite escalar a capacidade da instncia para mais ou para menos de forma automtica. Mdia de
utilizao de CPU, rede e utilizao de disco so exemplos de mtricas utilizadas para escalar
um servio. Assim, o nmero de instncias utilizadas aumenta facilmente durante picos de demanda para manter o desempenho, e diminui automaticamente durante a reduo da demanda
para minimizar custos. O Auto Scaling especialmente til para aplicativos que experimentam
variabilidade de uso por hora, dia ou semana, e ativado pelo Amazon CloudWatch. O Elastic Load Balancing9 distribui automaticamente o trfego de entrada dos aplicativos em vrias
instncias do Amazon EC2. Ele permite que se atinja uma maior tolerncia a falhas nos servios, fornecendo uma capacidade de equilbrio entre a carga de trabalho e a resposta ao trfego
de entrada dos aplicativos. Ele detecta instncias com problemas de integridade dentro de um
conjunto e redireciona automaticamente o trfego para instncias ntegras at que as instncias
com problemas sejam restauradas. Alm disso possvel utilizar o Elastic Load Balancing entre
7 Amazon

CloudWatch - http://aws.amazon.com/pt/cloudwatch/
Scaling - http://aws.amazon.com/pt/autoscaling/
9 Elastic Load Balancing - http://aws.amazon.com/pt/elasticloadbalancing/
8 Auto

51

Tabela 3.5: Benchmarks e cargas de trabalho identificadas


Ferramenta
TPC-W
SPECweb2005
YCSB
Blast, Cloudstone, Embarrassingly Distributed (ED), NAS Grid Benchmarks (NGB), NAS
Parallel Benchmarks (NPB)
BT-IO, Httperf, Intel MPI Bench, IOR, JMeter, TPC-C
ALS, Badabing, Bonnie, Bonnie++, Hdparm Tool, HPCC, Iperf, Linpack, LMBench, Lublin99, PostMark, SPECjvm 2008, TPC-E, TPC-H, UBENCH, Whetstone, WSTest

Quantidade
9
8
6
4
3
2

zonas de disponibilidade variadas, melhorando a disponibilidade.


Aplicaes de proxy e balanceadores de carga tambm foram utilizadas: HAProxy
(3), Amazon Elastic Load Balancer (2), Nginx (2), e Squid e Amoeba com somente uma ocorrncia cada. A maioria dessas ferramentas foi utilizada para prover alguma soluo autonmica,
onde alguma estratgia de balanceamento de carga foi utilizada.
Trabalhos relacionados anlise de desempenho utilizaram benchmarks e cargas
de trabalho nos experimentos. Muitos benchmarks e cargas de trabalho foram identificados na
reviso, descritos na Tabela 3.5. Entre eles destacaram-se o TPC-W (HAN et al., 2012; KOSSMANN; KRASKA; LOESING, 2010; ISLAM et al., 2012) e SPECweb2005 (FITO; GOIRI;
GUITART, 2010; WEE; LIU, 2010; PEREZ-SORROSAL et al., 2011; BRYANT et al., 2011).
YCSB um framework para facilitar comparaes de desempenho de sistemas de
servios de dados na nuvem (COOPER et al., 2010). CloudStone auxilia avaliaes de desempenho na nuvem, e implementa um modelo real de aplicaes web a ser implantado em um
IaaS (ACETO et al., 2013). Embarrassingly Distributed (ED) e NAS Grid Benchmarks (NGB)
estavam entre os mais utilizados benchmarks (MORENO-VOZMEDIANO; MONTERO; LLORENTE, 2009, 2011; MONTERO; MORENO-VOZMEDIANO; LLORENTE, 2011; TORDSSON et al., 2012). NAS Parallel Benchmarks (NPB) so um pequeno conjunto de programas
projetados para auxiliar na anlise de desempenho de computadores paralelos. Particularmente
Embarrassingly Distributed (ED) and BT-IO so parte do NPB, mas eles so to aplicados que
justificou sua utilizao separada.
Message Passing Interface (MPI) foi destacado em Zhai et al. (2011). O MPI um
padro de comunicao de dados em computao paralela e sua aplicao em conjunto com
Computao em Nuvem foi identificada, no s relacionado elasticidade, mas sua utilizao
em nuvens computacionais. Alguns benchmarks para MPI foram identificados na pesquisa,
como o Intel MPI Benchmark e MPI-Blast, ambos em Zhai et al. (2011).
Algumas dessas ferramentas foram utilizadas para testes de carga em aplicaes,
mostrando-se eficientes para experimentos com cargas de trabalho em ambientes de Computao em Nuvem: Httperf (FITO; GOIRI; GUITART, 2010; BRYANT et al., 2011; LUCASSIMARRO et al., 2012), JMeter (ESPADAS et al., 2011; ISLAM et al., 2012) e Tsung (FLORES; SRIRAMA; PANIAGUA, 2011).
Microbenchmarks so alternativas para benchmarks e cargas de trabalho. Eles so

52

benchmarks simplificados. Geralmente so programas escritos e executados para a gerao de


cargas de trabalho e coleta de mtricas. Os microbenchmarks foram bem variados nas reas
de atuao: benchmarks sintticos (TUDORAN et al., 2012), microbenchmarks (ZHAI et al.,
2011), problemas de ordenao (LUCAS-SIMARRO et al., 2012), renderizao (AISOPOS;
TSERPES; VARVARIGOU, 2011), teste de carga (NIEHORSTER et al., 2011), Bag-of-Tasks
(BoT) e GRID (CALHEIROS; RANJAN; BUYYA, 2011), cargas de trabalho simuladas (LI et
al., 2012) e cargas de trabalho sintticas (NIE; XU, 2009).
Uma forma de analisar o comportamento de um ambiente por meio da execuo
de aplicaes. Tais aplicaes eram das mais variadas reas: computao grfica (EMEAKAROHA et al., 2012), redes sociais (OTTO; STANOJEVIC; LAOUTARIS, 2012), aplicaes
web (LUCAS-SIMARRO et al., 2012) e funes matemticas (GAO et al., 2011). A maioria
das aplicaes apareceu apenas uma vez na pesquisa. As aplicaes que obtiveram mais de uma
ocorrncia na pesquisa foram: A-Brain (RAVEENDRAN; BICER; AGRAWAL, 2011; TUDORAN et al., 2012), GASOLINE (KREBS; MOMM; KOUNEV, 2012; LI et al., 2013), NAMD
(LI et al., 2012; WONG; GOSCINSKI, 2012), WCD (LI et al., 2013, 2012) e Zookeeper (CRUZ
et al., 2013; DAS; AGRAWAL; ABBADI, 2013).
Traos computacionais so dados coletados de aplicaes ou sistemas. A utilizao
de traos em Computao em Nuvem permite que diferentes aspectos do ambiente possam
ser analisados, como servios, disponibilidade do ambiente, utilizao dos recursos, estudo de
padres e escalabilidade das aplicaes. Nesta pesquisa, os traos foram utilizados em vrios
experimentos. Muitas vezes foram extraes de dados de sistemas, como logs de aplicao.
Algumas aplicaes utilizaram traos para experimentos na simulao de algum aspecto do
ambinte. A maioria dos traos apareceram apenas uma nica vez neste estudo. Os traos com
maior ocorrncia foram: Grid Workloads Archive (AuverGrid), Wikipedia, Fifa 98 e Google. A
Tabela 3.6 descreve os traos computacionais identificados, nas mais diversas reas: provedores
de Computao em Nuvem, multimdia, educao, infraestrutura, web sites e redes sociais.
Considerando as ferramentas para a simulao de ambientes de Computao em
Nuvem, destacam-se o CloudSim (CALHEIROS et al., 2011) e o D-Cloud (BANZAI et al.,
2010). Outras ferramentas identificadas foram Alea e GridSim.
Alguns estudos fizeram uso de modelagem analtica e utilizaram solvers para a resoluo de problemas matemticos. A ferramenta mais utilizada foi o AMPL (LI; TORDSSON; ELMROTH, 2011; LUCAS-SIMARRO et al., 2012; TORDSSON et al., 2012), com 3
ocorrncias, seguida pelo CPLEX (TORDSSON et al., 2012), Gurobi (LI; TORDSSON; ELMROTH, 2011), LP Solver (DENG et al., 2012), Matlab (KOUSIOURIS et al., 2012), MINOS
(LUCAS-SIMARRO et al., 2012), MKL Library (MAUCH; KUNZE; HILLENBRAND, 2012),
Octave (KOUSIOURIS et al., 2012), Optimj (PANIAGUA; SRIRAMA; FLORES, 2011) e SSJ
(KREBS; MOMM; KOUNEV, 2012), todos com uma nica ocorrncia.
Alguns trabalhos utilizaram servidores web. O Apache Web Server e Apache Tomcat foram os mais utilizados, com 8 e 7 ocorrncias respectivamente. As demais ferramentas,
em ordem de ocorrncia, foram: Jonas (2), Glassfish (1) e JBOSS (1).
Banco de dados tipicamente so utilizados para armazenamento de informaes.

53

Tabela 3.6: Traos computacionais identificados


Descrio
Amazon EC2 (GARG; VERSTEEG; BUYYA, 2011)
Clarknet (HONG; XUE; THOTTETHODI, 2012)
Fifa 98 (GHANBARI et al., 2011; ALI-ELDIN et al.,
2012)
Google (ALI-ELDIN et al., 2012; XU; LI, 2013)
Grid Workloads Archive (NIE; XU, 2009; MICHON;
GOSSA; GENAUD, 2012)
Intrepid Cluster Argonne National Laboratory (ANL)
(XU; LI, 2013)
Lastfm (TIRADO et al., 2011)
NASA (HONG; XUE; THOTTETHODI, 2012)
Preo de Carbono (iPath Global Carbon) (DENG et
al., 2012)
Rackspace (GARG; VERSTEEG; BUYYA, 2011)

Descrio
RIKEN Integrated Cluster of Clusters (RICC) Japan
(XU; LI, 2013)
Simulao de Vrus (WONG; GOSCINSKI, 2012)
Taxa de Requisio Servio da HP (VDR) (DENG et
al., 2012)
Twitter (OTTO; STANOJEVIC; LAOUTARIS, 2012)
UC Berkeley (HONG; XUE; THOTTETHODI, 2012)
Vod UUSee (NIU et al., 2012)
Website Urdue Universitys College of Engineering
(HONG; XUE; THOTTETHODI, 2012)
Wikimedia Web Traces (HONG; XUE; THOTTETHODI, 2012)
Wikipedia (CALHEIROS; RANJAN; BUYYA, 2011;
FERRER et al., 2012; CASALICCHIO; SILVESTRI,
2013)
Windows Azure (GARG; VERSTEEG; BUYYA,
2011)

Alguns benchmarks e geradores de carga de trabalho requerem um banco de dados para o povoamento de log de operaes. A elasticidade em alguns casos era avaliada pela capacidade
de processamento de consultas no banco de dados, geralmente submetida pelos benchmarks e
geradores de carga de trabalho. Nesta categoria foram includos servidores de banco de dados e ferramentas para manipulao de dados. As ferramentas mais utilizadas foram: MySql
(9), Hadoop (4), Cassandra (2) e HBase (2). Outras ferramentas identificadas com apenas uma
ocorrncia foram: JDBC, JoSQL, NoSQL e PostgreSQL.
Outra categoria identificada foram ferramentas relacionadas linguagens de programao, como APIs, componentes e bibliotecas. A maioria dessas linguagens foi utilizada para
a construo de microbenchmarks e scripts para apoiar tarefas como a coleta de informao e
comunicao, no necessariamente diretamente relacionadas elasticidade, mas a funcionalidades do sistema e suporte. Um exemplo a linguagem Java, que foi a mais utilizada, com 8
ocorrncias. Python obteve 3 ocorrncias. Aplicaes Android, servlets e shell script tambm
foram identificadas. Outras linguagens de programao tambm foram utilizadas, mas com
apenas uma ocorrncia: c, c++ and php.
3.3.3

Questo Secundria 3 (QS3): Quais mtricas so mais utilizadas para avaliar a


elasticidade de ambientes de Computao em Nuvem?

Mtricas so sempre utilizadas para analisar o desempenho. Existem diversos tipos e categorias de mtricas, e muitas delas podem ser utilizadas para avaliar a elasticidade.
Algumas mtricas so de propsito geral, enquanto que outras so especficas para elasticidade.
Mtricas Gerais
Muitas mtricas de propsito geral foram identificadas nessa pesquisa. Estas mtri-

54

cas so encontradas em diversas reas relacionadas a redes de computadores e sistemas distribudos, e no so limitadas somente s mtricas identificadas neste trabalho.
Raj Jain definiu algumas categorias de mtricas: tempo de resposta, throughput,
utilizao, disponibilidade, aquisio, confiabilidade e escalabilidade (JAIN, 1991). A maioria
das mtricas citadas foram, por categoria: tempo de resposta (latncia, alocao, desalocao,
acesso, ociosidade, resposta), throughput (requisies por segundo, Megabytes por segundo),
utilizao (recursos, percentagem de CPU), disponibilidade (perodo de tempo em que um sistema est indisponvel e perodo de tempo em que um sistema est disponvel), aquisio (custo,
desempenho do custo), confiabilidade (quantidade de violaes) e escalabilidade. Escalabilidade est tambm na classificao de Menasce, Dowdy e Almeida (2004). Nesta categoria as
mtricas mais citadas foram: demanda, SLA, overhead, capacidade total de infraestrutura, custo
e energia.
As principais mtricas foram orientadas a recursos, como CPU e memria. O percentual de utilizao de CPU foi a mtrica mais citada, mas utilizao de mmria, acesso a
disco e violaes de QoS tambm foram identificadas. Mtricas de desempenho tambm foram
destacadas, como throughput, expresso em Megabytes por segundo.
Algumas mtricas so compartilhadas entre grupos diferentes dependendo do contexto de utilizao, por exemplo, tempo de alocao/desalocao de recursos pode estar relacionado mtrica de tempo de resposta e escalabilidade. Algumas tcnicas estatsticas so muito
utilizadas na exposio e interpretao dos resultados de experimentos. As mais encontradas
foram mdia, desvio padro, varincia e erro de utilizao de recursos e throughput.
O custo e a tarifao so aspectos que muitas vezes esto associados nuvens pblicas devido ao seu carter de aquisio de recursos. A definio de uma forma de se precificar a
utilizao de recursos na nuvem ainda no padronizada, e normalmente cada provedor de servios possui a sua prpria estratgia. Custos totais, custos da infraestrutura, custos por hora so
exemplos identificados. A tarifao dos servios de um provedor muitas vezes est associada
utilizao de recursos, como CPU, memria e armazenamento.
O consumo de energia um dos temas principais em ambientes de Computao
em Nuvem. Nos trabalhos analisados foram identificadas as seguintes mtricas para medir
eficincia energtica: Data Center Infrastructure Efficiency (DCiE), Power Usage Efficiency
(PUE) e Data Center Performance per Energy (DPPE) (GARG; VERSTEEG; BUYYA, 2012;
TUDORAN et al., 2012). DCiE definido como o percentual da potncia total do equipamento
de TI (computadores, storages e rede). O PUE inversamente proporcional ao DCiE. DPPE
correlaciona o desempenho do datacenter com emisses de carbono. O overhead de energia foi
analisado em um trabalho como uma maneira de se comparar experimentos, com a medio da
potncia e consumo de energia sendo realizada atravs de um dispositivo fsico (LI et al., 2012).
Considerando a latncia como a diferena entre o incio de um evento e o incio
real do evento, onde seus efeitos se tornam perceptveis, muitos eventos na nuvem utilizam
esta mtrica como uma maneira de se medir esse tempo. Nesta pesquisa foram identificadas
latncias relacionadas migrao de mquinas virtuais, atualizao e leitura de dados. Aspectos
de QoS relacionados latncia das aplicaes foram identificados e quantificados, muitas vezes

55

Tabela 3.7: Mtricas especficas para elasticidade


Alocao
Capacidade

Custo

QoS
Utilizao de Recursos

Escalabilidade
Tempo

Computing Resource Allocation Meter (CRAM), Alocao de Recursos


Fornecimento Disponvel, Capacidade, Aumento da Capacidade, Capacidade de
Computao, Capacidade de Servio Mxima, Servio Disponvel, System Capacity Meter (SCM), System Effective Capacity Meter (SEC), System Load Meter
(SLM), Total Capacity of Infrastructure
Custo / Taxa de Desempenho, Custo da Largura de Banda, Efetividade do Tempo
e Custo (Horas $ / instncias), Custo de Migrao, Custo Total de Implantao,
Preo Total da Infraestrutura
% de Violaes, Overhead de Reconfigurao da Infraestrutura, Ganho de Desempenho, SLA, System Performance Meter (SPM)
Percentual de Violaes, Estresse da Nuvem, Computing Resource Utilization Meter (CRUM), Demanda, Ociosidade, Aumento da Ociosidade, Nmero de Mquinas Virtuais Sobreprovisionadas, Nmero de Mquinas Virtuais Subprovisionadas,
Nmero de Mquinas Virtuais, Taxa de Sobreprovisionamento, Sobreutilizao,
Subutilizao, Utilidade Global, Performance Resource Ratio (PRR), Utilizao
Possvel, Nmero Mdio de Servidores
Effective Scalable Range (ESR), Effective System Scalability (ESS), Escalabilidade,
Scale-up
Boot, Criao, Deleo, Tempo Mdio para Retrao da Capacidade de Servio,
Tempo Mdio para Expandir a Capacidade de Servio, Provisionamento, Alocao
de Recursos, Desalocao de Recursos, Incializao, Suspenso, Tempo de Reinicializao da Suspenso, Tempo/Recursos no Tempo, Aquisio Total, Liberao
Total

associados a um SLA ser a mantido pela aplicao ou ambiente. Geralmente QoS est associado
a regras de monitoramento. Por fim, mtricas associadas ao overhead e confiabilidade foram
tambm identificadas nesta reviso.
Mtricas Especficas para Elasticidade
Em relao medidas especficas para elasticidade, a pesquisa retornou diversas
mtricas descritas na Tabela 3.7. Muitas dessas mtricas so de recursos do sistema associadas
elasticidade, ou seja, para medir ou promover a elasticidade. Algumas so especficas para a
elasticidade, como o caso de mtricas relacionadas sobreutilizao e subutilizao. Islam et
al. (2012) definiram mtricas de elasticidade baseadas em penalidades para a sobreutilizao e
a subutilizao dos recursos. Gao et al. (2011) descreveram um conjunto de mtricas (CRAM,
CRUM, SPM, SLM, SCM, SEC, ESS e ESR) para analisar a escalabilidade e elasticidade em
ambientes de SaaS. Estas mtricas esto associadas alocao de recursos, utilizao dos recursos, desempenho do sistema, carga do sistema, capacidade efetiva do sistema, escalabilidade
efetiva do sistema, e faixa efetiva de escalabilidade.
Garg, Versteeg e Buyya (2012) descreveram uma mtrica para elasticidade como o
quanto um servio de nuvem pode ser escalado durante intervalos de pico. Esta mtrica pode
ser definida por dois atributos: tempo mdio para expandir ou contrair a capacidade do servio
e a capacidade mxima do servio (nmero mximo de unidades computacionais que podem
ser providas em perodos de pico). Bai et al. (2011) descrevem a mtrica Performance Resource
Ratio (PRR), ou Taxa de Desempenho de Recursos (TDR), que reflete o relacionamento entre
o desempenho e os recursos utilizados, baseada no tempo de espera, tempo de execuo, e
alocao dos recursos, como CPU, largura de banda e memria.

56

No fcil definir uma mtrica para a medio da elasticidade. Em geral, muitas


mtricas comuns so utilizadas, como tempo de resposta, ou algum recurso do ambiente, combinados juntos para avaliar algum aspecto do ambiente. As mtricas relacionadas elasticidade
foram agrupadas da seguinte maneira: alocao, capacidade, custo, QoS, utilizao de recursos,
escalabilidade e tempo.
Alocao de recursos possui aspectos e mtricas que geralmente descrevem a alocao e liberao dos recursos, como CPU, memria e instncias de mquinas virtuais no ambiente, e a consolidao dos recursos em servidores mais otimizados ou com menor consumo.
A capacidade de um ambiente pode ser medida por seus recursos e disponibilidade.
Como a quantidade de recursos varia no tempo e eles so providos durante um intervalo, isso
impacta diretamente nas cargas de trabalho aplicadas ao ambiente, que por si so dinmicas.
Sempre h um custo associado utilizao dos recursos em algum mecanismo de
elasticidade, podendo ser monetrio ou operacional. Algumas mtricas de custo foram identificadas: custo da utilizao de recursos, custo da execuo dos servios, como balanceamento
de carga e monitorao, custo por unidade de tempo para manuteno de um dado servio com
limiares pr-estabelecidos de qualidade.
Em relao a QoS, mtricas que medem violaes de alguma caracterstica do sistema foram identificadas. A medio do SLA em si foi utilizada como uma maneira indireta
para mensurar a elasticidade. Assim possvel avaliar se h uma ganho no desempenho da elasticidade. Em outras palavras, para ajustar o ambiente devido elasticidade, possvel medir o
overhead da reconfigurao da infraestrutura.
A categoria de utilizao de recursos identificou mtricas relacionadas ao uso de
algum recurso ou caracterstica do sistema. Tipicamente mede ociosidade, subutilizao e sobreutilizao de recursos. Tambm descreve a demanda do ambiente e se o nvel de utilizao
alto ou baixo. Percebe-se que recursos virtuais so utilizados para algum mecanismo de
elasticidade. A quantidade de mquinas virtuais e seus estados com respeito subutilizao e
sobreutilizao tambm foi identificada.
Muitas vezes escalabilidade foi utilizada como uma estratgia para o provimento da
elasticidade. Uma mtrica especfica para escalabilidade foi identificada, assim como sua faixa
de utilizao e escalabilidade do sistema (GAO et al., 2011).
Em geral o tempo requerido para alguma operao foi a mtrica mais utilizada. Para
elasticidade, muitas operaes possuem o tempo medido no provimento de algum servio. O
tempo de alocao, desalocao, provimento e desprovimento de recursos foram utilizados para
medir o desempenho da elasticidade. Durante esses perodos, o servio pode estar inativo, o que
no desejvel. Tambm interessante que esses tempos sejam monitorados.

57

3.3.4

Questo Secundria 4 (QS4): Quais so as tendncias de pesquisa em Computao


em Nuvem do ponto de vista de elasticidade?

De maneira geral, muitos trabalhos foram identificados como tendncias de pesquisa e lacunas em Computao em Nuvem relacionados elasticidade, onde se destacam:
Benchmarks para Computao em Nuvem: Na literatura existem muitos benchmarks para
a gerao de diversos testes e cargas de trabalho. Porm, benchmarks especficos para ambientes de Computao em Nuvem, onde se possa avaliar a elasticidade de um ambiente
para simular cargas variadas com aumento e diminuio da carga ainda no so comuns.
Um exemplo de benchmark utilizado para medir a elasticidade em um ambiente de Computao em Nuvem o framework Yahoo! Cloud Serving Benchmark (YCSB) (COOPER
et al., 2010), que permite comparar o desempenho de servio de dados na nuvem;
Mtricas especficas para elasticidade: Apesar que alguns trabalhos citaram mtricas e
modelos especficos para a medio da elasticidade (GAO et al., 2011; GARG; VERSTEEG; BUYYA, 2012; ISLAM et al., 2012), ainda existem poucos trabalhos que realmente medem a elasticidade. mais comum identificar trabalhos que utilizam ou provm
a elasticidade;
Computao Autonmica em ambientes de nuvem: Os princpios de Computao Autonmica j so encontrados em trabalhos de elasticidade em nuvem, principalmente pela
utilizao de agentes para coleta de dados e definio de regras para a tomada de deciso
(PANDEY et al., 2012; NIEHORSTER et al., 2011; GHANBARI et al., 2011). Alm
disso, em geral operaes de auto escalonamento de recursos so baseadas em regras.
Contudo, este ambiente no possui padronizao. A automao do provisionamento de
recursos nos provedores, de maneira que no seja necessria a interveno humana e que
se adpate s necessidades dos usurios, outro aspecto a ser considerado;
Testes em ambientes de Computao em Nuvem: Testes com o objetivo de verificar se
o ambiente de Computao em Nuvem est apto a suportar cargas de trabalho variadas,
alteraes de cargas em curtos intervalos de tempo, simulao de usurios, o quanto um
ambiente elstico, o quanto ele suporta a elasticidade dos recursos mantendo um nvel
de servio adequado ao usurio. Bai et al. (2011) aborda diversos aspectos de testes em
ambientes de Computao em nuvem;
Gerao de cargas de trabalho em nuvem: Diversos geradores de carga de trabalho existem na literatura, assim como benchmarks. O estudo de mecanismos estatsticos, como
distribuies estatsticas, para modelagem de cargas de trabalho, uma atividade que
suportaria o planejamento e acompanhamento da utilizao de ambientes;
Tarifao baseado em elasticidade: A tarifao de servios na nuvem alvo de muita
pesquisa, e muitos trabalhos propem estratgias de precificao. A padronizao ainda
uma rea a ser pesquisada, pois os provedores so variados, os tipos de servios e
modelos adotados so diferentes;

58

Computao mvel: Com a facilidade de acesso atravs de dispositivos mveis faz-se necessrio a integrao entre os diversos dispositivos e a nuvem, responsvel pelo processamento (FLORES; SRIRAMA; PANIAGUA, 2011; MORENO-VOZMEDIANO; MONTERO; LLORENTE, 2011). A elasticidade est no lado servidor das aplicaes, ou seja,
nos datacenters, onde mecanismos que provm a elasticidade esto em execuo;
Aplicaes orientadas ao consumo de energia: Com os datacenters investindo em mecanismos de reduo do consumo energtico, a Computao em Nuvem pode colaborar
na migrao de aplicaes, que atendendo s necessidades dos clientes atravs da elasticidade, pode evitar o desperdcio de uma infraestrutura ociosa ou mal distribuda. A
computao verde pode ser utilizada junto a Computao em Nuvem. Estratgias de
alocao de recursos baseadas no consumo energtico podem regular e consolidar servidores, desativando os que no esto em utilizao.
3.3.5

Questo Secundria 5 (QS5): Quais so as estratgias adotadas no provimento da


elasticidade em Computao em Nuvem?

O gerenciamento de ambientes de Computao em Nuvem envolve a construo de


estratgias para torn-lo elstico, garantir QoS e utilizao dos recursos de maneira eficiente.
Assim, existem diferentes solues que implementam elasticidade. Essas solues adicionam e
removem recursos conforme polticas baseadas em cargas de trabalho. Neste trabalho, modelos
e mtodos para a implementao da elasticidade foram identificados, basedos nos mecanismos
de escalabilidade apresentados por Vaquero, Rodero-Merino e Buyya (2011) e na classificao
de elasticidade apresentada por Galante e Bona (2012). Uma viso geral desta classificao
pode ser visualizada na Figura 3.3.
Os mtodos identificados esto descritos conforme a seguir:
Elasticidade Horizontal (Replicao): Consiste em adicionar/remover instncias a partir

Figura 3.3: Classificao de solues e estratgias de elasticidade

59

do ambiente virtual do usurio. Estas instncias podem ser aplicaes, containers ou


mquinas virtuais. Por exemplo adicionar novos servidores de rplicas e balanceadores
de carga para sua distribuio entre todas as rplicas disponveis. Replicao atualmente
o mtodo mais utilizado no provimento da elasticidade;
Elasticidade Vertical: Consiste em adicionar/remover recursos. Por exemplo, adicionar
capacidade de processamento, memria e armazenamento a partir de uma mquina virtual. Duas diferentes abordagens para executar escalabilidade vertical foram identificadas:
- Redimensionamento: Consiste na alterao em tempo de execuo dos recursos
associados instncia em execuo (por exemplo associar mais CPU e memria para
uma mquina virtual em execuo). Esta soluo comum em sistemas operacionais
Unix, uma vez que eles suportam mudanas na CPU e memria em tempo real sem a
necessidade de reinicializao (por exemplo a utilizao de ballooning em memria);
- Substituio: Consiste na adio de servidores mais potentes na substituio de
servidores menos potentes, simulando a abordagem de redimensionamento. comum
em provedores pblicos de Computao em Nuvem.
Migrao: Consiste na transferncia de mquinas virtuais ou aplicaes que esto sendo
executadas de um servidor fsico para outro. Mquinas virtuais podem ser migradas de
um servidor para outro para consolidao ou balanceamento de carga.
Os modelos identificados esto descritos conforme a seguir:
Reativo: Reage carga de trabalho atual e utiliza limiares da utilizao dos recursos ou
violaes de SLA para disparar a necessidade de capacidade adicional. O sistema reage
mudanas, mas no as antecipa;
Proativo (preditivo): Utiliza tcnicas de predio de cargas de trabalho para determinar
quando a carga de trabalho futura ir superar a capacidade atual provisionada e invoca
algoritmos de alocao adicional de servidores antes que sua capacidade seja excedida.
Tcnicas proativas geralmente baseiam suas decises no histrico da carga de trabalho.
Diversas solues elsticas foram identificadas neste trabalho. Os trabalhos identificados esto organizados conforme a classificao de elasticidade apresentada.
Replicao Reativa
Vrios trabalhos utilizaram uma abordagem reativa na qual dependente de monitorao. Os servios de monitorao so mecanismos que permitem aos usurios monitorar e
coletar mtricas de desempenho do sistema em um baixo nvel de granularidade. Tais mtricas so utilizadas por um servio de auto escalonamento para automaticamente adicionar ou
remover mquinas virtuais.
Fito, Goiri e Guitart (2010) trabalharam a elasticidade em um ambiente de nuvem
com servidores web. apresentada uma soluo de gerenciamento de recursos baseada em

60

SLA que reage s cargas dinmicas recebidas com rplicas de servidores. Um conjunto de
variveis de economia foram definidas, alm de funes para o estudo do rendimento adquirido
pelo provedor e como ele pode maximiz-lo. Perez-Sorrosal et al. (2011) apresentaram uma
estrutura de cache e replicao que facilita a implantao elstica e escalvel de arquiteturas
multi-camadas. Bryant et al. (2011) propuseram o Kaleidoscope, uma abordagem de replicao
de mquinas virtuais associada clonagem sob-demanda. Pawluk et al. (2012) introduziram o
STRATOS, um servio de broker para facilitar a comunicao entre nuvens, a construo de
uma topologia de plataforma e em tempo de execuo modificar os objetivos implementados.
STRATOS habilita a instanciao inter provedores de rplicas pela resoluo de um problema
de otimizao multi-critrio. Em Sousa e Machado (2012), o RepliC apresentado como uma
abordagem para a replicao de banco de dados na nuvem com qualidade de servio e suporte
a multi-inquilinos. Sua estratgia adiciona e remove rplicas rapidamente conforme a carga
de trabalho aplicada ao ambiente. Zhao, Sakr e Liu (2013) apresentaram um framework para
uma camada de replicao de banco de dados baseada no SLA. Este framework continuamente
monitora a aplicao e o SLA, e automaticamente dispara a execuo de aes corretivas quando
requerida.
Migrao Reativa
Estratgias de migrao de mquinas virtuais esto mais concentradas no atendimento do balanceamento de carga entre mquinas fsicas sem considerar caractersticas especficas das aplicaes que esto sendo executadas nas mquinas virtuais.
He, Guo e Guo (2011) propuseram uma soluo de gerenciamento de recursos baseada na migrao de mquinas virtuais para melhorar a utilizao de recursos na nuvem. O desempenho da migrao da mquina virtual foi analisado e uma infraestrutura de armazenamento
compartilhado para lidar com o problema foi proposta. Mauch, Kunze e Hillenbrand (2012)
descreveram tcnicas de virtualizao e mtodos de gerenciamento, como multi-inquilino, provisionamento dinmico e SLA. Tambm apresentado uma abordagem que utiliza altas conexes entre clusters, como InfiniBand, em um ambiente de Computao em Nuvem de alto
desempenho. Esta abordagem permite migrar rapidamente mquinas virtuais para garantir o
desempenho da rede e QoS. Uma abordagem para a melhoria da qualidade do servio para
banco de dados relacionais multi-inquilinos foi proposta em Moreira et al. (2013), utilizando
tcnicas de migrao, monitoramento e uma infraestrutura de Computao em Nuvem, para
melhorar o desempenho e reduzir custos. Quando uma violao de SLA identificada, uma
nova mquina virtual provisionada para atender ao inquilino.
Redimensionamento Reativo
Enquanto as mais comuns implementaes de escalabilidade na nuvem utilizam
mquinas virtuais como uma unidade de escalonamento, alguns trabalhos propem solues
em nveis menores para tcnicas de elasticidade vertical para a adio ou remoo de recursos
como CPU virtuais (VCPU) e Megabytes de memria RAM de uma mquina virtual.
Dawoud, Takouna e Meinel (2011) propuseram uma arquitetura para operaes de
elasticidade vertical. Uma comparao entre a implementao proposta e uma arquitetura com
vrias instncias foi apresentada. A comparao inclui modelagem de filas e implementaes de

61

cada arquitetura. comentado que a elasticidade vertical implica em menos tempo de resposta
e reduz o overhead do provisionamento, o que leva a menos violaes de SLA.
Replicao Proativa
Alm de abordagens reativas, abordagens proativas/preditivas tm sido utilizadas
para prover solues elsticas automatizadas. Estas solues utilizam heursticas e tcnicas
matemticas para antecipar o comportamento das cargas de trabalho e utilizam estas predies
para decidir como escalar os recursos (GALANTE; BONA, 2012).
Calheiros, Ranjan e Buyya (2011) propuseram uma tcnica de provisionamento de
mquinas virtuais para adaptao dinmica s mudanas na carga de trabalho e prover garantias
de QoS aos usrios finais. Utiliza um modelo de filas e informaes da carga de trabalho para
direcionar decises de replicao de um provisionador de aplicaes. Resultados indicaram
que a tcnica proposta pode detectar mudanas na intensidade da carga de trabalho (padres de
entrada e demanda de recursos) no tempo e instanciar rplicas conforme os objetivos de QoS das
aplicaes. Tirado et al. (2011) combinaram um modelo preditivo com replicao para adio e
remoo de rplicas com o objetivo de melhorar a utilizao de recursos e distribuio da carga
de trabalho. A predio da carga de trabalho executada conforme um modelo de regresso,
enquanto melhorias so realizadas baseadas em dados preditos conforme histrico.
Ferrer et al. (2012) apresentaram o OPTIMIS como uma ferramenta para solucionar
problemas de gerenciamento de servios na nuvem, com foco em servios e otimizar a infraestrutura atravs de um ciclo de vida: construo, implantao e operao dos servios. Ele utiliza
dados diferentes para prever o impacto energtico futuro baseado em estados em execuo, padres de utilizao do histrico, e estimativas de futuras demandas. Esta estratgia adiciona e
remove mquinas virtuais do sistema. Konstanteli et al. (2012) apresentaram uma abordagem
probabilstica do problema de alocao tima de servios sobre recursos fsicos, quando elasticidade horizontal requerida. O modelo de otimizao constitui de um controle de teste de
admisso probabilstico. Baseado no conhecimento estatstico, esta abordagem utiliza modelos
que so capazes de prever utilizao de recursos baseados no monitoramento de dados histricos. Em Santos et al. (2013), uma abordagem baseada na teoria do espao de escala foi proposta
para auxiliar no provisionamento dinmico de recursos em nuvens computacionais. Esta teoria
capaz de eliminar a presena de informaes irrelevantes a partir de um sinal, que pode introduzir erros na tomada de deciso. Nos experimentos confirmou-se que a abordagem melhorou
a anlise da carga de trabalho e predio.
Migrao Proativa
Qin et al. (2012) apresentam um framework para o rebalanceamento de carga baseado no modelo Monitor-Analyze-Plan-Execute (MAPE), denominado ElastiCat. O framework
tem como objetivo eliminar desbalanceamentos de carga enquanto minimiza o rebalanceamento
dos custos, utilizando dois modelos de predio para prever o tempo de migrao dos dados
e o impacto no desempenho atravs de tcnicas de mquina de aprendizagem, e ento gerar
um modelo de custos. Bruneo (2013) apresentou um modelo analtico baseado em Stochastic
Reward Nets (SRN). Este modelo representa sistemas compostos por milhares de recursos e sua
representao fsica e virtual, explorando conceitos especficos da nuvem como elasticidade,

62

permitindo predizer os efeitos de uma condio particular de uma carga de trabalho de maneira
a analisar a habilidade do sistema reagir a uma situao de sobrecarga. Moreira et al. (2014)
propuseram uma abordagem para a melhoria da qualidade do servio para banco de dados relacionais multi-inquilinos. Utilizou-se tcnicas de migrao de inquilinos, monitoramento do
sistema, estratgias de alocao e predio, tudo em um ambiente de Computao em Nuvem.
Solues Mistas e Outras
Durante esta reviso no foi possvel identificar a utilizao de modelo e mtodos
em alguns trabalhos. Foram identificados quatro trabalhos que somente utilizaram replicao
(NIE; XU, 2009; LI et al., 2011; RAVEENDRAN; BICER; AGRAWAL, 2011; MALIK; HUET;
CAROMEL, 2012), um que utilizou somente migrao (MA et al., 2010), e um que utilizou
apenas redimensionamento (KUMAR; SHAE; JAMJOOM, 2012). Ainda foram identificados
dois trabalhos que utilizaram a abordagem reativa (DENG et al., 2012; GHOSHAL; RAMAKRISHNAN, 2012) e dois trabalhos que utilizaram a abordagem proativa (NIEHORSTER et
al., 2011; PANIAGUA; SRIRAMA; FLORES, 2011), mas mtodos que utilizaram ambos no
foram identificados.
Adicionalmente, outros trabalhos utilizaram uma soluo mista, combinando diferentes modelos e mtodos (ETCHEVERS et al., 2011; LI; TORDSSON; ELMROTH, 2011;
YU et al., 2012; ALI-ELDIN et al., 2012; DAS; AGRAWAL; ABBADI, 2013). Estas solues
permitiram condies mais complexas, regras e polticas de alocao, podendo contribuir para
o aumento da receita dos provedores (TOOSI et al., 2011).
Yu et al. (2012) propuseram um algoritmo de localizao de banco de dados baseado
em custos atravs de um plano de migrao de restries de recursos, e preferncias do sistema
e usurios. A soluo reativa combinada com o plano de migrao patra minimizar o custo
de migrao e maximizar a utilizao dos recursos na nuvem. Das, Agrawal e Abbadi (2013)
apresentam o ElasTraS, um banco de dados escalvel e multi-inquilino para o processamento
de transaes, e o Albatross, uma tcnica de migrao de banco de dados. ElasTraS direciona
Albatross para um balanceamento de carga elstico pela adio de servidores durante picos de
cargas de trabalho e consolida para poucos servidores em redues na carga de trabalho. Este
escalonamento elstico minimiza o custo operacional e garante bom desempenho mesmo na
presena de mudanas de cargas de trabalho no previstas. Ali-Eldin et al. (2012) construram
um controlador de elasticidade que modifica a quantidade de mquinas virtuais alocadas a um
servio baseada em aes reativas e predies de cargas futuras. A soluo baseada na teoria
das filas e foi utilizada para a construo de um controlador reativo adaptativo hbrido para
rapidamente reagir mudanas de cargas repentinas, considerando a heterogeneidade da carga
de trabalho, e prevenir oscilaes.
Solues Elsticas de Provedores
Diversos provedores de Computao em Nuvem atualmente oferecem servios de
escalonamento automtico. Tais servios geralmente confiam em regras pr-determinadas ou
polticas reativas para acionar suas operaes de ajuste de recursos.
O Amazon Auto Scaling utiliza um mtodo reativo e replicao para promover elas-

63

ticidade. O comportamento de um escalonamento automtico segue um conjunto de regras que


devem ser definidas. Uma regra de auto escalonamento possui a forma de um par consistindo de
um antecedente e um consequente. A Amazon geralmente oferece condies baseadas em regras para adicionar e remover recursos. Esta abordagem simples tipicamente envolve a criao
de regras para determinar quando escalar. Para cada regra o usurio deve definir uma condio
baseada em uma varivel. Por exemplo, se a carga de CPU exceder 80%, disparada uma ao
pr-determinada de scaling up ou scaling down.
Similar ao Amazon Auto Scaling, o Windows Azure possui o Windows Azure Application Autoscaling Block, que utiliza regras para definir quando escalar. GoGrid tambm
permite aos usurios configurar um servio de auto escalonamento em um ambiente web. Utilizando o GoGrids Dynamic Load Balancer e API GoGrid, os usurios podem escalar suas
aplicaes.
Provedores de Computao em Nuvem sofrem com as limitaes inerentes aos mtodos de replicao: a utilizao de mquinas virtuais como unidade de escalonamento, as
quais podem causar sobreprovisionamento; e o balanceador de cargas. Diante dessas limitaes, provedores pblicos de nuvem disponibilizam aos usurios alguns tipos de mtodos de
escalonamento vertical. Abordagens de substituio so comuns na Amazon e GoGrid. Por
exemplo, os usurios podem modificar o tipo da instncia (small para large) e escalonar mquinas virtuais para mais ou para menos na Amazon EC2. GoGrid tambm oferece ferramentas de
escalonamento vertical de memria RAM, a qual permite o escalonamento fcil de memria.
3.4

Ambientes, Metodologias e Mtricas Especficos para Elasticidade

Alguns trabalhos na literatura desenvolveram aplicaes e frameworks para operao em ambientes de Computao em Nuvem. Outros propuseram abordagens e metodologias
para a realizao da anlise de desempenho em Computao em Nuvem. Esta seo discute
alguns trabalhos correlatos ao framework proposto. Aqui eles esto organizados em (i) benchmarks, (ii) frameworks, (iii) arquiteturas e testbeds, (iv) metodologias para avaliao de desempenho em nuvens computacionais, e (v) mtricas para avaliar a elasticidade.
Em geral, o projeto de experimentos no claro. Muitos trabalhos no informam
detalhes dos experimentos, que auxiliam em sua replicao, assim como detalhes da instalao
e configurao dos frameworks e benchmarks disponibilizados. Outra deficincia comum em
trabalhos a no disponibilizao de uma metodologia para a utilizao das ferramentas em
experimentos. Muitas vezes existem poucos detalhes ou no h uma abordagem sistemtica
para sua utilizao, dificultando a anlise de desempenho.
A Tabela 3.8 compara os trabalhos descritos sob o ponto de vista da tcnica do
experimento utilizada (Tec.), metodologia detalhada (Met.) e detalhamento do projeto do experimento (Proj.). A escala para a tcnica do experimento : medio (M), simulao (S) e
modelagem analtica (MA), assim como suas possveis combinaes. Os valores da escala para
a metodologia e projeto so: detalhado (D), parcial (P) e ausente (A), e foram baseados no
projeto de experimentos descrito por Jain (1991). Ressalta-se que nos trabalhos citados no h

64

Tabela 3.8: Comparao entre trabalhos relacionados de benchmarks, frameworks e testbeds.


Tcnica (Tec.): Medio (M), Simulao (S) e Modelagem Analtica (MA); Metodologia (Met.)
e Projeto de Experimentos (Proj.): Detalhado (D), Parcial (P) e Ausente (A)
Trabalho
CloudStone (SOBEL et al., 2008)
C-METER (YIGITBASI et al., 2009)
CloudGauge
2010)

(EL-REFAEY;

RIZKAA,

LoM2HiS (EMEAKAROHA et al., 2010)

MalStone (BENNETT et al., 2010)


CloudCMP (LI et al., 2010)
BenchLab (CECCHET et al., 2011)
FairCPU (REGO et al., 2011)
CloudCrawler (CUNHA; MENDONA;
SAMPAIO, 2013)
MELA (MOLDOVAN et al., 2013)

Objetivo
Benchmark para aplicaes web 2.0
Framework para anlise de desempenho em nuvem
Benchmark para virtualizao em nuvem e medio de cargas de trabalho
dinmicas
Framework para mapear mtricas de
nvel mais baixo para SLA para deteco de violaes
Benchmark para medir desempenho de
computao intensiva de dados
Comparar desempenho entre provedores de Computao em Nuvem
Testbed para benchmark web 2.0
Arquitetura de provisionamento de recursos baseada em CPU
Teste de desempenho de IaaS para auxiliar dimensionamento de recursos
Framework para monitorao e anlise
da elasticidade em servios de nuvem

Tec.
M
M

Met.
A
P

Proj.
P
P

M/S

M/S
M

A
A

P
P

o detalhamento do projeto, o que no quer dizer que no seguem uma metodologia ou no h


projeto de experimentos, sendo em geral muito bem escritos.
Dentre o conjunto de trabalhos sobre benchmarks, Sobel et al. (2008) propuseram o
CloudStone, um benchmark de aplicaes web 2.0 para medir o custo monetrio usurio/ms. O
CloudGauge foi apresentado por El-Refaey e Rizkaa (2010) para virtualizao em nuvem com
o objetivo de medir cargas de trabalho dinmicas, enquanto o MalStone voltado para desempenho em aplicaes orientadas CPU (BENNETT et al., 2010). Li et al. (2010) compararam
o desempenho entre provedores de nuvem mediante o benchmark CloudCMP, considerando
aspectos de elasticidade, rede, custo e armazenamento, avaliados de maneira sistemtica.
Em relao a frameworks e aplicativos para desempenho em nuvem, o C-METER
(YIGITBASI et al., 2009) se destacou. Ele um framework portvel, extensvel, com gerao
e submisso de cargas de trabalho sintticas. Seguindo um princpio de ciclo de vida autoadaptvel com gerenciamento autonmico, outro framework que merece destaque o LoM2HiS
(EMEAKAROHA et al., 2010), cujo objetivo mapear mtricas de infraestrutura (IaaS) para
mtricas de usurio (SaaS), visando deteco de quebras de SLA. O MELA (MOLDOVAN et
al., 2013) foi proposto para o monitoramento e anlise de servios elsticos, utilizando outros
conceitos de elasticidade, como espao e caminho da elasticidade.
Em relao a arquiteturas e testbeds, o BenchLab descrito como um ambiente
para benchmark com foco na web 2.0 (CECCHET et al., 2011), onde alguns requisitos so
apresentados, como aplicao e cargas de trabalho reais. Uma arquitetura de provisionamento
de recursos baseada em CPU foi apresentada por Rego et al. (2011), baseada na ferramenta

65

CPULIMIT, que limita a utilizao da CPU em mquinas virtuais. Uma aplicao para teste
de desempenho em IaaS foi desenvolvida por Cunha, Mendona e Sampaio (2013), chamada
CloudCrawler, para auxiliar o dimensionamento de recursos.
Critrios a serem utilizados na avaliao da elasticidade foram descritos em Herbst,
Kounev e Reussner (2013), tais como: processos de adaptao para escalabilidade autonmica;
recursos escalveis para o processo de adaptao; variao da quantidade de recursos alocados; e limite superior da quantidade de recursos que podem ser alocados. Alm disso, mtricas
foram propostas para a medio da elasticidade baseadas em velocidade e preciso. um trabalho motivacional, no havendo experimentos, porm prope mtricas. No trabalho de Simes
e Kamienski (2014), uma avaliao do desempenho de um ambiente hbrido de nuvem foi realizada por meio de simulaes. Os resultados mostraram que a escolha de mtricas e limiares
fundamental na manuteno do SLA. A relao custo/benefcio dos experimentos tambm foi
analisada em relao aos limiares estabelecidos, tempo de resposta e recursos utilizados. Costa
et al. (2011) analisaram motivos pelos quais provedores de nuvem tradicionais necessitam impor limites sobre a quantidade de recursos que um usurio pode adquirir simultaneamente. Um
modelo matemtico foi proposto para representar um provedor de IaaS e a gerao de cargas
de trabalho sintticas. Seus experimentos simularam aplicaes Bag of Tasks (BoT) em relao
aos limites impostos por provedores na execuo deste tipo de aplicao.
O FOLE procura estabelecer uma metodologia para a realizao de anlise de desempenho em ambientes de Computao em Nuvem de maneira sistemtica. Tambm destaca
o projeto dos experimentos, assim como o projeto de cargas de trabalho, coletas e medies.
Ele no define uma arquitetura, mas sugere fortemente aspectos ferramentais que influenciam
diretamente em seus componentes, como recursos de Computao Autonmica. Ele no define
ou disponibiliza uma API (Application Programming Interface) para o desenvolvimento de cdigos. Por ser um framework conceitual, ele genrico e independente de tecnologia. Como em
alguns trabalhos relacionados, a ideia ser extensvel e adaptvel, porm projetando a avaliao
de maneira flexvel e reutilizvel.
Bai et al. (2011) discutiram a mtrica Performance Resource Ratio (PRR) que reflete os relacionamentos entre desempenho e os recursos utilizados. Esta mtrica baseada
nos tempos de espera e execuo de recursos alocados, que podem ser CPU, memria, I/O e
largura de banda. Gao et al. (2011) descreveram um conjunto de mtricas para analisar a escalabilidade e elasticidade em ambientes de SaaS. Estas mtricas esto associadas alocao de
recursos, utilizao dos recursos, desempenho do sistema, carga do sistema, capacidade efetiva
do sistema, escalabilidade efetiva do sistema e faixa efetiva de escalabilidade.
Garg, Versteeg e Buyya (2012) descreveram uma mtrica para elasticidade como o
quanto um servio de nuvem pode ser escalado durante picos, que pode ser definido pelo tempo
mdio para expandir ou contrair a capacidade do servio e a capacidade mxima do servio
(nmero mximo de unidades computacionais que podem ser providas em perodos de pico).
Maneiras de quantificar elasticidade so discutidas em Islam et al. (2012), considerando aspectos de qualidade e penalidades em caso de no atendimento do servio. Um modelo matemtico
baseado em penalidades, recursos e demandas foi descrito. Experimentos foram realizados na
Amazon EC2 com o benchmark TPC-W e o aplicativo JMeter para gerao de cargas de tra-

66

balho. Um conjunto de mtricas relacionadas elasticidade foi descrito em Li et al. (2012),


identificado sobre outros trabalhos, e destacando que avaliar elasticidade em Computao em
Nuvem no uma atividade trivial. As mtricas descritas esto agrupadas em tempo de aquisio de recursos (tempo de proviso, de inicializao, de aquisio), tempo de liberao de
recursos (tempo de suspenso, de deleo, de liberao), e custo financeiro.
Um conjunto de mtricas para elasticidade foi proposto por Herbst, Kounev e Reussner (2013), com a ideia de velocidade e preciso. um trabalho motivacional, no havendo
experimentos, porm prope uma mtrica especfica para elasticidade baseada em tempos de
operaes e recursos. As mtricas Elasticidade de Scaling Up e Elasticidade de Scaling Down
foram propostas, e levam em considerao a quantidade de recursos alocados e o perodo de
tempo dispendido durante perodos de subprovisionamento e sobreprovisionamento.
Novas ideias relacionadas ao teste de sistemas computacionais elsticos foram introduzidas por Gambi et al. (2013), onde foram identificados alguns desafios de pesquisa e
tendncias futuras. Neste mesmo trabalho foi sugerida uma analogia com conceitos de elasticidade definidos na Fsica (Elasticidade de Materiais) com sistemas computacionais elsticos,
tais como: deformao, recuperao, plasticidade e tenso. Tambm foi elaborada uma analogia com testes mecnicos para a definio de testes adequados a sistemas computacionais.
Porm neste trabalho no foram discutidas mtricas, apenas a metfora entre as reas. Alm
disso, no foram realizados experimentos.
Uma abordagem para a medio da elasticidade de uma nuvem foi proposta por
Shawky e Ali (2012), baseada nos princpios da elasticidade definidos na Fsica. Nesta definio abordado o conceito de estresse da nuvem, definido como a taxa de recursos requerida
pela quantidade de recursos alocados, e o de tenso da nuvem, definido como a variao nos
recursos antes e depois de operaes de escalonamento. Neste trabalho, mtricas para nuvens
computacionais foram propostas, baseadas em capacidade de computao demandada e alocada, largura de banda, e tempo levado para alocar novos recursos. Entretanto, suas mtricas
esto especficas para largura de banda e foram realizados apenas experimentos de simulao,
alm de carecer da interpretao das mtricas. Para o clculo do estresse foi utilizado o conceito
de capacidade de computao, que estimada pela quantidade total de dados processados em
Gigabytes. O foco para o clculo da tenso foi em largura de banda.
A Tabela 3.9 exibe um comparativo entre trabalhos que propuseram mtricas especficas ou indiretas para medir elasticidade, ou avaliaes de desempenho. A nomenclatura
utilizada na tabela : Experimento (Medio, Simulao, Modelagem Analtica, No possui
experimentos); Tipo da Mtrica (Especfica para elasticidade, Indireta, No props mtrica).
Em nosso trabalho, a meta estudar a elasticidade em ambientes de Computao
em Nuvem. Assim como em alguns dos trabalhos citados anteriormente, pretende-se tambm
executar experimentos com medidas reais para o atendimento dos objetivos, propondo mtricas para avaliar a elasticidade. Entretanto, a aplicao das mtricas propostas mais simples
e direta. Nossas mtricas so alternativas para a medio da elasticidade. Seus detalhamentos
(descrio das variveis envolvidas e interpretao dos resultados) so teis para que um pesquisador possa aplic-las com mais facilidade na avaliao de desempenho da elasticidade em

67

Tabela 3.9: Comparao entre trabalhos relacionados de mtricas para elasticidade. Experimento (Exp.): Medio (M), Simulao (S), Modelagem Analtica (MA), No possui experimentos (N); Tipo da Mtrica (Tipo): Especfica para elasticidade (E), Indireta (I), No props
mtrica (N)
Trabalho
Bai et al. (2011)

Exp.
N

Tipo
I

Gao et al. (2011)

Garg, Versteeg e Buyya (2012)

S/MA

Islam et al. (2012)

M/MA

Li et al. (2012)

Shawky e Ali (2012)

S/MA

Gambi et al. (2013)


Herbst, Kounev e Reussner (2013)

N
N

N
E

Simes e Kamienski (2014)

Costa et al. (2013)

Observaes
Mtrica baseada em tempos de espera e execuo de
recursos alocados. um survey
Mtrica baseada em recursos utilizados em alocao.
Mede a capacidade e carga de trabalho. Utilizaram uma
nuvem pblica
Mtrica baseada em tempo e capacidade. Utilizou modelagem matemtica para um compor um ranking de
servios
Mtrica baseada em recursos e demandas. Utilizou um
modelo matemtico para penalidades e qualidade em
uma nuvem pblica
Mtricas baseadas em recursos, tempo e custo financeiro. uma reviso sistemtica da literatura
Mtrica baseada em largura de banda. Utilizou conceitos da Fsica
Utilizou modelagem matemtica para representar um
provedor de IaaS
Descreve analogias com outras reas de conhecimento
Mtrica baseada em tempo de operaes de alocao e
recursos. Utilizou a ideia de velocidade e preciso da
elasticidade
Experimentos baseados em tempo de resposta e utilizao de recursos. Realizou uma anlise do custo/benefcio em nuvem hbrida

Computao em Nuvem. Como elas foram baseadas em mtricas de elasticidade de outras reas
do conhecimento, ento j existe uma referncia da sua utilizao prtica.
As mtricas propostas neste trabalho podem ser utilizadas de diversas maneiras: na
comparao de solues, onde se mede o quanto uma soluo elstica, ou qual soluo mais
elstica; em comparaes de cargas de trabalho, onde se verifica qual carga de trabalho necessita
de um ambiente mais ou menos elstico para ser executada corretamente (atendimento ao SLA),
ou quais caractersticas que uma carga de trabalho deve possuir para avaliar a elasticidade de
um ambiente; e apoiar na tomada de deciso.

68

MTRICAS PARA ELASTICIDADE EM NUVENS COMPUTACIONAIS

Este captulo descreve um conjunto de mtricas propostas para apoiar a medio


da elasticidade em ambientes de Computao em Nuvem. A Seo 4.1 apresenta mtricas baseadas em tempos de operaes de alocao e desalocao de recursos, e na utilizao dos
recursos. A Seo 4.2 descreve mtricas baseadas em conceitos da Fsica (tenso e estresse).
A Seo 4.3 apresenta mtricas para medio da elasticidade baseadas em conceitos da Microeconomia (Elasticidade do Preo da Demanda). Na Seo 4.4, a maneira de se interpretar os
resultados das mtricas especficas de elasticidade apresentada. Por fim, a Seo 4.5 descreve
alguns benefcios da utilizao das mtricas propostas.
4.1

Mtricas Orientadas a Tempos de Alocao e Utilizao de Recursos

Um conjunto de mtricas para a medio da elasticidade foi proposto por Herbst,


Kounev e Reussner (2013), apresentando as ideias de velocidade e preciso da escalabilidade.
Mtricas especficas para elasticidade foram propostas baseada em tempos de operaes e recursos, denominadas Elasticidade de Scaling Up e Elasticidade de Scaling Down. Essas mtricas
consideram a quantidade de recursos alocados e o intervalo de tempo dispendido durante perodos de subprovisionamento e sobreprovisionamento. Entretanto este trabalho motivacional, e
no h a realizao de experimentos. Tambm no foram avaliados os perodos de tempo entre
estados sobreprovisionados e subprovisionados.
Baseado nas ideias de Herbst, Kounev e Reussner (2013), propomos mtricas orientadas aos tempos de execuo de operaes de alocao de recursos, e consideramos os perodos de tempo entre estados sobreprovisionados e subprovisionados, denominados estados
transitrios, e tambm propomos mtricas para avaliar situaes de estabilidade. Adicionalmente propusemos mtricas baseadas na utilizao de recursos para cada um dos estados de
alocao. No foi proposta uma mtrica especfica para elasticidade, e sim mtricas secundrias, que permitem o apoio e anlise da elasticidade em ambientes. Alm disso, Herbst, Kounev
e Reussner (2013) utilizaram medidas de tempo e recursos, agregando seus valores mdios, para
compor mtricas especficas para a medio da elasticidade, diferentemente de nossa maneira
de clculo. Por fim, no foram realizados experimentos em seu trabalho.
Em nosso trabalho, definimos o termo estabilizado como a situao onde a alocao dos recursos permanece a mesma, ou seja, no h adio ou remoo de recursos. O
perodo de em tempo que ocorrer esta situao ser considerado como um intervalo de tempo
estabilizado. O termo transitrio foi definido como o tempo entre estados no qual o ambiente
ainda est se adaptando s aes de elasticidade, ou seja, ainda est sofrendo os efeitos das
aes para que o aumento ou reduo de recursos seja efetivado, no estando ainda disponveis.
Quatro mtricas relacionadas ao tempo de execuo de operaes no ambiente foram propostas: Tempo de Alocao Sobreprovisionada, Tempo de Alocao Subprovisionada,
Tempo de Alocao Estabilizada e Tempo de Alocao Transitria. O Tempo de Alocao
Sobreprovisionado (TASo) corresponde ao tempo utilizado para a execuo de operaes de

69

remoo de recursos. O Tempo de Alocao Subprovisionada (TASu) corresponde ao tempo


utilizado para a execuo de operaes de adio de recursos. O Tempo de Alocao Estabilizada (TAE) corresponde ao intervalo de tempo onde no h adio ou remoo de recursos,
sendo que a alocao permanece a mesma, ou estabilizada. O Tempo de Alocao Transitria
(TAT ) corresponde ao tempo em que os efeitos da adio ou remoo de recursos esto em
progresso.
Tambm foram considerados os recursos envolvidos nas operaes de alocao e
desalocao. Trs mtricas foram propostas: Total de Recursos Alocados Subprovisionados,
Total de Recursos Alocados Sobreprovisionados e Total de Recursos Alocados Estabilizados. O
Total de Recursos Alocados Subprovisionados (T RASu) corresponde quantidade de recursos
alocados em um estado subprovisionado, mas no estabilizado. O Total de Recursos Alocados
Sobreprovisionados (T RASo) corresponde quantidade de recursos alocados em um estado
sobreprovisionado, mas no estabilizado. O Total de Recursos Alocados Estabilizados (T RAE)
corresponde quantidade de recursos alocados em um estado estabilizado.
Especificamente para a mtricas orientadas recursos, consideramos recursos como
qualquer recurso utilizado pelo ambiente que possa ser adicionado ou removido para aes de
ajuste da capacidade do ambiente. Exemplos de recursos so: mquinas virtuais (instncias
que podem ser adicionadas ou removidas), rplicas (que podem ser geradas e adicionadas e
removidas), e unidades de processamento (capacidade de aumentar ou diminuir recursos de
infraestrutura, como CPU e memria, a uma quantidade ou unidade pr-determinada). Assim,
essas mtricas so dependentes da infraestrura, pois vo depender da estratgia empregada.
Para as mtricas orientadas a tempos de operaes de alocao e desalocao de recursos, a estratgia de alocao e desalocao s influencia na durao, sendo assim, as mtricas
de tempo independentes da estratgia empregada, bastando apenas a coleta destes tempos. O
que diferencia que, como as estratgias so diferentes, o resultado das mtricas podem demorar mais ou menos (variar para mais ou para menos). Um exemplo uma estratgia que utilize
migrao de mquinas virtuais, que demoraria mais do que uma estratgia que apenas adiciona
uma mquina virtual j pr-existente a um balanceador de carga. Existiro tempos para as 4
mtricas, mas alguns variaro mais que outros devido estratgia utilizada.
A Figura 4.1 descreve de forma grfica e, somente para propsitos didticos, as mtricas propostas relacionadas a tempos de alocao estabilizada, subprovisionada, sobreprovisionada e transitria. Adicionalmente, possvel analisar o comportamento das mtricas propostas quantidade de recursos em estados estabilizados, subprovisionados e sobreprovisionados.
Esta figura um modelo terico, apenas para ilustar os pontos de controle e coleta dos tempos
considerados nas mtricas, e os perodos de tempo onde recursos esto alocados. Considerando
um modelo em que as unidades de recursos so limitadas e atmicas, como a quantidade de
mquinas virtuais, a ideia das mtricas se adqua aos deslocamentos na Figura 4.1. Em situaes mais realsticas, a estratgia de elasticidade pode ser horizontal ou vertical, e a forma de
se calcular os tempos e a quantidade de recursos varia conforme a estratgia utilizada.
Na situao em azul consideramos como alocao estabilizada, o que significa que
no h necessidade de aumentar ou reduzir recursos. a situao onde os recursos do ambiente

70

Figura 4.1: Representao das mtricas propostas para a anlise da elasticidade em nuvem
esto adequados s cargas de trabalho. Na situao em laranja ocorre a necessidade de mais
recursos, por isso a capacidade deve aumentar, caso contrrio violaes de SLA ocorrero.
Na situao em verde ocorre a necessidade de reduzir recursos, por isso a capacidade deve
diminuir, caso contrrio estar entrado em uma situao de desperdcio de recursos. A situao
representada por um crculo preto o intervalo em que a infraestrutura est se adaptando ao
que foi adicionado ou removido de recursos. o tempo que se gasta para que as operaes
de adio ou remoo de recursos tenham efeito no ambiente. Por isso ela sempre aparece
aps um momento de aumento e de reduo de recursos. As mtricas propostas orientadas
a tempos de operaes de alocao e desalocao de recursos correspondem aos tempos dos
estados representados. As mtricas propostas orientadas quantidade de recursos correspondem
quantidade de recursos alocada aos estados representados.
possvel ter perodos em que no h estabilidade entre intervalos de coletas, representados por linhas mais finas na Figura 4.1. Esta uma situao onde h a necessidade de
aumentar ou diminuir ainda mais os recursos, sem ter passado por um perodo de estabilidade
de recursos, e depende do tamanho do intervalo de coleta definido.
TAT o perodo de tempo representado pelo crculo preto, e em teoria existe entre
todo ponto de mudana de estado de alocao de recursos ou passagem de um estado para
outro. Caso TAT seja bem curto, o que depende da estratgia de elasticidade projetada para a
nuvem, mesmo existindo ele poder ser ignorado, pois em relao aos demais tempos ele ser
quase insignificante. Outra situao que pode ser desprezada caso seja relativamente curta so
as situaes em que no h estabilidade entre intervalos de coletas, podendo este tempo ser
considerado pertencente a estados sobreprovisionados ou subprovisionados.
Utilizando um modelo apresentado para a representao de um provedor proposto
por Costa et al. (2011), e considerando que os recursos de um provedor esto alocados em
intervalos de tempo, ento tem-se um ambiente de Computao em Nuvem A, para um perodo
de tempo T . Assim, formula-se a seguinte tupla:
A =< R, N,U, O, S, T,Ur , Or , Sr >

71

Tabela 4.1: Mtricas propostas orientadas a tempos de operaes e a recursos alocados


Mtrica

Descrio
m

TASo = Ui

Ui = perodo de tempo no estado de alocao subprovisionada

TASu = Oi

Oi = perodo de tempo no estado de alocao sobreprovisionada

TAE = Si

Si = perodo de tempo no estado de alocao estabilizada

TAT = Ti

Ti = perodo de tempo no estado de alocao transitria

T RASu = Ur i
1

T RASo = Or i
1

T RAE = Sr i
1

Ur i = quantidade de recursos r no perodo de tempo i no estado de alocao subprovisionada

Or i = quantidade de recursos r no perodo de tempo i no estado de


alocao sobreprovisionada

Sr i = quantidade de recursos r no perodo de tempo i no estado de alocao estabilizada

onde R corresponde quantidade de recursos disponveis no ambiente, N a quantidade de


intervalos de tempo de todo o perodo de tempo (dividindo o tempo total do experimento em
perodos menores), os elementos U, O, S e T correspondem a conjuntos de intervalos referentes
s mtricas de tempo TASo, TASu, TAE e TAT , respectivamente, e os elementos Ur , Or e Sr
correspondem a conjuntos de intervalos referentes s mtricas de recursos T RASu, T RASo e
T RAE, respectivamente.
A Tabela 4.1 exibe as mtricas compostas por somatrios, consideradas mtricas de
referncia, onde cada conjunto de intervalos pode ser vazio. A partir das mtricas de referncia,
mtricas secundrias podem ser derivadas a partir de seus valores totais, mdios e percentuais,
e assim servirem como anlise complementar. A Tabela A.1 do Apndice A exibe mtricas
complementares baseadas em tempos de alocao e desalocao de recursos, e a Tabela A.2 do
Apndice A exibe mtricas complementares baseadas na quantidade de recursos.
A principal diferena entre as mtricas propostas nesse trabalho e as propostas por
Herbst, Kounev e Reussner (2013) que existe o complemento de trs mtricas (TAE, TAT
e T RAE), devido a uma necessidade de avaliar o ambiente durante perodos de estabilidade e
transio, assim como seus recursos.

72

4.2

Mtricas Orientadas a Fsica

Na Fsica, segundo Timoshenko e Goodier (1970), todo material estrutural possui


uma determinada extenso da propriedade elasticidade. Se foras externas aplicadas ao material
produzirem uma deformao na estrutura, no excedendo um determinado limite, a deformao
desaparece com a remoo das foras. Para isso, os conceitos estresse e tenso da Fsica foram
estudados e mtricas para avaliao da elasticidade em nuvens computacionais foram propostas.
A Tabela 4.2 descreve as variveis relacionadas s mtricas propostas, assim como
a nomenclatura a ser utilizada. As mtricas associadas a recursos tm seus valores coletados
do ambiente, como utilizao de CPU e quantidade de mquinas virtuais alocadas. A varivel t
corresponde ao nmero de iteraes em que so coletados os diferentes parmetros utilizados,
definido pelo intervalo de coleta.
Na Fsica, o estresse indica o quo forte um material. Ele definido como a
quantidade de presso que o material pode suportar, sem sofrer algum tipo de alterao fsica
(TIMOSHENKO; GOODIER, 1970; SHAWKY; ALI, 2012). Considerando que o estresse na
Fsica uma fora que age sobre a rea da seco transversal do material, fazendo a analogia
com uma nuvem computacional, onde RD so os recursos demandados impostos pelas cargas
de trabalho e RA so os recursos alocados na atual configurao da infraestrutura, temos que o
Estresse da Qualidade da Nuvem (SQN ) pode ser aferido pela Equao 4.1:
Tabela 4.2: Lista de variveis e nomenclatura para mtricas baseadas em conceitos da Fsica
Varivel
RD
RA
t
RD Atu
RD Ant
RA Atu
RA Ant
RD
RA
SQN
TRD
TRA
ERDi
ERAi
ERDi
ERAi

Descrio
Recursos Demandados: recursos necessrios para o atendimento do SLA
Recursos Alocados: recursos alocados ao ambiente
Total de iteraes (intervalos de coleta)
Recursos Demandados Atuais: recursos demandados pelo ambiente no momento da coleta para
atendimento do SLA
Recursos Demandados Anteriores: recursos demandados pelo ambiente em momentos de coleta
anteriores
Recursos Alocados Atuais: recursos alocados ao ambiente no momento da coleta
Recursos Alocados Anteriores: recursos alocados ao ambiente em momentos de coleta anteriores
RD Atu RD Ant
RA Atu RA Ant
Estresse da Qualidade na Nuvem: taxa na qual os recursos so demandados em relao aos
recursos alocados
Tenso dos Recursos Demandados: taxa que mede a variao dos recursos demandados entre
intervalos de coleta (RD ) e os recursos demandados ao ambiente no momento da coleta
Tenso dos Recursos Alocados: taxa que mede a variao dos recursos alocados entre intervalos
de coleta (RA ) e os recursos alocados ao ambiente no momento da coleta
Elasticidade dos Recursos Demandados: relao entre SQN e TRD
Elasticidade dos Recursos Alocados: relao entre SQN e TRA
Elasticidade Mdia dos Recursos Demandados: mdia aritmtica de todas as medies para ERDi
calculadas em cada um dos intervalos de coleta t
Elasticidade Mdia dos Recursos Alocados: mdia aritmtica de todas as medies para ERAi
calculadas em cada um dos intervalos de coleta t

73

SQN =

(
0,
RD
RA ,

se RA = 0
caso contrrio

(4.1)

Algumas situaes especficas devem ser observadas. No caso em que os recursos


demandados e os recursos alocados so zero, considera-se que o estresse zero. No caso em
que recursos demandados so diferentes de zero e os recursos alocados so iguais a zero, o
estresse tende a infinito. Esta situao semanticamente significa que h uma demanda onde no
h recursos alocados e nada que foi demandado ser atendido, e para fim de interpretao, esta
situao tambm implicar em um estresse igual a zero.
A tenso, conforme a definio na Fsica, o quanto um objeto est sendo estendido
ou distorcido, e pode ser medida atravs da diviso entre a extenso de um material e seu
comprimento aps a distoro provocada pela aplicao de foras externas (TIMOSHENKO;
GOODIER, 1970; SHAWKY; ALI, 2012). Fazendo uma analogia com a nuvem computacional,
a Tenso dos Recursos Demandados (TRD ) pode ser medida pela Equao 4.2 e a Tenso dos
Recursos Alocados (TRA ) pode ser aferida pela Equao 4.3:

TRD =

TRA =

(
0,
RD
RD Atu ,

(
0,
RA
RA Atu ,

se RD = 0
caso contrrio
se RA = 0
caso contrrio

(4.2)

(4.3)

Conforme a Lei de Hook, a elasticidade pode ser medida pela diviso entre o estresse e a tenso (TIMOSHENKO; GOODIER, 1970; SHAWKY; ALI, 2012). A elasticidade
dos recursos em um determinado ponto i pode ser calculada de duas maneiras diferentes, dependendo da frmula de tenso utilizada (TRD ou TRA ). A Equao 4.4 considera os recursos
demandados, enquanto que a Equao 4.5 considera os recursos alocados.

ERDi =

ERAi =

(
0,
SQNi
TRDi ,

(
0,
SQNi
TRAi ,

se TRDi = 0
caso contrrio
se TRAi = 0
caso contrrio

(4.4)

(4.5)

Por fim, a elasticidade mdia dos recursos pode ser calculada tanto para os recursos
demandados (ERDi ) quanto para os recursos alocados (ERAi ), por meio das Equaes 4.6 e 4.7
respectivamente.
ti=0 ERDi
ERDi =
t

(4.6)

74

ERAi =

4.3

ti=0 ERAi
t

(4.7)

Mtricas Orientadas a Microeconomia

A demanda por um bem ou servio definida como a quantidade de um bem ou


servio os quais pessoas esto aptas (dispostas e capazes) para comprar a preos diferentes
em um determinado perodo de tempo, considerando outros fatores alm do preo mantidos
constante (SALVATORE, 2011). Como exemplo de demanda, considere um indivduo que
compra 3.5 toneladas de milho todo ms com o preo da tonelada a R$ 5. Essa sua demanda
individual. Se existirem 1000 indivduos no mercado com demandas semelhantes, a demanda
por milho a soma das quantidades que os 1000 indivduos comprariam neste preo. Ento, se
existirem 1000 indivduos dispostos a adquirir 3500 toneladas de milho ao preo de R$ 5 por
ms, esta seria a demanda do mercado. Se o preo mudar para R$ 4, a demanda individual se
modifica para 4.5 toneladas de milho, e a demanda do mercado seria 4500 toneladas.
Na Microeconomia, a elasticidade pode ser definida como uma medida da capacidade de resposta da quantidade demandada ou da quantidade fornecida a uma alterao em
um dos seus determinantes (disponibilidade de substitutos prximos, necessidades versus luxos, definio do mercado e horizonte de tempo) (MANKIW, 2012). Assim, a Elasticidade da
Demanda mede a extenso em que a quantidade demandada de uma mercadoria aumenta ou diminui em resposta ao aumento ou diminuio de qualquer dos seus determinantes quantitativos
(JAIN; OHRI, 2012).
A Elasticidade do Preo da Demanda mede o quanto a quantidade demandada de
um bem responde a uma mudana no preo desse bem, calculada como a variao percentual da
quantidade demandada dividida pela variao percentual no preo (MANKIW, 2012). A Elasticidade do Preo da Demanda a relao entre a variao percentual da quantidade e a variao
percentual no preo do bem, e todos os outros fatores mantidos constantes (SAMUELSON;
MARKS, 2012). Dessa maneira, a Elasticidade do Preo da Demanda pode ser medida pela
Equao 4.8, onde Q a quantidade do produto, P o preo do produto, Q a variao na
quantidade, P a variao no preo.

Elasticidade do Preo da Demanda =

% variao em Q Q P
=

% variao em P
P Q

(4.8)

Como exemplo de Elasticidade do Preo da Demanda, seguindo no exemplo da demanda apresentado, considere o preo do produto e a quantidade deste produto demandada pelo
mercado. Em um perodo p0 , o preo unitrio do produto R$ 5 e a quantidade demandada
3500. Em um perodo p1 , o preo unitrio do produto modificou para R$ 4 e quantidade
demandada modificou para 4500. Assim, a elasticidade do preo da demanda nos os perodos
indicados -1.42. Devido quantidade de um produto ser negativamente relacionada a seu
preo, o percentual de mudana na quantidade sempre possuir o sinal oposto ao percentual

75

Tabela 4.3: Lista de variveis e nomenclatura para mtricas baseadas em Microeconomia


Varivel
RD
RA
t
RD Atu
RD Ant
RA Atu
RA Ant
RD
RA
EDi
EDi

Descrio
Recursos Demandados: recursos necessrios para o atendimento do SLA
Recursos Alocados: recursos alocados ao ambiente
Total de iteraes (intervalos de coleta)
Recursos Demandados Atuais: recursos demandados pelo ambiente no momento da coleta para
atendimento do SLA
Recursos Demandados Anteriores: recursos demandados pelo ambiente em momentos de coleta
anteriores
Recursos Alocados Atuais: recursos alocados ao ambiente no momento da coleta
Recursos Alocados Anteriores: recursos alocados ao ambiente em momentos de coleta anteriores
RD Atu RD Ant
RA Atu RA Ant
Elasticidade da Demanda: multiplicao da relao entre a variao dos recursos alocados (RA )
e recursos demandados (RD ) entre intervalos de coleta pela relao entre os recursos demandados e alocados
Elasticidade Mdia da Demanda: mdia aritmtica de todas as elasticidades calculadas em cada
um dos intervalos de coleta t

de mudana no preo (MANKIW, 2012). Neste exemplo, o percentual de mudana no preo


negativo (refletindo um decrscimo no preo), e o percentual de mudana na quantidade demandada positivo (refletindo um crescimento na quantidade). Por este motivo, a elasticidade
do preo da demanda algumas vezes reportado com valores negativos.
Fazendo a analogia com a elasticidade em nuvens computacionais, podemos considerar a quantidade demandada Q como a alocao de recursos ou o quanto de recursos est
sendo disponibilizado, e o preo dos bens P como as cargas de trabalho impostas.
A Tabela 4.3 descreve as variveis relacionadas s mtricas propostas, assim como
a nomenclatura a ser utilizada. Para o clculo da elasticidade, fazendo a analogia com a elasticidade em nuvens computacionais, podemos considerar a quantidade demandada como os
recursos alocados RA , e o preo dos bens como os recursos demandados RD impostos pelas
cargas de trabalho. Consequentemente, a variao na quantidade demandada equivale a RA , e
a variao no preo do produto equivale a RD . Como o nome da mtrica na Microeconomia se
chama Elasticidade do Preo da Demanda", seu equivalente ser chamado de Elasticidade da
Demanda (EDi ), e pode ser medida pela Equao 4.9. Por fim, a elasticidade mdia da demanda
EDi pode ser calculada por meio da Equao 4.10.

EDi =

(
0,
RA
RD

se RA = 0 ou RA = 0 ou RD = 0

RD
RA ,

caso contrrio
EDi =

ti=0 EDi
t

(4.9)

(4.10)

Algumas situaes especficas devem ser tratadas. No caso em que os recursos demandados so zero, considera-se que a elasticidade zero, j que no h demanda. No caso em
que recursos alocados so zero, a elasticidade tende a ser infinita. Esta situao semanticamente
significa que h uma demanda onde no h recursos alocados. No caso em que RD for igual a

76

zero, a elasticidade tambm ser igual a zero, pois implica que no houve variao nos recursos
demandados no perodo.
Conforme a Lei da Demanda, considerando outras variveis de outros aspectos permanecendo iguais, a demanda por um bem aumenta com a diminuio do preo, e a demanda
por um bem diminui com um aumento no preo (SALVATORE, 2011). Esse efeito tambm
ocorre em sistemas computacionais. Se os recursos demandados aumentam, os recursos alocados comeam a diminuir no sentido de j estarem sendo utilizados, tornando-se escassos. Se os
recursos demandados diminuem, os recursos alocados comeam a se tornar mais disponveis,
pois medida em que vo sendo liberados ou finalizando suas atividades, tornam-se novamente
disponveis.
4.4

Interpretao das Mtricas para Elasticidade em Nuvens Computacionais

As mtricas propostas tm como objetivo medir a elasticidade de uma nuvem computacional, logo seus resultados possuem o mesmo objetivo. A maneira de interpretar as mtricas propostas baseadas em conceitos da Fsica (ERDi , ERAi , ERDi e ERAi ) e na Microeconomia
(EDi e EDi ) pode ser realizada da mesma maneira na maioria das situaes. Apesar dos grficos
gerados pela duas mtricas serem diferentes, e eles exibirem valores em diferentes escalas para
mesmos experimentos, suas interpretaes esto alinhadas. Alm disso, as mtricas propostas
podem corroborar uma com a outra. As Figuras 4.2 e 4.3 exibem grficos para as mtricas de
elasticidade propostas. As linhas azul, vermelha e preta dos grficos representam respectivamente as mtricas ERAi , ERDi e EDi .
A Figura 4.2 exibe situaes onde a elasticidade pode ser observada pelas mtricas
propostas para avaliar a utilizao e necessidade de recursos. Existem dois casos: utilizao de
mais ou menos recursos, e necessidade por mais recursos. Na primeira metade da Figura 4.2 os
valores para as duas mtricas esto baixos em relao segunda metade do grfico. Isto indica
que nesse perodo de tempo do experimento os recursos esto relativamente adequados carga
de trabalho. J na segunda parte do grfico, os valores esto bem maiores, indicando a utilizao
de mais recursos. No segundo caso, na primeira parte do grfico est sendo indicado que no
h tanto a necessidade de mais recursos, enquanto que na segunda parte h a necesssidade por
mais recursos.
A Figura 4.3 apresenta situaes nas quais as mtricas propostas so utilizadas para
avaliao de estados de alocao e desalocao de recursos. Existem dois casos: muitos ou poucos eventos de alocao e desalocao de recursos, e maior ou menor estabilidade entre estados
subprovisionados e sobreprovisionados. Os valores para as duas mtricas esto mais espaados
que na Figura 4.2. Isto indica que muitos eventos de alocao/desalocao de recursos esto
ocorrendo, podendo ser imediatamente sequenciais ou no, e em geral sem muitos intervalos
de alocao mnima. Em relao estabilidade, quanto mais espaado e horizontal nos picos,
mais estvel a alocao.
Valores absolutos individuais elevados para ERDi e ERAi indicam nesse ponto duas
possveis situaes: se o valor coletado for positivo indicam muitos recursos alocados utilizados

77

Figura 4.2: Grfico da elasticidade para as mtricas propostas para avaliao da utilizao e
necessidade de recursos
ou a necessidade de maior quantidade de recursos; e se o valor coletado for negativo, menos
recursos alocados so necessrios, ou no h a necessidade da quantidade atual de recursos
alocados. Em geral, para ERDi e ERAi sempre h picos positivos seguidos de picos negativos
correspondentes a eventos de alocao e desalocao de recursos, respectivamente.
Valores individuais elevados para EDi indicam nesse ponto duas possveis situaes:
muitos recursos alocados utilizados ou a necessidade de maior quantidade de recursos. Valores
individuais baixos para EDi indicam que poucos recursos alocados so necessrios, ou no h

Figura 4.3: Grfico da elasticidade para as mtricas propostas para avaliao de estados de
alocao e desalocao de recursos

78

a necessidade da quantidade atual de recursos alocados. Em geral, para EDi sempre h picos
positivos correspondentes a eventos de alocao e desalocao de recursos, respectivamente.
Alguns fatores podem influenciar no resultado obtido no clculo das mtricas. O
ponto de incio e trmino de coleta do experimento impacta diretamente nos valores da elasticidade. Vrios pontos sem atividade no ambiente so considerados com elasticidade igual a zero,
influenciando nos valores mdios. Outro aspecto a ser considerado a estratgia de alocao
de recursos a ser utilizada no ambiente. Dependendo da maneira na qual as unidades de alocao so utilizadas, por exemplo mquinas virtuais adicionadas ou removidas, e capacidade de
CPU a ser incrementada ou reduzida, os tempos nas operaes e a maneira na qual os recursos
so alocados influenciaro nos valores das mtricas. Um exemplo uma estratgia de elasticidade horizontal onde as mquinas virtuais so apenas adicionadas e removidas (j esto ativas
e so s alocadas ao balanceador de carga), ou no caso em que elas so instanciadas (criadas) e
removidas em tempo real (dinamicamente).
4.5

Benefcios da Utilizao das Mtricas de Elasticidade

Este trabalho props mtricas para avaliao da elasticidade de maneira indireta


(baseada em tempos de alocao e desalocao de recursos e na utilizao de recursos) e direta
(baseado em conceitos da Fsica e Microeconomia). A aplicao dessas mtricas em geral
mais simples e direta que mtricas propostas na literatura, o que facilita sua utilizao na prtica.
O fato de existir uma maneira mais detalhada de sua concepo e interpretao til para que
um pesquisador ou administrador de um provedor possam aplic-las com mais facilidade na
avaliao de desempenho da elasticidade em Computao em Nuvem.
As mtricas orientadas a tempos de alocao e desalocao auxiliam na identificao de perodos de tempo onde os recursos esto sendo mal utilizados, tais como momentos de
necessidade, ociosidade e desperdcio. Analisando o tempo de estabilidade possvel se identificar um ajuste dos recursos s demandas, mas tambm possvel que o SLA no esteja sendo
atendido. Um exemplo a situao em que a capacidade mxima de recursos foi atingida, as
demandas esto ocorrendo, no h mais como expandir a capacidade ou alocar mais recursos, e
consequentemente o SLA no ser atendido. Nesse caso, a alocao est estabilizada.
As mtricas orientadas utilizao de recursos medem como eles esto sendo distribudos ao longo do tempo diante de estados de subprovisionamento, sobreprovisionamento e
estabilidade. Essa quantidade de recursos tambm pode indicar a efetividade do mecanismo de
alocao e desalocao de recursos e a intensidade de operaes de alocao.
As mtricas baseadas em conceitos da Fsica e Microeconomia avaliam a elasticidade de maneira direta. A analogia com elementos dessas reas de conhecimento tem relao e
faz sentido com cargas de trabalho, demanda e oferta. O suporte anlise devido interpretao
baseada nos grficos tambm permite uma avaliao mais prtica da elasticidade no tempo.
Por fim, mecanismos de predio baseados nas mtricas propostas tambm podem
ser desenvolvidos, e assim a construo de solues elsticas mais eficientes, que evitem o
desperdcio e sejam mais geis na alocao de recursos.

79

FRAMEWORK CONCEITUAL FOLE

Na literatura, metodologias detalhadas para anlise de desempenho no so to comuns de se encontrar. Alguns autores, como Jain (1991) e Menasce, Dowdy e Almeida (2004)
detalham diversos aspectos da anlise de desempenho de sistemas computacionais.
Avaliar o desempenho de uma nuvem computacional uma atividade comumente
encontrada na literatura. Porm, avaliar a elasticidade no to comum. Muitos trabalhos
utilizam recursos de elasticidade em seus experimentos, porm existem diversos aspectos a serem considerados da infraestrutura, alm da dificuldade em encontrar trabalhos bem detalhados,
com reuso dos componentes e flexibilidade suficientes para a reproduo dos experimentos.
Diante dos aspectos descritos, surge o problema de como realizar anlise de desempenho de maneira flexvel e reutilizvel em ambientes de Computao em Nuvem para a
avaliao da elasticidade. Em geral, trabalhos no so reutilizveis, no so flexveis, falta o
detalhamento e descrio das atividades, assim como a maneira de utilizao e interpretao
das mtricas, dificultando a comparao e reproduo dos resultados.
A Seo 5.1 apresenta uma motivao do porqu avaliar a elasticidade em uma nuvem computacional. A Seo 5.2 apresenta o FOLE, um framework conceitual para anlise de
desempenho da elasticidade. A Seo 5.3 descreve cada atividade do framework. A Seo 5.4
apresenta detalhes para a aplicao do FOLE. Ao final deste captulo, na Seo 5.5, uma proposta de arquitetura elstica e uma ferramenta para apoiar a anlise e visualizao dos dados
so apresentadas.
5.1

Elasticidade em Computao em Nuvem

Neste trabalho vamos considerar a definio de elasticidade proposta por Herbst,


Kounev e Reussner (2013): Elasticidade dele ser definida como o grau no qual um sistema
capaz de se adaptar variaes na carga de trabalho pelo provisionamento e desprovisionamento de recursos de maneira autonmica, de modo que em cada ponto no tempo os recursos
disponveis combinem com a demanda da carga de trabalho o mais prximo possvel.
Seguindo o ponto de vista desta definio, alguns aspectos devem ser considerados
na anlise de desempenho da elasticidade em Computao em Nuvem: Computao Autonmica, provisionamento de recursos e carga de trabalho. Esses elementos possuem total relao
com a elasticidade em Computao em Nuvem.
A Computao Autonmica possui elementos de monitoramento, ao, regras, sensores e atuadores, promovendo a adaptao do ambiente conforme a necessidade. O provisionamento de recursos uma caracterstica arquitetural que influencia na infraestrutura e a estratgia
de elasticidade depende dela, podendo ser implementada de diversas maneiras. A carga de trabalho, que pode ser gerada por usurios reais ou benchmarks, quem provoca as aes que
devem ocorrer em um ambiente elstico, assim como o consumo dos recursos.
Entende-se por avaliar o desempenho da elasticidade como a verificao do com-

80

portamento da elasticidade de uma nuvem computacional diante de cargas de trabalho aplicadas


a esse ambiente.
Um experimento dito mais elstico que outro significa que ele possui um grau composto por diversos aspectos combinados entre si, tais como estratgias de elasticidade, alocao
e desalocao de recursos, e que uma vez aplicada uma carga de trabalho sobre o ambiente, este
grau avaliar a elasticidade e indicar o quanto os recursos esto sendo adequados s necessidades da carga de trabalho imposta ou do usurio, sinalizando o quanto o ambiente elstico.
Assim, a avaliao da elasticidade em Computao em Nuvem uma tarefa que se
torna essencial para provedores de acesso e clientes que desejam avaliar um ambiente de nuvem computacional. Essa avaliao considera diversos aspectos, que podem variar conforme
a aplicao desejada. A avaliao do desempenho da elasticidade pode ocorrer sob diversos
aspectos de uma nuvem computacional: avaliar arquiteturas, conhecer um ambiente, comparar
infraestruturas computacionais, adaptar um ambiente, comparar solues elsticas, identificar
falhas de qualidade em um ambiente, avaliar o custo financeiro da utilizao de servios, etc.
Tambm pode ser aplicada na avaliao de elementos que agem sobre o ambiente, tais como:
avaliar o efeito de mtricas, analisar o comportamento de aplicaes, avaliar as cargas de trabalho aplicadas ao ambiente, etc.
Suponha que uma empresa necessite realizar o processamento de um grande conjunto de dados, e para isto utiliza um provedor de Computao em Nuvem para adquirir uma
instncia com a suposta capacidade para a realizao de tal tarefa. Suponha que ao longo do
processamento, a capacidade no seja suficiente, e a aplicao corra o risco de ser interrompida. Caso ocorra uma interrupo e o trabalho seja finalizado de maneira indesejada, mesmo
os resultados no sendo concludos, o cliente pagar pela utilizao da instncia. Uma soluo a utilizao de um servio de elasticidade, disponibilizado por diversos provedores. Um
mecanismo de monitoramento, baseado em alguma regra ou mtrica, fica observando o estado
do ambiente, e em caso de ultrapassar algum limiar pr-estabelecido, aciona o mecanismo de
elasticidade para adicionar mais recursos ao ambiente, seja pela adio de novas instncias, seja
pelo aumento da capacidade da instncia em uso. Assim, o processamento em andamento pode
continuar e encerrar de maneira correta e satisfatria. Aps o encerramento da tarefa, o mecanismo de monitoramento observa que os recursos adicionados no so mais necessrios, e so
removidos do ambiente.
Atualmente existem muitas solues de elasticidade. Nesse contexto, interessante
que o usurio saiba qual a melhor soluo a ser contratada. Assim, um mecanismo que possibilite a avaliao da elasticidade possibilitaria que infraestruturas fossem avaliadas, assim como
aplicaes utilizadas e suas caractersticas, tais como durao dos experimentos e custo financeiro, aspectos comumente encontrados em provedores de Computao em Nuvem.
5.2

O Framework Conceitual FOLE

Um framework ou arcabouo conceitual um conjunto de conceitos utilizados para


a resoluo de um problema de um domnio especfico, sendo que existem dois tipos: fra-

81

(a)

(b)

Figura 5.1: Exemplos de acordeo (a) e de um fole (b).


meworks verticais (ou especialistas, confeccionados atravs da experincia obtida em um determinado domnio especfico ou de um especialista, tentando resolver problemas de um determinado domnio de aplicao), e frameworks horizontais (podem ser utilizados em diferentes
domnios) (CRUZ, 2013).
FOLE, o framework apresentado neste trabalho, vertical, pois seu foco no domnio de Computao em Nuvem, especializado em elasticidade. Nele propomos um conjunto
de atividades para a execuo de uma anlise de desempenho em nuvem de maneira sistematizada. As atividades relacionadas ao planejamento da elasticidade foram elaboradas com base
em princpios de Computao Autonmica, na arquitetura definida por Kephart e Chess (2003).
Basicamente, o FOLE possui trs macroatividades, relacionadas a planejamento, inicializao
de servios e execuo, e suas respectivas atividades.
O framework tem como nome FOLE devido a uma analogia com o instrumento
musical acordeo. O acordeo ou acordeom um instrumento musical aerofone de origem
alem, composto por um fole, um diapaso e duas caixas harmnicas de madeira. O som do
acordeo criado quando o ar que est no fole passa por entre duas palhetas, que vibram mais
grave ou agudo de acordo com a distncia entre elas (quando mais distantes, mais grave o som)
e seu tamanho (quanto maior, mais grave o som produzido). Quanto mais forte o ar forado
para as palhetas, mais intenso o som. O ar proveniente do fole, que aberto ou fechado com
o auxlio do brao esquerdo. A Figura 5.1 ilustra um acordeo e um fole.
Ento, fazendo a analogia com a elasticidade, medida em que recursos so mais
ou menos necessrios, o ambiente se adapta s necessidades, assim como o acordeo e o fole
trabalhando em conjunto.
5.3

Descrio das Atividades

A Figura 5.2 ilustra o FOLE de maneira integrada e com a ideia de fluxo de operao. A sequncia de atividades representada pela linha cheia possibilita a anlise de desempenho de maneira genrica, podendo ser aplicada a qualquer ambiente computacional. A linha
pontilhada representa sua extenso para um estudo de caso de elasticidade. A ideia de ciclo

82

Figura 5.2: Fluxo de atividades do framework FOLE


de vida ou fases pode ser aplicada nesta abordagem devido natureza cclica da anlise de
desempenho proposta. Aps a atividade Executar Aes possvel retornar para um replanejamento, caso necessrio, ou repetir a macroatividade Executar Anlise de Desempenho, e
obter uma nova avaliao do ambiente.
Macroatividade - Planejar Anlise de Desempenho

83

1. Definir Objetivos: descrever o sistema a ser analisado e os objetivos a serem atendidos na anlise de desempenho (geral e especficos). Os objetivos da anlise de
desempenho so bastante variados, podendo ser comparaes de tecnologias, resoluo de problemas ou investigar algum aspecto do ambiente. Tambm possvel
querer avaliar o desempenho de uma determinada aplicao real, ou simulada, em
um ambiente de Computao em Nuvem, e assim verificar o comportamento da
elasticidade. Dessa maneira, o objetivo pode ser conhecer o ambiente, verificar o
comportamento do ambiente, identificar os efeitos das cargas de trabalho aplicadas
ao ambiente, verificar se o ambiente se adapta de maneira satisfatria s necessidades das cargas de trabalho impostas, e por fim verificar o atendimento ao SLA
definido.
2. Definir Ferramentas: listar ferramentas a serem utilizadas no experimento para
operaes de infraestrutura, suporte, armazenamento, programao, carga de trabalho e anlise.
Infraestrutura: ferramentas que provm suporte s funcionalidades de um provedor de Computao em Nuvem, tais como middlewares e hipervisores. Mecanismos para alocao e desalocao de recursos tambm so necessrios ser
definidos para a infraestrutura, como balanceadores de carga e ferramentas para
aumentar e reduzir a capacidade dos recursos;
Suporte: em geral scripts so construdos para definir o fluxo de operaes do
ambiente, como a gerao de cargas de trabalho, coleta de mtricas, consolidao dos resultados, e posterior anlise. Alm de apoiar servios do ambiente, a
integrao de diferentes componentes e subsistemas tambm pode ser necessria;
Armazenamento: ferramentas que proveem funcionalidades de armazenamento
das informaes do ambiente. O mecanismo de armazenamento pode ocorrer
de vrias maneiras, tais como: arquivos texto para o armazenamento do log de
dados, banco de dados relacionais, e mecanismos de manipulao de arquivos
XML;
Programao: linguagens de programao para construo de ferramentas, microbenchmarks e consolidao de dados. Eventuais integraes so necessrias,
ento as linguagens de programao possibilitam o desenvolvimento de solues para integrao entre partes e padronizao;
Carga de Trabalho: diversas ferramentas podem ser empregadas na gerao
de cargas de trabalho, tais como aplicaes, benchmarks e microbenchmarks.
Estas ferramentas geralmente possuem algum mecanismo de configurao da
carga de trabalho;
Anlise: em geral so ferramentas que suportam a anlise de dados. Podem
conter mecanismos estatsticos, grficos e relatrios. Ferramentas de monitorao tambm auxiliam na anlise de dados, alimentando bancos de dados com
as informaes a serem utilizadas pelas anlises. Scripts para automao da
anlise tambm podem ser utilizados;

84

As ferramentas esto diretamente associadas arquitetura do ambiente. Muitos provedores de Computao em Nuvem possuem diversas ferramentas, seja APIs para
manipular mquinas virtuais (coleta de dados, adio, remoo, etc), seja para monitorar dados. Em geral, a utilizao dessas ferramentas em provedores pblicos
paga, como na Amazon EC2 e Microsoft Azure. Em middlewares de cdigo livre,
como o OpenNebula e OpenStack, a possibilidade de configurao maior devido
ao cdigo fonte disponvel. Alm disso, diversas ferramentas, linguagens de programao e utilitrios podem ser utilizados pelos usurios e desenvolvedores para
suporte s demais atividades, tais como scripts.
3. Planejar Suporte: definir atividades para o planejamento do suporte s operaes
gerais do ambiente
Definir Log: definir o mecanismo de armazenamento do log de dados (e.g.,
banco de dados, arquivo texto ou XML, CSV, separado por ;" ou |");
Definir Consolidao de Dados: definir o mecanismo de consolidao dos dados obtidos das diversas fontes de dados do experimento para poderem ser utilizados em operaes do ambiente e tomada de deciso. A consolidao deve
considerar uma padronizao sempre que possvel, pois assim os diversos componentes e servios do ambiente podero se comunicar de maneira mais efetiva.
Alm do mecanismo, uma estratgia de consolidao dos dados atravs de informaes estatsticas (mdia, mediana, moda, varincia, desvio padro, erro e
intervalo de confiana) pode ser utilizada para permitir uma anlise mais global;
Definir Apresentao dos Dados: identificar formas de apresentao dos dados
para anlise adequados para anlise de dados (grficos e tabelas). Existem diversos tipos de grficos na literatura que podem auxiliar na visualizao dos
dados. Em geral, grficos de linha e barra so os mais comumente utilizados
para a exibio de dados. Grficos que agregam diversas informaes estatsticas, como o boxplot, tambm so formas de apresentao de dados que podem
auxiliar na anlise de desempenho. Entretanto, cada grfico possui seus benefcios, sendo necessrio a correta seleo para uma melhor visualizao e
anlise. Tabelas tambm so muito utilizadas. A correta estrutura da tabela
permite uma melhor consolidao de resultados. Ferramentas de visualizao
de dados podem ser utilizadas, como pacotes grficos, planilhas ou ferramentas
desenvolvidas para este fim;
Definir Intervalo de Coleta: definir intervalo de tempo em que as ferramentas
iro coletar dados dos recursos pr-definidos do ambiente. Deve-se considerar
o tamanho do tempo de coleta, o overhead e a sincronizao dos dados, pois
possvel que a frequncia de coleta seja maior ou menor que os momentos de
consolidao de dados, e acabe interferindo nos resultados, ou eles no estejam
sincronizados, havendo uma defasagem. Alm disso, o overhead imposto pela
coleta, armazenamento e anlise dos dados tambm deve ser avaliado, pois sua
durao pode ser maior que o tempo definido como intervalo de coleta;
Definir Mtricas: definir as mtricas que iro mapear recursos do ambiente

85

(e.g., CPU, memria, disco, rede) e recursos das aplicaes (tempo de resposta)
utilizadas na anlise. Em geral mtricas de propsito geral so agrupadas nas
seguintes categorias: tempo de resposta, utilizao, throughput, disponibilidade, escalabilidade, aquisio e confiabilidade (JAIN, 1991). Mtricas comumente identificadas em muitos trabalhos so o percentual de utilizao de CPU,
o throughput e tempo de resposta de requisies;
Definir Carga de Trabalho: projetar a carga de trabalho a ser aplicada ao ambiente estabelecido. Alguns aspectos de projeto de experimentos devem ser
considerados no projeto de experimento da carga de trabalho, tais como: taxa
de repetio, ferramentas envolvidas e quantidade de repeties da carga de
trabalho. Outras informaes sobre projeto de experimentos podem ser encontradas em Jain (1991) e Montgomery (2009). As cargas de trabalho podem ser
geradas por meio de aplicaes reais ou sintticas, benchmarks ou microbenchmarks, ou traos computacionais. No caso da avaliao de um ambiente em
produo (ambiente real com usurios reais), considera-se o volume de trabalho
gerado equivalente carga de trabalho projetada;
4. Planejar Elasticidade: definir atividades para o planejamento da anlise de desempenho da elasticidade da nuvem computacional
Definir Estratgia de Elasticidade: definir qual estratgia de provimento da elasticidade ser empregada no experimento. As estratgias podem ser horizontal
(replicao), vertical (redimensionamento ou substituio) ou migrao;
Definir Mtricas para Elasticidade: identificar no conjunto de mtricas definidas quais sero utilizadas para a medio da elasticidade, considerando a combinao de mtricas (indiretas e especficas elasticidade). Mtricas para a
anlise de desempenho da elasticidade podem ser relacionadas infraestrutura,
como percentual de utilizao de CPU e memria, relacionadas aplicao,
como o tempo de resposta das requisies dos usurios, ou mtricas especificas para a medio da elasticidade, como as mtricas propostas neste trabalho
(ERDi , ERAi e EDi ). Essas mtricas sero utilizadas para monitorar e avaliar a
elasticidade do ambiente. Seus resultados avaliaro a adequao da alocao e
desalocao dos recursos em relao s cargas de trabalho;
Definir Limiares: definir os limiares associados ao SLA que o ambiente deve
prover. Muitas vezes os limiares esto associados s polticas definidas para o
sistema a ser avaliado, resultando em regras. Essas regras podem ser funes
de ao, objetivo ou utilitrias, conforme o nvel de especificao desejado.
A quantidade de limiares tambm deve ser considerada, pois quanto maior a
quantidade de limiares, mais overhead do sistema para sua avaliao. Em geral, deve-se definir um limite inferior e um limite superior, com a possibilidade
de limites intermedirios. Esses limiares sero considerados como regras que
sero monitoradas pelo ambiente para aes de elasticidade. Esses limites podem estar associados a recursos do ambiente, tais como utilizao de CPU e
memria, ou mtricas de aplicaes, como a quantidade de requisies executadas por segundo e tempo de resposta;

86

Definir Mecanismo de Predio: identificar mecanismos de predio a serem


utilizados no ambiente. Avaliar mecanismos reativos e proativos para anlise.
Mecanismos reativos reagem carga de trabalho atual e utilizam polticas para
disparar aes. Mecanismos proativos utilizam tcnicas de predio para determinar quando a carga de trabalho futura ir superar ou no a capacidade atual,
requisitando alocao ou desalocao de recursos;
Definir Mecanismo de Provisionamento: definir mecanismos de provimento
de recursos para o ambiente (balanceamento de carga, migrao de mquinas
virtuais, ampliao e reduo de capacidade, etc). Esses mecanismos iro atuar
conforme a estratgia de elasticidade definida;
Definir Aes: definir aes que sero executadas em caso da necessidade do
provimento / desprovimento de recursos. Em geral so disparadas por eventos no ambiente baseados nos limiares e regras definidas, que adicionam ou
removem recursos conforme a necessidade ou polticas definidas;
Definir Estratgia de Anlise: definir estratgias para operacionalizao da anlise do ambiente quanto elasticidade (por exemplo: estatstica descritiva, mdia mvel e n ltimos valores coletados), utilizando mtricas definidas. A utilizao de mecanismos estatsticos auxilia na estratgia definida (mdia, mediana, moda, varincia, desvio padro, erro e intervalo de confiana);
Macroatividade - Inicializar Servios da Anlise de Desempenho
5. Inicializar Servio de Coleta: executar o conjunto de atividades para a inicializao dos servios de coleta de dados (limpeza, coleta e armazenamento). Atividades comuns so: executar scripts para limpar arquivos temporrios, reinicializar
variveis globais, iniciar a coleta dados das diversas fontes e armazenar os dados
coletados em bases de dados.
6. Inicializar Servio de Anlise: executar o conjunto de atividades para a inicializao dos servios de anlise do ambiente baseado nas estratgias definidas. Atividades comuns so: executar scripts para leitura de dados e utilizar estratgias de
anlise conforme tcnica definida.
7. Gerar Carga de Trabalho: executar as atividades de gerao das cargas de trabalho projetadas (inicializao de scripts, leitura de configuraes de banco de dados,
ferramentas, etc). A carga de trabalho projetada executada, gerando uma carga
sobre o ambiente. Em caso de avaliao de um ambiente de produo, a carga de
trabalho o volume atual de trabalho do ambiente.
8. Consolidar Resultados: executar o conjunto de atividades para a consolidao dos
resultados obtidos do ambiente para anlise (organizao e formatao para a anlise). Atividades comuns so: padronizar resultados para leitura por ferramentas,
calcular mtricas consolidadas, gerar arquivos de log e mover arquivos para locais
especficos.
Macroatividade - Executar Anlise de Desempenho

87

9. Analisar Resultados: avaliar os resultados consolidados conforme objetivos e estratgias definidas e direcionar as aes a serem executadas para tomada de deciso.
Analisa as regras definidas pelos limiares e sinaliza a necessidade de aumentar ou
reduzir recursos do ambiente (elasticidade).
10. Executar Aes: executar aes projetadas para adequao do ambiente ao SLA e
atendimento aos objetivos da anlise de desempenho. Em geral, scripts construdos
em atividades anteriores so executados para o ajuste do ambiente s necessidades
de recursos ou para uma melhor distribuio dos recursos atuais, seja pela adio
ou pela remoo de recursos. Essas aes iro tornar o ambiente mais elstico no
sentido de melhor se adaptar s cargas de trabalho submetidas.
5.4

Aplicao do FOLE

O FOLE um framework conceitual. Desse modo, ele abstrato de forma que para
sua utilizao, o usurio deve instanciar cada uma de suas atividades, fazendo a correspondncia
com o ambiente computacional a ser avaliado. Entende-se por instanciar o ato de tornar uma
atividade abstrata ou genrica em concreta e personalizada para um determinado ambiente.
Como o objetivo do FOLE avaliar a elasticidade de um ambiente de Computao
em Nuvem, todas as atividades de elasticidade devem ser instanciadas, e assim, atividades relacionadas elasticidade descrevero o comportamento do ambiente sob este aspecto. Tambm
possvel que o usurio utilize o FOLE para projetar ou validar uma arquitetura, e assim as
atividades definiro o comportamento do ambiente. As demais atividades so tarefas que se
adaptariam bem anlise de desempenho de qualquer ambiente computacional, e caso fossem
utilizadas para este fim, algumas atividades podem ser optativas, conforme a caracterstica do
ambiente.
Na situao em que a infraestrutura j est ativa, com usurios em atividade e cargas de trabalho atuando, as atividades do FOLE devem ser identificadas sobre a infraestrutura
atual, e pontos de deficincia podem ser identificados. Dessa maneira, a infraestrutura poder
ser avaliada, assim como as aplicaes e experimentos conduzidos, do ponto de vista da elasticidade em Computao em Nuvem. Como consequncia de sua utilizao temos: a evoluo
da infraestrutura e das estratgias de elasticidade utilizadas, e adequao dos recursos s cargas
de trabalhos aplicadas ao ambiente.
O FOLE possui trs macroatividades, cada uma respectivamente com foco em planejamento, servios e anlise. As atividades de planejamento possuem um apelo grande para
a definio da infraestrutura, e so atividades voltadas para o projeto de experimentos. As atividades de servios e de anlise so bastante operacionais, e em geral so implementadas por
meio de scripts desenvolvidos para serem executados sobre a infraestrutura.
Muitas ferramentas esto disponveis para a instanciao do FOLE, em geral ferramentas de infraestrutura, suporte, armazenamento, programao, carga de trabalho e anlise. A
seleo das ferramentas a serem utilizadas deve ser cuidadosa, pois elas impactaro na infraestrutura, requerendo certo tempo para estudo e configurao. O ideal que elas sejam ferra-

88

mentas de domnio dos usurios e que j estejam em plena utilizao. Porm o FOLE permite
uma flexibilidade do ponto de vista arquitetural, e ferramentas que possuam a mesma funcionalidade podem ser trocadas ou interagir sem problemas. Para isto, normalmente o usurio deve
ajustar as atividades das macroatividades Inicializar Servios da Anlise de Desempenho e
Executar Anlise de Desempenho.
Existem nuvens computacionais de diferentes tipos: privada, pblica, comunidade
e hbrida. O FOLE possui suporte a todos esses tipos. Alm disso, existe a possibilidade
de novas combinaes de utilizao de nuvens computacionais com outras arquiteturas, como
nuvens distribudas, Computao Mvel, Redes de Sensores sem Fio e Computao de Alto
Desempenho (High Performance Computing - HPC). Todas essas tecnologias podem se beneficiar da elasticidade. Assim, a anlise de desempenho da elasticidade passa por diversos nveis,
tendo seus efeitos propagados nos nveis de infraestrutura (IaaS), nveis de desenvolvimento de
plataformas (PaaS) e chegando aplicao do usurio (SaaS).
5.5

Suporte Ferramental

Esta seo descreve o suporte necessrio para a validao do framework e das mtricas propostas. Para isto, uma arquitetura baseada em algumas caractersticas de Computao
Autonmica foi proposta, sendo seus componentes descritos na Seo 5.5.1. Para apoiar a visualizao e anlise dos resultados obtidos por meio da coleta de informaes do ambiente, uma
ferramenta de visualizao foi construda, sendo descrita na Seo 5.5.2.
5.5.1

Arquitetura

Com o aumento no acesso aos ambientes computacionais em nuvem e sua facilidade


de utilizao, baseada no modelo de pagamento por uso, natural que a quantidade de usurios
e suas respectivas cargas de trabalho tambm cresam. Como consequncia, os provedores
devem ampliar seus recursos e manter o nvel de qualidade acordado com os clientes, sob pena
de quebras do Service Level Agreement (SLA) e decorrentes multas.
O monitoramento de recursos computacionais, como CPU, memria, disco e rede,
se torna essencial tanto para os provedores, os quais disponibilizam os servios, quanto para
seus clientes. Uma maneira de se avaliar um ambiente monitorando algum aspecto, como
utilizao de recursos. Muitas vezes a elasticidade est associada a algum recurso do provedor.
Por exemplo, na Amazon EC2, o cliente pode estar utilizando uma instncia com poucos recursos, monitorado atravs servio de monitoramento (Cloud Watch), e em caso de necessidade de
recursos, o servio de escalonamento (Auto Scaling), atravs do servio de balanceamento de
carga (Elastic Load Balance), pode incrementar a quantidade de instncias. Uma maneira de
monitorar aplicaes em nuvem de modo mais efetivo utilizar mecanismos de Computao
Autonmica, atravs dos quais recursos so adicionados e removidos do ambiente conforme
limiares de uso pr-estabelecidos.

89

Um sistema autnomo ou autonmico composto por um conjunto de elementos


autnomos. Um elemento autnomo um componente responsvel pela gesto do seu prprio
comportamento em conformidade com polticas, e por interagir com outros elementos autnomos que fornecem ou consomem servios computacionais (KEPHART; CHESS, 2003). Mecanismos de Computao Autonmica, como loops de controle e regras, podem ser empregados
no monitoramento de uma nuvem computacional. Assim recursos podem ser adicionados e removidos do ambiente conforme limiares de uso pr-estabelecidos. Esse tipo de estratgia de
monitoramento est diretamente associado a uma das principais caractersticas da Computao
em Nuvem: a elasticidade.
Diversas arquiteturas para solues de provisionamento e manuteno de SLA utilizando recursos de Computao Autonmica em ambientes de Computao em Nuvem tem
sido propostas (REGO et al., 2011; TORDSSON et al., 2012; EMEAKAROHA et al., 2012;
BUYYA; CALHEIROS; LI, 2012; KOUKI; LEDOUX, 2013; URIARTE; WESTPHALL, 2014).
Porm, devido a grande diversidade de tecnologias, pouca disponibilidade de informao acerca
de sua instalao e configurao corretas, do ponto de vista experimental em geral no trivial
implementar tais arquiteturas, muito menos aplic-las em ambientes de nuvens computacionais.
Como soluo para o provimento da elasticidade em Computao em Nuvem baseado em conceitos da Computao Autonmica, uma arquitetura foi proposta utilizando principalmente loops de controle, coletores, atuadores e regras, conforme Kephart e Chess (2003).
Em geral, aspectos de auto configurao foram considerados.
A arquitetura proposta e seus componentes esto descritos na Figura 5.3 juntamente
com seus relacionamentos. Em geral, cargas de trabalho so geradas por diferentes fontes, tais
como usurios reais, benchmarks, traos computacionais e aplicaes. Essa carga de trabalho, dependendo de seu objetivo, pode ser aplicada apenas mquina virtual do balanceador
de carga, ou nas demais mquinas virtuais da infraestrutura, gerando assim uma concorrncia
por recursos. Uma vez que o balanceador de carga recebe requisies, estas so distribudas s
mquinas virtuais alocadas. Localmente em cada mquina virtual os coletores armazenam dados no banco de dados conforme definido no loop de controle local. O loop de controle global
gerencia todo o fluxo da arquitetura, acionando servios de predio e atuao quando necessrios. Ele tambm responsvel por monitorar se os valores consolidados conforme alguma
tcnica esto ultrapassando algum dos limites definidos pelas regras, e assim acionar alguma
ao pr-definida para ajuste da alocao dos recursos.
1. Loop de Controle Global: responsvel por organizar todas as atividades no ambiente
relacionadas elasticidade. O loop de controle global gerencia o comportamento do
sistema como um todo e define como as informaes impactaro nas adaptaes locais.
Ele atua modificando o comportamento atual do ambiente de tal modo que ele possa se
adaptar s necessidades impostas pelas cargas de trabalho. o gerente do ambiente.
Dispara eventos de coleta, predio, anlise e aes de adio e remoo de recursos;
2. Coletor: mecanismo para coletar dados das mquinas virtuais do ambiente. Recupera
dados de diversos recursos e armazena no banco de dados;

90

Figura 5.3: Arquitetura autonmica genrica para elasticidade em Computao em Nuvem


3. Banco de Dados: repositrio de informaes do ambiente. Armazena dados, mtricas e
configuraes do ambiente para posterior consulta pelos demais componentes e servios;
4. Atuador: responsvel por executar aes no ambiente de adio e remoo de mquinas
virtuais no balanceador de carga, assim como sua criao / remoo, conforme estratgia
de alocao de recursos estabelecida;
5. Loop de Controle Local: mecanismo que gerencia as operaes locais de coleta e consolidao de dados nas mquinas virtuais. O loop de controle local gerencia localmente
o comportamento de elementos individuais do sistema. Dessa maneira, ele no possui
visibilidade do comportamento global, atendendo apenas a objetivos ou funes locais;
6. Balanceador de Carga: mecanismo que prov a distribuio das requisies entre as mquinas virtuais alocadas ao ambiente. Pode ser uma ferramenta prpria de balanceamento
de carga ou implementado em alguma linguagem de programao;
7. Cargas de Trabalho: carga de trabalho aplicada ao ambiente, que pode ser gerada por
usurios, aplicaes, traos computacionais ou por benchmarks sintticos. Podem possuir
taxas pr-definidas ou serem aleatrias;
8. Regras: condies que definem limites a serem monitorados de recursos do ambiente,
definidos em nveis. Limiares de qualidade podem possuir limites superiores, inferiores e
intermedirios, onde dependendo dos valores coletados e do nvel associado, aes sero
executadas sobre a infraestrutura;
9. Predio: mecanismo baseado em alguma tcnica, que pode ser estatstica, de predio ou
mesmo uma situao de interesse para o sistema executado sobre a infraestrutura, como

91

mdia mvel e regresso multilinear, que procura prever eventos de adio ou remoo
de recursos do ambiente, com a inteno de evitar quebras no SLA e ociosidade.
10. Mtricas: medem os recursos do ambiente quanto utilizao. So utilizadas nas regras
de definio dos limiares, e obtidas da infraestrutura pelos componentes coletores.
Diversos aspectos desta arquitetura so flexveis do ponto de vista de implementao. Por exemplo, mquinas virtuais podem ser pr-alocadas ou instanciadas dinamicamente.
Situaes como essa no afetam a arquitetura, pois o balanceador de carga utiliza as mquinas
virtuais disponveis no ambiente. O que basicamente se modifica a maneira como o loop de
controle global gerencia a alocao, criao e remoo de mquinas virtuais de maneira dinmica, e a durao das operaes envolvidas.
Apesar da Figura 5.3 no discriminar o tipo da nuvem, ela pode ser aplicada a
qualquer uma delas, ou seja, independente do tipo da nuvem (privada, pblica, comunidade
ou hbrida). Dessa maneira, a arquitetura flexvel a ponto de utilizar qualquer tecnologia
e infraestrutura de nuvem. A arquitetura descrita na Figura 5.4 exibe uma nuvem privada e
nuvem pblica em conjunto, demonstrando a aplicao da proposta de arquitetura para uma
nuvem hbrida.
Alm disso, os eventos utilizados para acionar aes de elasticidade podem utilizar

Figura 5.4: Arquitetura autonmica para elasticidade em Computao em Nuvem com a utilizao de nuvens privadas e pblicas (nuvem hbrida)

92

qualquer estratgia, como a gerao de mquinas virtuais em tempo de execuo (dinamicamente), rplicas de mquinas virtuais, ou migrao de mquinas virtuais.
Para apoiar a implementao dos componentes da arquitetura proposta, alguns algoritmos em alto nvel foram projetados. Considerando a infraestrutura representada pela tupla
I =< M, R,V >, onde M o conjunto de mtricas a serem monitoradas e utilizadas para a criao de regras, R o conjunto de regras, e V o conjunto de valores coletados das mtricas.
Tambm considerando para a representao de uma regra a tupla R =< m, o, f , a >, onde m
a mtrica utilizada na regra, o o operador aplicado na regra (=, >, <, , ), f o valor de
referncia utilizado como limiar na regra, e a a ao a ser tomada em caso da regra ser verdadeira, ou seja, em caso de violao da regra. Por fim, consideramos V =< m, v >, onde m
uma mtrica e v o seu valor coletado.
O Algoritmo 1 descreve o pseudocdigo para uma implementao do mecanismo
de coleta e log de dados. A funo coletarDados(m) deve ser implementada para coletar os
dados das mtricas que sero utilizadas nas regras, como scripts para obteno do percentual
de CPU utilizado. A funo f ormatarDados(dado) deve implementar mecanismos para a padronizao dos dados, deixando a informao de maneira comum a todos os procedimentos da
arquitetura que necessitem dessa informao, como data da coleta da mtrica. O procedimento
salvarDados(dadoFormatado, arquivo,tipo) deve ser implementado para armazenar os dados
no banco de dados (parmetro arquivo), podendo ser, por exemplo, arquivos texto ou um banco
de dados relacional (parmetro tipo). O procedimento logarDados(M) pode ser implementado
como um agente nas mquinas virtuais.
Algoritmo 1 Procedimento para log de dados
1: procedure L OGAR DADOS(M)
2:
for all m M do
3:
dado coletarDados(m)
4:
dadoFormatado f ormatarDados(dado)
5:
salvarDados(dadoFormatado, arquivo,tipo)
6:
V (m) dadoFormatado
7:
end for
8: end procedure
O Algoritmo 2 descreve o pseudocdigo para uma implementao do mecanismo de
verificao das regras, cujo objetivo identificar se limites pr-definidos esto sendo violados.
A funo identi f icarValor(r.m,V ) deve ser implementada para a obteno do valor calculado
da mtrica utilizada na regra. A funo veri f icarViolacao(r, valor) deve implementar um mecanismo para a comparao do valor coletado da mtrica da regra com o valor de referncia,
e identificar uma violao do SLA. O procedimento executarAcao(r.a) deve ser implementado
para acionar as aes definidas para eventos de adio ou remoo de recursos.
Algumas consideraes devem ser feitas em relao aos limites mximo e mnimo
de recursos do ambiente. No caso do limite mximo de recursos ser atingido, duas opes
existem: (1) parar o incremento de recursos, e no ampliar mais a capacidade porque no existe
mais essa possibilidade; (2) utilizar uma soluo externa, como uma nuvem pblica, hbrida

93

Algoritmo 2 Procedimento para verificao das regras


1: procedure V ERIFICAR R EGRAS(R, M, V )
2:
for all r R do
3:
valor identi f icarValor(r.m,V )
4:
if veri f icarViolacao(r, valor) = true then
5:
executarAcao(r.a)
6:
end if
7:
end for
8: end procedure
ou migrar mquinas virtuais. No caso do limite mnimo do ambiente ser atingido, ou seja, no
tendo mais como diminuir os recursos, a soluo parar a remoo dos recursos, permanecendo
na alocao mnima. Ambas situaes so potenciais momentos para a ocorrncia de violaes
de SLA, e so dependentes da estratgia de elasticidade empregada.
O Algoritmo 3 descreve o pseudocdigo para uma implementao do gerente global, representado pelo loop de controle global. A funo veri f icarPredicao(V ) deve implementar um mecanismo para a predio das quebras de SLA baseada nos valores coletados
e nas regras, e assim acionar ou no as aes de elasticidade. Neste caso, o procedimento
executarAcao() deve ser implementado de forma a agir de maneira a antecipar a adio ou
remoo dos recursos. O procedimento veri f icarRegras(R, M,V ) o mesmo descrito no Algoritmo 2.
Algoritmo 3 Procedimento para controle global
1: procedure ACIONAR G ERENTE G LOBAL
2:
loop
3:
if veri f icarPredicao(V ) = true then
4:
executarAcao()
5:
else
6:
veri f icarRegras(R, M,V )
7:
end if
8:
end loop
9: end procedure
A implementao do gerente global pode levar a um problema de sincronizao dos
dados. Enquanto a avaliao das regras ocorre, os dados podem ser modificados conforme a
carga de trabalho aplicada ao ambiente, j que as mquinas virtuais podem no estar sincronizadas nos tempos de coleta ou terem sido iniciadas em tempos diferentes. Alm disso, o envio
dos dados para consolidao pode tambm no estar sincronizado. Estas situaes podem tornar
a avaliao defasada. Um soluo seria a implementao de um gerente global sem eventos de
coleta dos dados da infraestrutura ou aplicao, utilizados nas regras, e sim apenas com a consolidao dos dados para aes de predio e validao das regras. A coleta dos dados ficaria
nos agentes locais das mquinas virtuais. O gerente global iria apenas capturar as informaes
armazenadas, e no logar os dados, minimizando problemas de sincronizao.

94

5.5.2

Ferramenta para Visualizao Grfica dos Dados

Para auxiliar na visualizao e anlise dos dados coletados, uma ferramenta foi
construda. Esta ferramenta possibilita a gerao de grficos para as diversas mtricas coletadas
a partir dos recursos do ambiente. As mtricas de elasticidade propostas tambm podem ser
visualizadas por meio da ferramenta, e dessa maneira auxiliar na anlise da elasticidade.
5.5.2.1

Estrutura da Aplicao

A aplicao foi desenvolvida com a linguagem de programao Java. Ela baseada


na leitura de arquivos texto com as informaes coletadas a partir do ambiente. Assim possvel
a leitura de arquivos texto gerados por meio dos mecanismos propostos na arquitetura. Esses
arquivos registram dados do ambiente, como utilizao de CPU e memria, alm de dados de
aplicaes, como tempo de resposta de requisies.
A ferramenta est dividida em trs pacotes: arquivos de log, grficos e utilitrios,
alm da interface grfica do usurio. Os logs de dados coletados do ambiente e das mtricas
propostas esto distribudos em um conjunto de arquivos texto, que podem ser configurados ou
estendidos sempre que um novo dado precisar ser coletado ou uma nova mtrica for criada. Os
arquivos so: alocao, elasticidade, mdia de consumo de CPU, mquinas virtuais (um para
cada mquina virtual) e servidor web (um para cada mquina virtual). Cada um desses arquivos
possui uma estrutura prpria lida pela aplicao. O pacote de grficos possui um conjunto de
classes correspondente a cada tipo de grfico utilizado pela aplicao. Os utilitrios so uma
biblioteca de funes para manipulao de datas e arquivos texto. A interface grfica permite
que o usurio escolha o experimento a ser lido, correspondente a um conjunto de arquivos de
log, a seleo da mtrica a ser visualizada e os painis de grficos disponveis. Os arquivos de
log lidos pela ferramenta possuem a seguinte estrutura descrita na Tabela 5.1:
Tabela 5.1: Estrutura dos arquivos de log lidos pela ferramenta
Arquivo
Alocao
Mdia de Consumo de CPU
Mquina Virtual

Servidor web
Elasticidade

Estrutura
Data da coleta | Mantm (m), Aumenta (a), ou Diminui (d) | Quantidade de
mquinas virtuais alocadas
Data da coleta | Mdia do valor do percentual de CPU em todas as mquinas
virtuais
Data da coleta | Percentual de utilizao de CPU pelo usurio | Percentual
de utilizao de CPU pelo sistema | Percentual de CPU livre | Quantidade de
memria total | Quantidade de memria utilizada | Quantidade de memria
livre | Quantidade de KB lidos em disco | Quantidade de KB escritos em
disco | Quantidade de pacotes que chegam em KB | Quantidade de pacotes
que saem em KB
Data da coleta | IP de origem | URL | Tempo levado para processar a requisio em milissegundos
Data da coleta | Estresse da Qualidade na Nuvem | Tenso dos Recursos
Alocados | Tenso dos Recursos Demandados | Elasticidade dos Recursos
Alocados | Elasticidade dos Recursos Demandados | Elasticidade da Demanda

95

5.5.2.2

Extensibilidade

A ferramenta permite a flexibilizao na leitura de arquivos texto de log, bastando


o usurio implementar uma classe da estrutura definida no arquivo texto. Mecanismos para
leitura de arquivos j esto disponibilizados para o usurio, bastando que se projete o arquivo
texto baseado em colunas, onde cada coluna possui uma informao coletada do ambiente, e
separadas por um | (arquivos CSV).
Para a incluso de uma nova mtrica, necessrio projetar um novo arquivo de log
a ser lido pela ferramenta com dados do ambiente ou com mtricas geradas automaticamente
pela consolidao de dados. A seguir, uma classe para uma nova mtrica deve ser criada,
com a leitura do arquivo de log correspondente, e configurar os parmetros do grfico a ser
exibido. Para a criao de novos tipos de grfico, o usurio deve utilizar grficos da biblioteca
JFreeChart1 , e adaptar a classe correspondente mtrica desejada. Por fim, a disponibilizao
da mtrica na interface do usurio deve ser implementada, para permitir sua seleo.
5.5.2.3

Mtricas

A ferramenta j possibilita a visualizao de diversas mtricas coletadas do ambiente, conforme descritas na Tabela 5.2. Alm disso, algumas mtricas so disponibilizadas a
partir de dados coletados do ambiente, conforme uma frmula de clculo pr-definida, como o
caso das mtricas de elasticidade: Estresse da Qualidade da Nuvem (SQN ), Tenso dos Recursos
Demandados (TRD ), Tenso dos Recursos Alocados (TRA ), Elasticidade dos Recursos Demandados (ERDi ), Elasticidade dos Recursos Alocados (ERAi ) e Elasticidade da Demanda (EDi ).
Tabela 5.2: Mtricas disponibilizadas pela ferramenta
Mtrica
CPU
Memria

Rede
Disco
Tempo de Resposta
Mdia
Alocao
Elasticidade

Descrio
Percentual de utilizao de CPU do usurio, do sistema e ocioso. Variando de 0% a
100%
Quantidade de memria livre, quantidade de memria total e quantidade de memria
utilizada pelo usurio. Variando de 0 at a quantidade de memria disponvel em
GBytes
Pacotes recebidos e pacotes enviados. Em KB/s
Quantidade de dados lidos e quantidade de dados escritos. Em KB/s.
Tempo de resposta das aplicaes. Em milissegundos (ms)
Mdia de utilizao de CPU de todas as mquinas virtuais, em valores percentuais
Alocao das mquinas virtuais ao longo do tempo, conforme necessidade de adio
ou remoo de recursos
Estresse da Qualidade da Nuvem (SQN ), Tenso dos Recursos Demandados (TRD ),
Tenso dos Recursos Alocados (TRA ), Elasticidade dos Recursos Demandados (ERDi ),
Elasticidade dos Recursos Alocados (ERAi ) e Elasticidade da Demanda (EDi )

Todas as mtricas citadas so visualizadas de maneira individual por mquina virtual, podendo o usurio selecionar qual mquina virtual deseja visualizar os dados. Adicionalmente, possvel verificar algumas mtricas em paralelo. Para todas as mquinas virtuais
possvel se visualizar em paralelo CPU, memria, rede, disco e tempo de resposta. Alocao e
1 JFreeChart

- http://www.jfree.org

96

mdia so mtricas consolidadas, portanto so do ambiente como um todo. Tenso e estresse


so visualizadas em conjunto, para facilitar a anlise, assim como ERAi , ERDi e EDi .
5.5.2.4

Telas

A ferramenta desenvolvida possui basicamente um conjunto de painis de visualizao de grficos, e outro painel para seleo das mtricas e seleo dos arquivos de log de um
determinado experimento, conforme Figura 5.5. Demais telas de utilizao da ferramenta, com
a visualizao das mtricas podem ser visualizadas no Apndice B.

Figura 5.5: Tela tpica para uma anlise de desempenho com a mdia de utilizao de CPU
de todas as mquinas virtuais, a alocao conforme os limiares definidos na infraestrutura, as
mtricas de elasticidade e o tempo de resposta das requisies de um experimento

97

EXPERIMENTOS

Este captulo descreve os experimentos realizados para a validao do framework


FOLE e das mtricas propostas. Dois experimentos foram projetados. O primeiro experimento
realiza uma anlise de desempenho em uma nuvem privada com o apoio do FOLE e utilizando
todas as mtricas propostas de maneira detalhada (Seo 6.1). O segundo experimento executa
uma avaliao da elasticidade em uma nuvem hbrida, tambm com o apoio do FOLE e com as
mtricas de elasticidade (Seo 6.2).
6.1

Experimento - Nuvem Privada

O objetivo deste experimento avaliar o comportamento do ambiente diante de


cargas de trabalho dinmicas e seus efeitos na elasticidade. Este experimento utilizou o FOLE
para o projeto de experimentos. A anlise de desempenho utilizou todas as mtricas propostas
e vrias mtricas relacionadas como complemento.
6.1.1

Material e Mtodos

Para a validao do FOLE, dois experimentos foram projetados e executados em


um mesmo ambiente de nuvem. O OpenNebula 3.8 foi utilizado para a criao de uma nuvem
privada. No foram utilizados neste trabalho nuvens pblicas comerciais. Todas as mquinas
fsicas so de 5 e 7 ncleos (Ci5 e Ci7), 24 GB de memria RAM, sistema operacional Ubuntu
Server 12.04 64 bits e hipervisor KVM. Foram utilizadas quatro mquinas virtuais nos experimentos, todas com 1 VCPU, 1 GB de memria RAM e sistema operacional Ubuntu Server
12.04 64 bits. O Apache Tomcat foi utilizado como servidor web, como balanceador de carga o
NGINX, e como gerador de cargas de trabalho o HTTPERF. A instanciao do framework foi
desenvolvida em Java e shell script. A representao do testbed est descrita na Figura 6.1.
6.1.2

Carga de Trabalho

Destaca-se a gerao de cargas de trabalho diretamente na mquina virtual do balanceador de carga, oriundas de navegadores web e do HTTPERF, que so distribudas entre
as demais mquinas virtuais, e tambm cargas de trabalho executadas diretamente nas mquinas virtuais utilizadas pelas aplicaes. A ideia foi emular a concorrncia pelos recursos em
diferentes maneiras de se utilizar um ambiente de Computao em Nuvem. A Figura 6.2 ilustra a carga de trabalho empregada nos dois experimentos sobre a infraestrutura construda. A
Tabela 6.1 detalha o projeto, as taxas e quantidade de requisies aplicadas carga de trabalho.

98

Figura 6.1: Arquitetura e ambiente experimental para o experimento com nuvem privada
6.1.3

Projeto do Experimento - Instanciao do FOLE

O objetivo dos experimentos avaliar o comportamento de aplicaes web diante


de cargas de trabalho dinmicas, e como se comportam de maneira autonmica para adaptao
a variaes de demanda e manuteno do SLA. Para isso, o FOLE ser utilizado. Como ele
um framework conceitual, suas atividades devero ser instanciadas para o ambiente e projeto de
experimentos. Destaca-se que o objetivo validar as atividades do FOLE, e no implementar

Figura 6.2: Representao da carga de trabalho aplicada ao experimento com nuvem privada

99

Tabela 6.1: Critrios para avaliao de desempenho para os experimentos


Critrios
Sistema
Mtricas

Parmetros
Fatores

Tcnica de Avaliao
Carga de Trabalho

Projeto de Experimentos

Anlise dos Dados

Apresentao dos Resultados

Descrio
Ambiente privado de Computao em Nuvem (OpenNebula)
Tempo de resposta das aplicaes, percentual de utilizao de CPU, percentual de utilizao de memria, pacotes recebidos e enviados em KB, KB lidos
e escritos em disco; SQN , TRD , TRA , ERDi , ERAi , ERDi , ERAi , EDi , EDi TAE,
TASu, TASo, TAT , T RASu, T RASo, T RAE; Elasticidade de Scaling Up e
Elasticidade de Scaling Down (HERBST; KOUNEV; REUSSNER, 2013);
Relao Custo/Benefcio Mdia (SIMES; KAMIENSKI, 2014)
CPU, memria, sistema operacional, quantidade de mquinas virtuais
Configurao do benchmark (repeties e tamanho da matriz), configurao do BLAST (tamanho do arquivo, tamanho da consulta), configurao do
HTTPERF (quantidade de requisies, taxa de requisies, tempo)
Medio
Experimento 1: Microbenchmark - Executar multiplicaes de matrizes
(dimenso 200x200x200) atravs de um microbenchmark construdo na linguagem de programao Java, sob a forma de pequenas aplicaes web, com
requisies disparadas atravs do HTTPERF, com taxas variando de 1 a 5
requisies por segundo e quantidade de conexes variando em 10, 30 e 50;
Experimento 2: BLAST - Executar uma aplicao cientfica (BLAST), atravs de um microbenchmark construdo na linguagem de programao Java,
sob a forma de pequenas aplicaes web, com requisies disparadas atravs do HTTPERF, com taxas variando de 1 a 3 requisies por segundo e
quantidade de conexes variando em 3, 6 e 9
Gerao da carga de trabalho com o HTTPERF no servidor web para que
os recursos dinamicamente se adaptem s necessidades de CPU. O primeiro
experimento utiliza um microbenchmark e o segundo uma aplicao de computao cientfica
Interpretao dos resultados descritos nos grficos de mdia do percentual de
CPU, grficos de alocao das mquinas virtuais, grficos de elasticidade e
tabelas com mtricas coletadas
Grficos de linha, grfico de bolhas e tabelas

solues timas. A inteno executar todas as atividades do framework. A Tabela 6.1 detalha
itens do projeto experimental, tais como mtricas e cargas de trabalho.
As ferramentas foram definidas na infraestrutura. Para a macroatividade Planejar Suporte, arquivos texto registram o log das operaes de coletadas. O log gerado para
cada mquina virtual em arquivo texto contm a data da coleta, valores de utilizao de CPU,
memria, disco e rede. Tambm foi gerado um arquivo de log para a mdia de utilizao de
CPU e alocao de recursos, permitindo sua leitura em uma ferramenta construda especificamente para a visualizao grfica de todas as mtricas de maneira individual (mtricas coletadas
de cada mquina virtual) e em conjunto (mtricas coletadas de todas as mquinas virtuais ao
mesmo tempo). A consolidao dos dados ocorreu por meio da leitura dos arquivos de log e a
partir desses dados decises foram tomadas. O dados coletados so apresentados sob a forma
de grficos de linha, a serem disponibilizados atravs da aplicao de visualizao. O intervalo
de coletas definido foi de 1 segundo adicionado do custo da coleta e anlise dos resultados.
Para a avaliao da elasticidade, utilizamos mtricas diretamente e indiretamente
associadas elasticidade, descritas na Tabela 6.1. Utilizamos mtricas baseadas em tempo
de execuo de operaes: Tempo de Alocao Sobreprovisionado (TASo), correspondente ao

100

tempo utilizado em operaes de remoo de recursos; Tempo de Alocao Subprovisionada


(TASu), utilizado para medir o tempo de operaes de adio de recursos; Tempo de Alocao
Estabilizada (TAE), tempo no qual no h adio ou remoo de recursos; e Tempo de Alocao
Transitria (TAT ), correspondente ao tempo em que os efeitos da adio ou remoo de recursos
ainda no impactaram no ambiente. Tambm utilizamos mtricas baseadas na utilizao de
recursos: Total de Recursos Alocados Subprovisionados (T RASu), correspondente quantidade
de recursos alocados em um estado subprovisionado, mas no estabilizado; Total de Recursos
Alocados Sobreprovisionados (T RASo), indicando a quantidade de recursos alocados em um
estado sobreprovisionado, mas no estabilizado; e o Total de Recursos Alocados Estabilizados
(T RAE), que corresponde quantidade de recursos em um estado estabilizado. Para a medio
especfica da elasticidade foram utilizadas as mtricas propostas neste trabalho, baseadas em
conceitos da Fsica e da Microeconomia. Como anlise complementar, utilizamos as mtricas
Elasticidade de Scaling UP e Elasticidade de Scaling Down, para avaliar a velocidade na qual
um ambiente realiza tais operaes, e a relao custo/benefcio mdia.
As cargas de trabalho foram aplicadas diretamente na mquina virtual do balanceador de carga, onde requisies geradas por navegadores web e pelo HTTPERF, que so
distribudas entre as demais mquinas virtuais. Alm disso, tambm foram aplicadas cargas
de trabalho diretamente nas mquinas virtuais utilizadas pelas aplicaes. A ideia emular a
concorrncia pelos recursos em diferentes maneiras de se utilizar um ambiente de Computao
em Nuvem.
Para a macroatividade Planejar Elasticidade, um mecanismo baseado na arquitetura de Computao Autonmica proposta foi utilizado. Uma estratgia de elasticidade horizontal foi aplicada, atravs da qual medida que recursos so necessrios, novas instncias de
mquinas virtuais so adicionadas, por meio de um balanceador de carga, e retiradas caso no
sejam mais necessrias. Para a avaliao da elasticidade foram utilizadas as mtricas propostas
neste trabalho, baseadas em conceitos da Fsica e da Microeconomia, alm das demais mtricas que indiretamente avaliam a elasticidade e mtricas de trabalhos relacionados, citadas na
Tabela 6.1. A mtrica utilizada para disparar aes de elasticidade (gerar eventos de adio/remoo de recursos) foi a mdia do percentual de utilizao de CPU das mquinas virtuais. Os
limiares utilizados para a execuo de alguma ao de elasticidade no ambiente foram: acima
de 90% (aloca uma nova mquina virtual), abaixo de 80% (desaloca uma mquina virtual), e
entre 80% e 90% (mantm alocao). Esses valores foram definidos considerando a premissa
que a situao ideal de consumo de CPU das mquinas virtuais do ambiente deveria ser quase
em sua totalidade, maximizando a utilizao da capacidade de processamento. O valor a ser
comparado com os limiares foi calculado como a mdia das 10 ltimas coletas de utilizao
de CPU nas mquinas virtuais. Esse valor foi utilizado apenas para prover uma resposta mais
rpida para a anlise, mas o ideal em ambientes reais que ele seja maior.
Como mecanismo de predio foi utilizado regresso multilinear sobre valores de
utilizao de CPU, memria, disco e rede, coletados em experimentos prvios, com cargas
de trabalho semelhantes. Esse clculo realizado para decidir se uma ao de alocao ou
desalocao deve ser executada ou no, antes mesmo do clculo da mdia.
Para o provisionamento dos recursos, a estratgia de um balanceamento de carga

101

foi utilizada, onde mquinas virtuais so adicionadas conforme a necessidade. Um conjunto de


scripts foi desenvolvido para as aes e estratgias de anlise.
As macroatividades Inicializar Servios da Anlise de Desempenho e Executar
Anlise de Desempenho foram implementadas atravs de scripts que inicializavam os servios de coleta, anlise, gerao das cargas de trabalho (operaes manuais com o HTTPERF),
consolidao dos dados, alm de analisar e disparar aes.
6.1.4

Experimentos

Nesta seo os experimentos projetados so descritos. As Subsees 6.1.4.1 e


6.1.4.2 descrevem experimentos que aplicam diferentes cargas de trabalho ao ambiente. A
Subseo 6.1.5 exibe as mtricas propostas calculadas e mtricas calculadas de trabalhos relacionados. Por fim, uma discusso dos resultados apresentada na Subseo 6.1.6.
6.1.4.1

Experimento 1 - Microbenchmark

A carga de trabalho utilizada neste experimento foi projetada para executar operaes de multiplicao de matrizes, com muitas operaes de CPU e memria, por meio de
um microbenchmark. O tempo de resposta das aplicaes geradas foi relativamente curto, variando em algumas centenas de milissegundos. A durao deste experimento foi de 12min58s.
A Figura 6.3 ilustra o tempo de resposta das requisies para cada uma das quatro mquinas
virtuais envolvidas no experimento, a utilizao mdia de CPU de todas as mquinas virtuais e
a alocao das mquinas virtuais.
Muitas variaes no consumo de CPU ocorreram devido caracterstica do microbenchmark, uma vez que alocaes e desalocaes eram disparadas quando os limiares eram
atingidos. Para memria o comportamento foi quase constante, estando em todas as mquinas
virtuais quase sempre em 100%.
Muitas variaes no tempo de resposta das aplicaes foram identificadas, principalmente na mquina virtual 1, onde vrios picos ocorreram. Muitas vezes, estes picos ocorreram devido ao fato que muitas requisies estavam represadas no servidor da mquina virtual
1, e demoraram muito a serem finalizadas. Alm disso, o tempo de resposta nas demais mquinas virtuais variou pouco devido estratgia de balanceamento de carga inicialmente utilizar a
mquina virtual 1, enquanto as demais foram utilizadas apenas quando recursos eram necessrios. Nas demais mquinas virtuais o comportamento foi mais constante, o que implica em uma
distribuio de requisies conforme a necessidade.
Os grficos de utilizao mdia de CPU e alocao de mquinas virtuais mostram
mtricas diretamente associadas elasticidade. Identificou-se que quando o SLA era violado,
novas instncias de mquinas virtuais eram alocadas ao balanceador de carga, e quando a utilizao da CPU era inferior ao limite estabelecido, havia uma desalocao de mquinas virtuais.

102

Figura 6.3: Tempo de resposta das requisies para cada uma das quatro mquinas virtuais
(milissegundos), utilizao mdia de CPU (%) e alocao/desalocao das mquinas virtuais
para o Experimento 1
6.1.4.2

Experimento 2 - BLAST

A carga de trabalho neste experimento foi projetada para executar uma aplicao cientfica, BLAST (NCBI, 2013), orientada a CPU, memria e disco. O BLAST uma ferramenta
de similaridade muito utilizada para comparao e anlise de sequncias de protenas. Ele um
algoritmo otimizado para velocidade utilizado para buscar em bancos de dados sequncias de
alinhamentos locais de uma consulta. Como o BLAST uma aplicao de computao cientfica, esperado que seu consumo de CPU seja alto. O tempo de resposta das aplicaes geradas
foi mais longo em relao ao experimento anterior, variando em alguns milhares de milissegundos. A durao do experimento foi de 19 minutos. A Figura 6.4 ilustra o tempo de resposta das
requisies para cada uma das quatro mquinas virtuais envolvidas no experimento, a utilizao
mdia de CPU e a alocao das mquinas virtuais.
Assim que a primeira mquina virtual executava requisies, sua utilizao de CPU
aumentava, e ao superar o limite de qualidade estabelecido, novas instncias foram alocadas.
Para memria e acesso a disco o comportamento foi quase constante, porm a memria em
todas as mquinas virtuais permaneceu quase sempre em 100%, semelhante ao Experimento
1. Espera-se que em aplicaes melhores estruturadas com o BLAST, a leitura em disco seja

103

Figura 6.4: Tempo de resposta das requisies para cada uma das quatro mquinas virtuais
(milissegundos), utilizao mdia de CPU (%) e alocao/desalocao das mquinas virtuais
para o Experimento 2
maior, pois ocorre uma pesquisa em disco.
Em relao ao tempo de resposta das aplicaes, poucas variaes ocorreram nas
mquinas virtuais, diferente do Experimento 1, onde a maioria das requisies e maiores tempos
de resposta ocorreram na mquina virtual 1. Neste experimento, as requisies e os tempos de
resposta foram melhores distribudos nas mquinas virtuais. Em picos de utilizao de CPU as
4 mquinas virtuais foram alocadas, e em geral h uma desalocao logo aps. Isso se explica
devido carga de trabalho empregada, que parava de enviar requisies por um intervalo de
tempo, perodo em que as requisies alocadas eram finalizadas.
Em intervalos onde somente havia uma mquina virtual alocada, observou-se algumas requisies nas demais mquinas virtuais, nos grficos de tempos de resposta. Isto ocorreu
por causa da estratgia de elasticidade horizontal aplicada, e todas as mquinas virtuais j estavam funcionalmente ativas. Alm disso, a carga de trabalho projetada gerava requisies locais.
6.1.5

Mtricas

O clculo das mtricas propostas foi realizado para os dois experimentos. Todas as
mtricas propostas foram calculadas e consolidadas em tabelas e grficos, para suas validaes

104

e comparao entre si. Alm disso, mtricas propostas na literatura tambm foram calculadas,
para fim de comparao e anlise complementar. Ao final desta seo, uma discusso mais
inter-relacionada dos resultados apresentada.
6.1.5.1

Mtrica 1 - Fsica

Os valores de SQN , TRD , TRA , ERDi e ERAi calculados para os Experimentos 1 e 2


podem ser verificados nas Figuras 6.5 e 6.6. Durante o Experimento 1, a elasticidade resultou
em 12 picos. ERDi obteve valores na faixa de -9 a 9, variando em 18 unidades entre valores

(a) Estresse da Qualidade na Nuvem (SQN ), Tenso dos Recursos Demandados (TRD )
e Tenso dos Recursos Alocados (TRA )

(b) Experimento 1 - ERDi

(c) Experimento 1 - ERAi

Figura 6.5: Experimento 1 - Microbenchmark: Estresse da Qualidade na Nuvem (SQN ), Tenso dos Recursos Demandados (TRD ), Tenso dos Recursos Alocados (TRA ), Elasticidade dos
Recursos Demandados (ERDi ) e Elasticidade dos Recursos Alocados (ERAi ).

105

(a) Estresse da Qualidade na Nuvem (SQN ), Tenso dos Recursos Demandados (TRD )
e Tenso dos Recursos Alocados (TRA )

(b) Experimento 2 - ERDi

(c) Experimento 2 - ERAi

Figura 6.6: Experimento 2 - Blast: Estresse da Qualidade na Nuvem (SQN ), Tenso dos Recursos Demandados (TRD ), Tenso dos Recursos Alocados (TRA ), Elasticidade dos Recursos
Demandados (ERDi ) e Elasticidade dos Recursos Alocados (ERAi ).
mnimos e mximos. ERAi resultou em valores de -5 a 5, variando em 10 unidades. Para o
Experimento 2, a quantidade de picos foi menor, resultando em apenas 8 picos. A variao de
ERDi foi de -5.3 a 6.25, variando em 11.5 unidades entre valores mnimos e mximos. Para ERAi
a faixa de valores foi de -4 a 4, variando em 8 unidades.
Esse comportamento se deve ao fato que a carga de trabalho do Experimento 1 era
composta por pequenas aplicaes (menores e mais rpidas), porm maior em quantidade, enquanto que no Experimento 2 as aplicaes eram maiores e mais demoradas, e em quantidades
menores. Essa variao entre os valores mximos e mnimos indica que se utilizou muitos
recursos ou existe a necessidade por mais recursos.
O estresse (SQN ) respeita a carga de trabalho aplicada ao ambiente no sentido que
variaes na carga que impliquem em um consumo de CPU prximas ao SLA estabelecido
influenciam no SQN . H a tendncia de aumentar seu valor se a carga de trabalho imposta

106

aumentar. Momentos curtos de variao na carga de trabalho e no consumo de CPU no impactam tanto em SQN , implicando em SQN menor e mais constante. Para o contexto definido, SQN
sempre ser maior ou igual a 1 devido suposio de sempre haver pelo menos uma mquina
virtual alocada. A tenso (TRD e TRA ) tambm no muito influenciada pelas variaes de carga
de trabalho, pois mantm os valores prximos uns dos outros, mas acompanha as variaes.
A elasticidade mdia dos recursos foi calculada, e teve como resultado para ERAi e
ERDi igual a 0.07 e 0.06, respectivamente para o Experimento 1, e 0.00 e 0.03 respectivamente
para o Experimento 2. Esse valor ERDi igual a 0.00 para o Experimento 2 destacou-se, porm
foi calculado da mesma maneira, reforando que na mdia o Experimento 1 mais elstico que
o Experimento 2, isto , mais sensvel mudanas impostas pelas cargas de trabalho.
6.1.5.2

Mtrica 2 - Microeconomia

Os valores de EDi calculados para os Experimentos 1 e 2 podem ser visualizados na


Figura 6.7. EDi para o Experimento 1 possuiu 11 picos grandes de variao, indo da faixa de 0
a 3. Para o Experimento 2, a variao foi menor, de 0 a 2, e possuindo apenas 8 picos.
Sempre que h uma alocao e uma desalocao, existem picos correspondentes
em EDi , a exceo do Experimento 1, no qual o ltimo pico ocorreu de maneira isolada. Esse
fato coincide com a menor situao de alocao (de 1 para 2 mquinas virtuais), e sua rpida
desalocao. O Experimento 1 foi bem mais diversificado que o 2, com variaes mais bruscas

(a) Experimento 1 - Microbenchmark

(b) Experimento 2 - Blast

Figura 6.7: Elasticidade dos Recursos Demandados (EDi ) para os Experimentos 1 e 2

107

no consumo de CPU. O Experimento 2, por sua vez, foi mais constante em termos de cargas de
trabalho e alocao.
medida em que os recursos foram demandados, e os limites de SLA estabelecidos
eram atingidos, os recursos disponveis eram alocados, por meio da adio de mquinas virtuais
ao balanceador de carga, chegando ao limite do ambiente. Quando havia uma diminuio de
requisies, os recursos alocados ocupados eram novamente liberados. Pelo mecanismo de
elasticidade, eles eram retirados do balanceador de carga, o que implicava na desalocao das
mquinas virtuais.
Na mdia, os experimentos tiveram valores muito prximos. EDi resultou em 0.75 e
0.74, respectivamente para os Experimentos 1 e 2. A carga de trabalho foi disparada da mesma
maneira, variando-se apenas a aplicao utilizada e taxas. Esses foram os fatores diferenciais
no consumo de CPU.
6.1.5.3

Mtricas Orientadas a Tempos de Operaes e Utilizao de Recursos

Para uma avaliao complementar da elasticidade, um conjunto de mtricas foi proposto, divididas em dois grupos: tempo de execuo de operaes, medida em minutos, e utilizao de recursos, medida em quantidade de mquinas virtuais. A Tabela 6.2 contm as mtricas
calculadas para os dois experimentos realizados.
Para as mtricas relacionadas a tempos de operaes, ambos experimentos possuram TAE bem longos em relao s demais mtricas, ocupando grande parte do tempo total
dos experimentos. Essa estabilidade significa que, de certa forma, as alocaes e desalocaes
estavam estabilizadas" ou paradas" em termos de operaes de elasticidade. No Experimento
2, TASu e TASo foram maiores que no Experimento 1. Porm, TASu e TASo tiveram valores
prximos, o que pode implicar em capacidades elsticas semelhantes. Para TAT , os valores
foram muito prximos nos dois experimentos, reforando operaes de elasticidade executadas
com comportamento e durao semelhantes. Porm a durao dos experimentos e a quantidade
de mudanas nos estados influencia na anlise. No se pode afirmar com certeza que o Experimento 2 foi pior que o Experimento 1, ou menos elstico, pois em termos de durao foi
aproximadamente 6 minutos mais longo.
Em relao s mtricas orientadas utilizao de recursos, T RAE, T RASu e T RASo,
ao contrrio da maioria das mtricas de tempo, foram maiores para o Experimento 1, implicando
uma maior utilizao de recursos durante aes de alocao e desalocao (mquinas virtuais).
de se esperar que quanto maior forem seus valores, maior seja TAT . Essas mtricas analisam indiretamente a elasticidade do ambiente. Se analisarmos os grficos de elasticidade das
Figuras 6.5 e 6.6, verificamos que as variaes coincidem com as alocaes (Figuras 6.3 e 6.4),
consequentemente com os momentos onde so mais utilizados recursos, podendo ser empregados como anlise complementar para a elasticidade.
Em ambos experimentos, TAE ocupa a maioria do tempo de alocao, conforme
esperado. Isto se deve ao fato que em grande parte dos experimentos, a alocao dos recursos
estvel, variando apenas quando h incremento ou reduo de recursos, refletidos nos tem-

108

Tabela 6.2: Mtricas coletadas para os Experimentos 1 e 2


Mtrica
Tempo Total do Experimento (minutos)
Tempo de Alocao Estabilizada (TAE)
Tempo de Alocao Subprovisionada (TASu)
Tempo de Alocao Sobreprovisionada (TASo)
Tempo de Alocao Transitria (TAT)
Percentual do Tempo de Alocao Estabilizada
Total de Intervalos de Tempo de Alocao Estabilizada
Tempo Mdio de Alocao Estabilizada
Percentual do Tempo de Alocao Subprovisionada
Total de Intervalos de Tempo de Alocao Subprovisionada
Tempo Mdio de Alocao Subprovisionada
Percentual do Tempo de Alocao Sobreprovisionada
Total de Intervalos de Tempo de Alocao Sobreprovisionada
Tempo Mdio de Alocao Sobreprovisionada
Percentual do Tempo de Alocao Transitria
Total de Recursos Alocados (mquinas virtuais)
Total de Recursos Alocados Estabilizado (TRAE)
Mdia de Recursos Alocados Estabilizado
Total de Recursos Alocados Subprovisionados (TRASu)
Mdia de Recursos Alocados Subprovisionados
Total de Recursos Alocados Sobreprovisionados (TRASo)
Mdia de Recursos Alocados Sobreprovisionados
Elasticidade de Scaling Up
Elasticidade de Scaling Down
Relao Custo/Benefcio Mdia
Elasticidade Mdia da Fsica ERDi
Elasticidade Mdia da Fsica ERAi
Elasticidade Mdia da Microeconomia EDi

Experimento 1
12:58
11:01
00:26
00:27
01:03
84.92%
12
00:55
3.45%
6
00:04
2.04%
6
00:04
8.10%
132
54
4.5
47
7.8
31
5.1
0.03
0.04
1.98
0.06
0.07
0.75

Experimento 2
19:00
16:51
00:37
00:31
00:59
88.74%
9
01:52
3.29%
4
00:09
2.73%
4
00:07
5.23%
102
42
4.66
36
9
24
6
0.01
0.02
2.06
0.03
0.00
0.74

pos TASu, TASo e TAT . Apesar de experimentos com diferentes cargas de trabalho, todas as
mtricas de tempo possuram valores percentuais em relao ao tempo total do experimento
prximos para os dois experimentos, indicando similaridade nos experimentos.
Estabilidade no necessariamente implica em atendimento do SLA. Um valor alto
para TAE deve ser analisado em conjunto com outros aspectos. O limite superior definido
para SLA foi 90%, e ocorreram algumas violaes. Isto indica que a capacidade de recursos
atingiu o limite. Se houvessem mais recursos, os grficos de alocao teriam mais degraus,
correspondendo a alocaes e desalocaes de mquinas virtuais. As mtricas T RASu e T RASo
aumentariam e T RAE diminuiria. Consequentemente TASu e TASo provavelmente seriam maiores. Diferente da mtrica TAE, cujo valor maior que TASu, TASo e TAT , a mtrica T RAE
mostra que um ambiente pode ter grandes intervalos de alocao estvel com poucos recursos.
Quanto maior a variao na mdia de consumo de CPU, maior a adio ou remoo de recursos no ambiente. Apesar que no Experimento 1 foram alocados mais recursos s operaes de
scaling up e scaling down, na mdia os valores foram bem prximos. O ideal que quanto
maior a quantidade de intervalos em estado de alocao subprovisionada e sobreprovisionada,
maior a capacidade do ambiente em se adaptar s demandas impostas. Os valores mdios para

109

Figura 6.8: Relao custo/benefcio da elasticidade para os dois experimentos.


T RASu, T RASo e T RAE foram bem prximos nos dois experimentos, indicando similaridade
nos comportamentos.
Outros autores na literatura propuseram diferentes formas de se medir e avaliar a
elasticidade. Para uma comparao e anlise mais completa, algumas mtricas foram coletadas
nos experimentos e dispostas na Tabela 6.2.
Utilizando as mtricas propostas por Herbst, Kounev e Reussner (2013), concluiuse que o Experimento 1 um pouco mais veloz que o Experimento 2, obtendo 0.03 e 0.01
na Elasticidade de Scaling Up respectivamente. Esse valor indica a velocidade na qual recursos so alocados, mudando de um estado subprovisionado para um estado timo (estados com
alocao igual demanda) ou sobreprovisionado. Na Elasticidade de Scaling Down ocorre o
mesmo comportamento em termos de velocidade (0.04 e 0.02), sendo o Experimento 1 tambm mais veloz. Esse valor indica a velocidade na qual so desalocados recursos de estados
sobreprovisionados para estados timos ou para estados subprovisionados.
Por fim, uma anlise do custo/benefcio da elasticidade foi realizada sobre um ambiente de Computao em Nuvem por Simes e Kamienski (2014), utilizando mtricas de aplicao. Aps uma adaptao, trazendo para o contexto dos experimentos executados, calculamos
a relao custo/benefcio como a multiplicao entre o percentual de utilizao de CPU e a
quantidade de mquinas virtuais alocadas em cada ponto de coleta do experimento. Sendo assim, calculou-se a relao custo/benefcio mdia para os dois experimentos, identificado que
os resultados foram bastante prximos, mesmo com cargas de trabalho diferentes, com uma
leve vantagem para o Experimento 1. Visualmente percebe-se que o Experimento 2 possui uma
curva mais suave, o que indica que o ambiente tem comportamento semelhante ao longo do
tempo em relao alocao das mquinas virtuais e utilizao de CPU. O ideal que o custo/benefcio seja o mais baixo possvel, pois assim indicaria que poucas operaes de alocaes
e desalocaes so necessrias para suprir as necessidades de utilizao de CPU, ou que eles
so proporcionais. Na Figura 6.8 pode-se observar que no final do Experimento 1 ocorreu uma
diminuio no valor da relao custo/benefcio, o que desejvel.
6.1.6

Discusso dos Resultados

De maneira geral, analisando os dois experimentos, nota-se que em alguns momentos a mdia de utilizao da CPU ficou acima do limite, resultando em violaes do SLA. Caso
existissem mais mquinas virtuais alocadas ao balanceador de carga, tais violaes reduziriam.

110

Isso um aspecto diretamente relacionado ao provisionamento de recursos. Nesse caso, o ideal


que instncias de mquinas virtuais fossem geradas dinamicamente sempre que necessrio, e
finalizadas quando no mais necessrio. O tempo de resposta foi alto em muitos casos, mesmo
quando novas mquinas virtuais eram alocadas. Muitos deles devido latncia das operaes.
Para minizar esses altos valores, possivelmente uma escolha de limiares diferentes seria suficiente para manter a latncia sempre dentro de um limite aceitvel, alm da incluso de regras
que contemplassem o tempo de resposta como critrio para aes de elasticidade.
As Figuras 6.9 e 6.10 exibem os valores calculados para ERDi , ERAi e EDi com uma
sobreposio nos resultados. Comparando a diferena entre os valores mnimos e mximos de
ERDi e ERAi em relao a EDi , houve uma diferena significante. Para o Experimento 1, os
valores de ERDi e ERAi foram respectivamente 18 e 10, e EDi foi igual a 3. Para o Experimento
2, 11.5 e 8, respectivamente para ERDi e ERAi , e 2 para EDi . Alm disso, EDi no possui valores
negativos. O Experimento 1 teve em alguns pontos ERAi atingindo 5, e nesses momentos a
alocao estava no mximo, necessitanto talvez de mais recursos, que o ambiente no possua.
Nesse momento, algumas violaes de SLA ocorreram. O mesmo ocorreu para o Experimento
2, mas com um pico menor, com ERAi igual a 4. O equivalente ocorreu para ERAi negativos,
indicando desalocaes. Em relao a ERDi , o mesmo comportamento ocorreu.

(a) Experimento 1 - Microbenchmark - ERDi e EDi

(b) Experimento 1 - Microbenchmark - ERAi e EDi

Figura 6.9: Grficos sobrepostos da elasticidade para o Experimento 1 - Microbenchmark.

111

(a) Experimento 2 - Blast - ERDi e EDi

(b) Experimento 2 - Blast - ERAi e EDi

Figura 6.10: Grficos sobrepostos da elasticidade para o Experimento 2 - Blast.


Os valores para ERDi , ERAi e EDi acompanharam as variaes no consumo de CPU
e na alocao das mquinas virtuais. Em ambos experimentos, na maioria dos casos, para cada
pico de alocao e desalocao, houve um pico em para ERAi e ERDi , e EDi , um correspondente
s alocaes, e outro correspondente s desalocaes. Especificamente para EDi , no Experimento 1, houve apenas um pico, ocupando o tempo de alocao e desalocao. Isto ocorreu
justamente ao final do experimento, quando a maioria das mquinas virtuais estavam ficando
disponveis e sendo desalocadas pelo balanceador de carga. Os pontos de pico entre as mtricas
propostas coincidem, variando apenas seus valores.
Em relao s mdias, os valores para os Experimentos 1 e 2 foram bastante prximos. Porm houve uma variao considervel entre as mtricas orientadas a conceitos da
Fsica e orientadas a conceitos da Microeconomia. Isso se deve ao fato que apenas a carga de
trabalho aplicada foi diferente, permanecendo a mesma infraestrutura, o mesmo mecanismo de
elasticidade, e os mesmos limiares. A Elasticidade de Scaling Up e Elasticidade de Scaling
Down tiveram valores bastante prximos a ERAi e ERDi , e sempre o Experimento 1 maior que o
Experimento 2, indicando uma coerncia entre os resultados. Comparando essas mtricas com
ERDi e ERAi , com valores iguais a 0.06 e 0.07, respectivamente para o Experimento 1, e 0.03 e
0.00 respectivamente para o Experimento 2, refora-se que o Experimento 1 mais elstico, em
termos de utilizao de CPU e operaes com mquinas virtuais.
O grfico da Figura 6.11 descreve para os dois experimentos a quantidade de mquinas virtuais alocadas (eixo x) e a quantidade de mquinas virtuais demandadas (eixo y). O
Experimento 1 alocou mais mquinas virtuais que o Experimento 2, tanto em termos de quanti-

112

(a) Experimento 1 - Microbenchmark

(b) Experimento 2 - Blast

Figura 6.11: Grfico de bolhas para os dois experimentos indicando mquinas virtuais alocadas
por mquinas virtuais demandadas.
dade, quanto em termos de antecipao de recursos. Porm, o Experimento 2, foi mais proporcional em termos de alocao de recursos, pois existem pontos em que a alocao e a demanda
esto igualmente dispostas no grfico. Esses valores podem possuir o mesmo significado das
mtricas T RASu e T RASo, pois assim como elas medem a quantidade de recursos em estados
subprovisionados e sobprovisionados, podemos utilizar o grfico tambm para avaliar estados
sobreprovisionados e subprovisionados, no sob o ponto de vista temporal, mas em quantidade
de estados nos quais a demanda maior ou menor que a oferta.
Verificando os grficos das Figuras 6.9 e 6.10, percebe-se que h uma diferena na
amplitude de ERAi e ERDi para os dois experimentos. O Experimento 1 mais variado, possuindo
picos com maiores variaes entre si para ambas as mtricas, atingindo os maiores valores
prximo metade do experimento. Porm o Experimento 2 foi mais constante, possuindo os
picos com valores prximos. Isto pode ser explicado pela carga de trabalho variada aplicada
aos dois experimentos, o que justifica o padro identificado por ERAi e ERDi . Porm, para EDi ,
a variao no to sensvel, no se verificando esse comportamento no grfico de maneira
evidente. Para EDi , verificou-se que na maioria dos casos h um pico referente a um evento de
alocao (scaling up) e logo em seguida um pico referente a um evento de desalocao (scaling
down). Esses picos para o Experimento 2 possuram EDi com valores prximos entre si, ou
seja, EDi com valores em picos de alocao prximos entre si, e EDi com valores em picos de
desalocao prximos entre si. Porm, este comportamento no foi visto no Experimento 1. De
certa forma, esse resultado confirma o que foi verificado no grfico da Figura 6.11.
A relao custo/benefcio indicou que na mdia, o Experimento 1 foi mais eficiente
que o Experimento 2, reforando o que a Elasticidade de Scaling Up, Elasticidade de Scaling
Down, ERDi , ERAi e EDi indicaram. Porm, identificou-se que a diferena nos valores para
todas essas mtricas foi pequena. Analisando esse resultado em conjunto com o grfico da Figura 6.11, identifica-se novamente que o Experimento 1 foi mais flexvel em termos de aes
de elasticidade. No necessariamente o valor da relao custo/benefcio adequada para um
provedor. Seu valor pode ser baixo, mas utilizar muitos recursos, o que para uma nuvem pblica
onde o usurio paga pela utilizao de recursos, o custo pode se tornar invivel. Assim, uma
relao custo/benefcio com valor maior (pior) pode ser mais adequada para a aplicao em exe-

113

cuo. Sendo assim, se na medida de custo/benefcio for adicionado o componente financeiro, a


avaliao da elasticidade dever considerar situaes de priorizao sobre a economia ou preo
gerado pelo experimento sobre a prpria elasticidade em si.
A anlise de desempenho muitas vezes depende da carga de trabalho utilizada na
aplicao, tendo impacto direto sobre o ambiente. Um desafio para ambientes experimentais
projetar uma carga de trabalho que represente a realidade de um provedor, devido caracterstica dinmica de cargas de trabalhos reais. Um estudo do comportamento das cargas de
trabalho, atravs de mtodos estatsticos, predio, natureza das aplicaes e usurios pode auxiliar no projeto. Como os dois experimentos utilizaram o mesmo ambiente, a carga de trabalho
foi o principal elemento a provocar a diferena nos resultados.
Algumas limitaes neste trabalho foram identificadas. A mtrica associada s
aes de elasticidade definidas pelos limiares foi apenas o percentual de utilizao de CPU.
Devido a isso, outros aspectos do sistema e da aplicao foram prejudicados, sendo o principal
o tempo de resposta das aplicaes executadas. Mesmo atendendo ao SLA na maior parte do
tempo dos experimentos, em alguns perodos de tempo dos experimentos os tempos de respostas foram bastante elevados. Caso houvesse uma regra baseada no tempo de resposta, provavelmente ocorreriam menos violaes de SLA e as aplicaes seriam melhor distribudas nas
mquinas virtuais. Concluiu-se que utilizar apenas mtricas associadas infraestrutura pode
no ser adequado s necessidades de SLA da aplicao.
O fato da no criao e destruio das mquinas virtuais empregadas pela estratgia
de elasticidade utilizada impacta no resultado de algumas mtricas, especialmente nas mtricas
orientadas a tempos de operaes. Isto se deve ao fato que as mquinas virtuais e servios j
estavam imediatamente funcionais, em vez de demorar um determinado tempo para sua criao
e destruio. Porm, esse tempo gasto influencia na maneira na qual os recursos so alocados
no tempo, influenciando na quantidade de recursos alocados, e consequentemente nos valores
das mtricas propostas.
A utilizao da mdia como critrio de deciso para aes de elasticidade tem impacto apenas nas coletas recentes. Assim, o histrico de consumo de CPU no considerado
para eventos de configurao no ambiente. A correta seleo de mtricas tambm permite uma
anlise mais objetiva e sem desperdcio de esforo na coleta e consolidao dos dados. A utilizao de recursos estatsticos para obteno de parmetros de deciso uma estratgia que pode
ser facilmente modificada conforme a necessidade. Em um ambiente de nuvem real, onde diversos usurios esto concorrendo por recursos, alm das cargas de trabalho dinmicas, variadas e
sem um controle do provedor, os parmetros definidos para tomada de deciso devem ser ajustados para provocar um melhor efeito sobre o ambiente, de preferncia dinamicamente. Uma
estratgia a ser empregada neste ambiente poderia ser a utilizao inicial de recursos da nuvem
privada, por meio de elasticidade vertical (a ser implementado na infraestrutura), seguido de
elasticidade horizontal, e em caso de necessidade por mais recursos, avaliar a possibilidade de
se utilizar recursos de uma nuvem pblica.
Em relao quantidade de mquinas virtuais utilizadas, o experimento restringiuse apenas variao de 1 a 4 instncias alocadas. Isto deixou o experimento limitado, no

114

possibilitando uma viso mais abrangente, prejudicando como os diversos parmetros do sistema, projetados pelo FOLE, se comportariam em relao ao ambiente. H um impacto na
utilizao de muitas instncias. O mecanismo de elasticidade deve possuir a capacidade de criao e remoo de mquinas virtuais. O tempo de resposta das requisies pode diminuir caso
a estratgia de balanceamento de carga seja efetiva. Entretanto, se a utilizao dessas instncias
for de maneira dinmica, o tempo para sua criao e ativao pode influenciar no desempenho
inicial das aplicaes a serem executadas. Para uma visibilidade maior, seria interessante a utilizao de simulao para uma quantidade maior de mquinas virtuais, e assim dependendo dos
resultados obtidos, ajustar o ambiente real.
Como principais concluses dos experimentos, destaca-se: (1) as mtricas de elasticidade propostas possuem alta relao com o projeto de cargas de trabalho; (2) a elasticidade
se comportou bem em relao utilizao de CPU, mas no foi eficiente em relao ao tempo
de resposta; (3) mtricas de aplicao devem ser utilizadas em aes de elasticidade e em regras
para melhorar o desempenho do ambiente; (4) em diversos momentos os resultados obtidos
foram semelhantes s mtricas para a avaliao da elasticidade propostas na literatura, demonstrando coerncia, porm a maneira proposta para o clculo da elasticidade mais simples.
6.2

Experimento - Nuvem Hbrida

Este experimento tem como objetivo avaliar a elasticidade de uma nuvem hbrida,
onde inicialmente so utilizados recursos de uma nuvem privada, e conforme a necessidade por
mais recursos, so adicionados recursos de uma nuvem pblica. O FOLE foi utilizado para
apoiar a anlise de desempenho, e as mtricas de elasticidade baseadas em conceitos da Fsica
e Microeconomia foram calculadas, com suporte da ferramenta de visualizao de dados.
6.2.1

Material e Mtodos

Os experimentos foram projetados e executados em dois ambientes diferentes de


nuvens computacionais: uma nuvem privada e uma nuvem pblica. Para a nuvem privada, o
OpenNebula 3.8 foi utilizado, com todas as mquinas fsicas com 5 e 7 ncleos, 24 GB de
memria RAM, sistema operacional Ubuntu Server 12.04 64 bits e hipervisor KVM. Cada mquina virtual foi criada com 1 VCPU, 1 GB de memria RAM e sistema operacional Ubuntu
Server 12.04 64 bits. Para a nuvem pblica, foi utilizada a plataforma da Microsoft Azure,
com as instncias criadas do tipo A1 padro (1 ncleo e 1.75 GB de memria RAM) e sistema
operacional Ubuntu Server 14.04 64 bits. Cada experimento utilizou quatro mquinas virtuais,
porm a quantidade de instncias utilizadas na nuvem pblica e privada variou conforme o experimento. Foi utilizado como servidor web o Apache Tomcat, balanceador de carga o NGINX,
e gerador de cargas de trabalho o HTTPERF. A instanciao do framework foi desenvolvida em
Java e shell script. A Figura 6.12 exibe o testbed utilizado, baseado na arquitetura proposta no
Captulo 5.5, Seo 5.5.1.

115

Figura 6.12: Arquitetura e ambiente experimental


6.2.2

Carga de Trabalho

A gerao de cargas de trabalho para os experimentos ocorreu de duas maneiras distintas: (1) requisies encaminhadas diretamente na mquina virtual do balanceador de carga,
geradas pelo HTTPERF e por navegadores web, distribudas entre as demais mquinas virtuais
alocadas; e (2) requisies executadas diretamente nas mquinas virtuais utilizadas pela infraestrutura. Dessa maneira possvel emular a concorrncia pelos recursos em um ambiente de
Computao em Nuvem. O Experimento 1 pode utilizar a mesma representao de carga de
trabalho dos Experimentos 2 e 3, j que ele utiliza apenas uma mquina virtual em cada tipo
de nuvem. As Figuras 6.13 e 6.14 ilustram a carga de trabalho empregada respectivamente
para os Experimentos 2 e 3 sobre a infraestrutura construda. A Tabela 6.3 detalha informaes
adicionais sobre a carga de trabalho e demais itens do projeto experimental.
6.2.3

Projeto do Experimento - Instanciao do FOLE

Para o planejamento da anlise de desempenho, o FOLE foi utilizado. Suas atividades foram instanciadas para a descrio do projeto do experimento e consequente avaliao
da elasticidade. O objetivo do experimento avaliar a elasticidade de uma nuvem hbrida, onde
so utilizados recursos de uma nuvem privada e conforme a necessidade por mais recursos, a
utilizao de recursos de uma nuvem pblica.
A macroatividade Planejar Anlise de Desempenho teve as ferramentas definidas
indiretamente pela infraestrutura. Arquivos texto registram o log das operaes de coleta das
mquinas virtuais e das demais informaes consolidadas. O log gerado para cada mquina
virtual em arquivo texto contm a data da coleta, valores de utilizao de CPU, memria, disco,
rede e tempo de resposta das requisies, assim como a mdia de utilizao de CPU, alocao

116

Figura 6.13: Representao da carga de trabalho aplicada ao Experimento 2 com nuvem hbrida

Figura 6.14: Representao da carga de trabalho aplicada ao Experimento 3 com nuvem hbrida
de recursos, e dados sobre a elasticidade. A consolidao dos dados ocorreu por meio da leitura
dos arquivos de log. O dados coletados e consolidados so apresentados sob a forma de grficos
de linha em uma ferramenta de visualizao, onde todas as mtricas podem ser visualizadas de
maneira individual e em conjunto. O intervalo de coletas definido foi de 1 segundo adicionado
do custo da coleta e anlise dos resultados. As mtricas utilizadas so as armazenadas em
arquivos de log, adicionada s mtricas de elasticidade detalhadas na Tabela 6.3. A carga de
trabalho empregada nos experimentos foi descrita na Seo 6.2.2 e na Tabela 6.3.
Na atividade Planejar Elasticidade, um mecanismo baseado na arquitetura proposta no Captulo 5.5, Seo 5.5.1, foi implementada. Uma estratgia de elasticidade horizontal
foi utilizada, por meio da qual sempre que recursos so necessrios, novas mquinas virtuais so
adicionadas ao balanceador de carga, e retiradas caso no sejam mais necessrias. Para disparar

117

Tabela 6.3: Critrios para avaliao de desempenho para os experimentos


Critrios
Sistema
Mtricas

Parmetros
Fatores
Tcnica de Avaliao
Carga de Trabalho

Projeto de Experimentos

Anlise dos Dados

Apresentao dos Resultados

Descrio
Ambiente hbrido de Computao em Nuvem (OpenNebula e Microsoft
Azure)
Tempo de resposta das aplicaes, percentual de utilizao de CPU, percentual de utilizao de memria, pacotes recebidos e enviados em KB, KB lidos
e escritos em disco; SQN , TRD , TRA , ERDi , ERAi , ERDi , ERAi , EDi , EDi ; TAE,
TASu, TASo, TAT , T RASu, T RASo, T RAE; Elasticidade de Scaling Up e
Elasticidade de Scaling Down (HERBST; KOUNEV; REUSSNER, 2013)
CPU, memria, sistema operacional, quantidade de mquinas virtuais, tipo
de instncia
Configurao do benchmark (repeties e tamanho da matriz), configurao
do HTTPERF (quantidade de requisies, taxa de requisies, tempo)
Medio
Executar multiplicaes de matrizes (dimenso 200x200x200) atravs de um
microbenchmark construdo na linguagem de programao Java, sob a forma
de pequenas aplicaes web, com requisies disparadas atravs do HTTPERF, com taxas variando de 1 a 5 requisies por segundo e quantidade de
conexes variando em 10, 30 e 50
Gerao da carga de trabalho com o HTTPERF no servidor web e em cada
mquina virtual da infraestrutura para que os recursos dinamicamente se
adaptem quantidade de CPU;
Experimento 1: 1 mquina virtual na nuvem privada e 1 mquina virtual na
nuvem pblica;
Experimento 2: 3 mquinas virtuais na nuvem privada e 1 mquina virtual
na nuvem pblica;
Experimento 3: 1 mquina virtual na nuvem privada e 3 mquinas virtuais
na nuvem pblica;
Interpretao dos resultados apresentados nos grficos de mdia do percentual
de utilizao de CPU, grficos de alocao das mquinas virtuais, grficos da
elasticidade, boxplot e tabela com dados estatsticos
Grficos de linhas, boxplot e tabelas

aes de elasticidade, foi utilizada a mdia do percentual de utilizao de CPU das mquinas
virtuais. As mtricas utilizadas para a medio da elasticidade foram: SQN , TRD , TRA , ERDi ,
ERAi , ERDi , ERAi , EDi e EDi . Os limiares utilizados para a execuo de aes de elasticidade
foram: acima de 70% (aloca uma nova mquina virtual), abaixo de 60% (desaloca uma mquina virtual), e entre 60% e 70% (mantm alocao). Esse valor foi calculado como a mdia
das 10 ltimas coletas de utilizao de CPU nas mquinas virtuais. Como mecanismo de predio foi utilizado regresso multilinear sobre valores de utilizao de CPU, memria, disco e
rede. Os valores para os limiares e para o mecanismo de predio foram definidos baseados em
experimentos prvios utilizando as mesmas taxas projetadas em cargas de trabalho semelhantes. Para o provisionamento dos recursos, a estratgia de balanceamento de carga foi utilizada,
onde mquinas virtuais so adicionadas conforme a necessidade. Um conjunto de scripts foram
desenvolvidos para as aes e estratgias de anlise.
As macroatividades Inicializar Servios da Anlise de Desempenho e Executar
Anlise de Desempenho foram implementadas por meio de scripts que inicializavam os servios de coleta, anlise, gerao das cargas de trabalho, consolidao dos dados, alm de analisar
resultados e disparar aes.

118

6.2.4

Experimentos

Trs experimentos foram executados, conforme projeto de experimentos, para avaliar a elasticidade em uma nuvem hbrida, com a variao da quantidade de mquinas virtuais
envolvidas nas nuvens privada e pblica. Ao final desta seo, uma discusso sobre os resultados apresentada.
6.2.4.1

Experimento 1 - Uma Mquina Virtual na Nuvem Privada e Uma Mquina Virtual na Nuvem Pblica

Este experimento teve durao 36min10s. Apenas duas mquinas virtuais estiveram envolvidas neste experimento: uma na nuvem privada e outra na nuvem pblica. Dessa
maneira foi possvel verificar se a infraestrutura construda proveria recursos das duas nuvens,
constituindo uma nuvem hbrida, conforme a necessidade gerada pela carga de trabalho. A
Figura 6.15 exibe a mdia de utilizao de CPU consolidada em todas as mquinas virtuais, a
alocao das mquinas virtuais, as mtricas de elasticidade baseadas em conceitos da Fsica e
da Microeconomia e o tempo de resposta das requisies.
A mdia do percentual de utilizao de CPU foi bastante diversificada, chegando
em alguns pontos a 100% de utilizao. Isto ocorreu devido a muitas requisies e poucas
mquinas virtuais para o atendimento. Entretanto, sempre que o limiar de 70% estabelecido
como limite superior era ultrapassado, a mquina virtual da nuvem pblica era includa na
lista do balanceador de carga, e assim as requisies eram distribudas, reduzindo o valor do
percentual de utilizao de CPU. Violaes ocorreram por causa da utilizao de apenas duas
mquinas virtuais no experimento (poucos recursos), e assim que a utilizao de CPU estava
acima do limite e ambas mquinas virtuais estavam alocadas, no existia mais a possibilidade de
alocar mais recursos, restando esperar que as requisies encerrassem. Momentos de alocao
das duas mquinas virtuais em geral coincidem com momentos de alta utilizao de CPU.
As mtricas para elasticidade possuram valores baixos at cerca da metade do experimento. A partir da metade do tempo do experimento os valores comearam a aumentar, e
a utilizao de CPU em geral permaneceu elevada, indicando uma necessidade maior de recursos. Na maioria dos casos, momentos de alocao e desalocao coincidiram com os picos nas
mtricas de elasticidade. O que provocou essa variao foi o SLA definido e a velocidade na
qual recursos so alocados e desalocados.
O tempo de resposta das requisies no incio do experimento possuiu os maiores
valores, e medida em que o experimento avanava, estes tempos foram reduzindo. Como
s haviam duas mquinas virtuais disponveis para o experimento, assim que as requisies
eram distribudas pelo balanceador de carga, consequentemente o tempo de resposta diminua.
Porm isso no implicava no pleno atendimento do SLA em todo o perodo do experimento,
visivelmente identificado no grfico de utilizao de CPU.

119

Figura 6.15: Mdia de utilizao de CPU, alocao das mquinas virtuais, mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e tempo de resposta das requisies
para o Experimento 1.
6.2.4.2

Experimento 2 - Trs Mquinas Virtuais na Nuvem Privada e Uma Mquina


Virtual na Nuvem Pblica

A durao deste experimento foi de 11min14s. Quatro mquinas virtuais estiveram


envolvidas neste experimento: trs na nuvem privada e uma na nuvem pblica. Assim, foi possvel verificar se o desempenho da infraestrutura seria impactado pela adio de uma mquina
virtual de uma nuvem pblica, e se o SLA seria mantido. A Figura 6.16 exibe a mdia de utilizao de CPU consolidada em todas as mquinas virtuais, a alocao das mquinas virtuais,
as mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e o tempo de
resposta das requisies.
Com esta configurao, a mdia do percentual de utilizao de CPU foi mais constante. Isto ocorreu devido a uma distribuio com mais mquinas virtuais, e consequentemente
mais recursos. Sempre que o limiar de 70% estabelecido como limite superior era ultrapassado,
o balanceador de carga adicionava na sequncia as duas mquinas virtuais da nuvem privada, e
em caso de necessidade por mais recursos, a mquina virtual da nuvem pblica era adicionada.
Mesmo assim, violaes do SLA ocorreram, mas em menor quantidade.
As mtricas para elasticidade possuram valores baixos at metade do experimento,
onde se iniciou uma variao mais intensa na amplitude. Isto ocorreu por causa das alocaes
e necessidade por recursos. As regras impostas de SLA s realmente comearam a ser alcanadas e demandar recursos por volta da metade do experimento, momento onde as alocaes se
iniciaram com mais intensidade. Na maioria dos casos, momentos de alocao e desalocao
coincidiram com os picos nas mtricas de elasticidade. Novamente, o que influenciou nesse
resultado foi o SLA definido e a velocidade de alocao e desalocao de recursos.

120

Figura 6.16: Mdia de utilizao de CPU, alocao das mquinas virtuais, mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e tempo de resposta das requisies
para o Experimento 2.
O tempo de resposta das requisies inicialmente possuiu valores bem baixos em
relao a grande parte do experimento, e praticamente todos alocados primeira mquina virtual. medida que a carga de trabalho aumentava, alocaes eram realizadas conforme a
necessidade. Por volta da metade do experimento, muitas requisies tiveram um alto tempo de
durao para sua finalizao, mesmo com a alocao das quatro mquinas virtuais. Os maiores
tempos de resposta ocorreram na mquina virtual da nuvem pblica.
6.2.4.3

Experimento 3 - Uma Mquina Virtual na Nuvem Privada e Trs Mquinas Virtuais na Nuvem Pblica

A durao deste experimento foi de 14min51s. Quatro mquinas virtuais estiveram


envolvidas: uma na nuvem privada e trs na nuvem pblica. Assim, foi possvel verificar se o
desempenho da infraestrutura seria impactado pela adio de vrias mquinas virtuais de uma
nuvem pblica, e se o SLA seria mantido. A Figura 6.17 exibe a mdia de utilizao de CPU
consolidada em todas as mquinas virtuais, a alocao das mquinas virtuais, as mtricas de
elasticidade baseadas em conceitos da Fsica e da Microeconomia e o tempo de resposta das
requisies.
A mdia do percentual de utilizao de CPU foi constante em vrios pontos, porm
com um alto consumo de CPU. Sempre que o limiar de 70% estabelecido como limite superior
era ultrapassado, o balanceador de carga adicionava na sequncia as trs mquinas virtuais da
nuvem pblica, em caso de necessidade de mais recursos. Mesmo assim, violaes do SLA
ocorreram, mas em menor quantidade, conforme o grfico de mdia de utilizao da CPU da
Figura 6.17. Entretanto, neste experimento ocorreram perodos de violao maiores que nos

121

Figura 6.17: Mdia de utilizao de CPU, alocao das mquinas virtuais, mtricas de elasticidade baseadas em conceitos da Fsica e da Microeconomia e tempo de resposta das requisies
para o Experimento 3.
experimentos anteriores.
As mtricas para elasticidade baseadas em conceitos da Fsica possuram valores
altos durante grande parte do experimento. Tanto as mtricas baseadas em conceitos da Fsica
quanto da Microeconomia possuram valores distribudos ao longo de todo o experimento, no
tendo muitas regies com valor igual a zero. Isto ocorreu devido s alocaes ocorrerem logo
no incio do experimento, e por existir alocao de apenas 1 mquina virtual no incio e no
final do experimento. Entretanto, ocorreram longos perodos de elasticidade estvel, o que no
implica no atendimento do SLA, e sim estabilidade em estados de alocao.
O tempo de resposta das requisies foi bastante variado e distribudo entre todas
as mquinas virtuais. Todas as mquinas virtuais possuram requisies com altos tempos de
resposta.
6.2.5

Discusso do Resultados

Os trs experimentos utilizaram a mesma infraestrutura, os mesmos limiares e a


mesma estratgia de alocao de recursos. A carga de trabalho foi a mesma, variando apenas a
quantidade de vezes que foi aplicada.
A durao das requisies em vrios pontos dos trs experimentos resultou em altos valores. Em geral uma requisio duraria 2ms, e algumas duraram cerca de 20.000ms,
70.000ms, e 90.000ms, para os trs experimentos respectivamente. Essa situao no interessante, pois muito tempo para uma requisio. Como o tempo de resposta no foi considerado
como uma mtrica a ser utilizada para aes de elasticidade, os trs experimentos possuram

122

esse prejuzo no atendimento das requisies. O ideal que mtricas de aplicao, como o
tempo de resposta e vazo (throughput), sejam includas nas regras para a execuo de aes de
elasticidade.
A utilizao de mquinas virtuais em nuvens pblicas no impactou muito nos resultados dos experimentos do ponto de vista de infraestrutura, validando a infraestrutura proposta. Entretanto, a estratgia de empregar o percentual de utilizao de CPU como mtrica
para acionar aes de elasticidade poderia ser mais efetiva, pois facilmente se atingia o limite
definido, e assim a ocorrncia de violaes no SLA e consequentemente altos tempos de resposta das requisies. A latncia da rede pode ter sido um fator que influenciou neste tempo
de resposta elevado. A latncia, entretanto, poderia ter sido utilizada como uma regra a ser
aplicada para aes de elasticidade.
A Tabela 6.4 exibe os resultados para as mtricas de elasticidade e valores estatsticos. Observou-se que ERDi no obteve bons valores. ERAi e EDi possuram resultados semelhantes do ponto de vista estatstico, e mais condizentes com os experimentos. A amplitude
dos experimentos (diferena entre valores mximos e mnimos) foi bem elevada para ERDi .
Isso exibe uma alta variao entre extremos que indica uma necessidade de recursos maior do
que o ambiente possui. J ERAi e EDi possuram valores com diferenas menores, sendo mais
prximos entre si. Uma varincia baixa indica experimentos com rendimentos semelhantes,
sinalizado por EDi . Desvios padro baixos indicam uma baixa disperso (alta concentrao)
dos valores em torno da mdia, assim como um desvio padro alto indica alta disperso (baixa
concentrao) dos valores em torno da mdia. Sob essa perspectiva, ERAi e EDi possuram bons
resultados. Em relao mediana e moda, praticamente todos os valores foram zero, o que
indica muitos pontos de estabilidade nos trs experimentos, seja com alocao mnima ou mxima, refletindo as mtricas de elasticidade com valores baixos, quase sempre zero, e que pode
refletir tambm que o SLA no foi atingido.
Os dados da Tabela 6.4 tambm podem ser visualizados no boxplot da Figura 6.18.
Podemos visualizar para cada mtrica de cada experimento os valores mnimos, primeiro quartil, medianas (segundo quartil), terceiro quartil, valores mximos, mdia (crculo preto maior)
e desvio padro (losango cinza). Alguns outliers foram identificados (valores fora da curva, representados pelos crculos pretos menores), principalmente no Experimento 1, onde ocorreram
Tabela 6.4: Resultados das mtricas de elasticidade e valores estatsticos para os trs experimentos
Durao
Valor Mdio
Mximo
Mnimo
Amplitude
Varincia
Desvio Padro
Mediana
Moda

Experimento 1
36:10
ERAi ERDi
EDi
0
-0.08 0.70
4
18
5
-5
-25
0
9
43
5
2.88 52.36 1.36
1.69
7.23 1.16
0
0
0
0
0
0

Experimento 2
11:14
ERAi
ERDi
EDi
-0.03 -0.50 1.04
6
12,25
4
-6
-16
6
12
28.25
4
10.10 55.04 1.33
3.17
7.41 1.15
0
0
1
0
0
0

Experimento 3
14:51
ERAi
ERDi
EDi
-0.28
-1.45
1.13
6
16
5
-7
-25
0
13
41
5
14.01 124.04 1.69
3.74
11.13 1.30
0
0
1
0
0
1

123

Figura 6.18: Boxplot gerado para os trs experimentos


a maior quantidade de violaes no SLA. Pela figura, possvel visualizar que os Experimentos
2 e 3 possuram comportamentos relativamente semelhantes.
No Experimento 1, outliers ocorreram com maior frequncia. ERAi foi 0, porm
com valores bem prximos a ERDi e EDi . Isto indicou uma tentativa de ajuste dos recursos em
relao carga de trabalho aplicada, com alocaes e desalocaes, porm no havia recursos
suficientes, por isso os picos na elasticidade. O Experimento 2 resultou em mdias com variaes pequenas para as trs mtricas de elasticidade. No foram identificados outliers. Este
experimento foi o que melhor utilizou os recursos da nuvem hbrida, entretanto apenas uma mquina virtual foi utilizada da nuvem pblica, o que minimizou a latncia da rede imposta pela
nuvem pblica. O Experimento 3 tambm apresentou mdias com variaes pequenas paras as
trs mtricas de elasticidade. Apenas um outlier foi identificado. Esperava-se mais valores fora
do comum para a elasticidade devido ao fato de ter sido empregada uma nuvem hbrida nesse
experimento.
Em geral, os grficos das Figuras 6.15, 6.16 e 6.17 exibiram EDi com uma diferena
visual principalmente em relao largura dos picos, sendo os menos espaados no Experimento 1 e os mais espaados no Experimento 3, indicando uma estabilidade crescente nas
alocaes dos experimentos. Para ERAi e ERDi , a partir de cerca da metade do tempo dos experimentos, ocorreu uma maior variao nos valores, indicando uma alocao mais intensa. J no
boxplot da Figura 6.18, a distribuio foi semelhante em todos os trs experimentos.
A Tabela 6.5 lista as mtricas orientadas a tempos de operaes de alocao e desalocao de recursos, mtrica orientadas a utilizao de recursos, e mtricas calculadas da
literatura para os trs experimentos.
O Experimento 1 possuiu maior estabilidade (TAE), mas estabilidade no necessariamente implica em atendimento ao SLA. Esse experimento foi o que mais necessitou de
recursos e obteve a maior quantidade de violaes. As mtricas TASu, TASo e TAT tambm
foram as que resultaram nos mais elevados valores, o que indica muitas operaes de alocao

124

Tabela 6.5: Mtricas orientadas a tempos de operaes de alocao e desalocao de recursos,


orientadas a utilizao de recursos, e calculadas da literatura para os trs experimentos
Mtrica
Tempo Total do Experimento (minutos)
Tempo de Alocao Estabilizada (TAE)
Tempo de Alocao Subprovisionada (TASu)
Tempo de Alocao Sobreprovisionada (TASo)
Tempo de Alocao Transitria (TAT)
Total de Recursos Alocados (mquinas virtuais)
Total de Recursos Alocados Estabilizado (TRAE)
Total de Recursos Alocados Subprovisionados (TRASu)
Total de Recursos Alocados Sobreprovisionados (TRASo)
Elasticidade de Scaling Up
Elasticidade de Scaling Down
Elasticidade Mdia da Fsica ERAi
Elasticidade Mdia da Fsica ERDi
Elasticidade Mdia da Microeconomia EDi

Exp. 1
36:10
27:46
2:15
2:05
4:02
91
58
22
11
0.04
0.09
0.00
-0.08
0.70

Exp. 2
11:14
6:23
0:57
0:49
3:03
70
30
24
16
0.01
0.02
-0.03
-0.50
1.04

Exp. 3
14:51
4:01
2:01
1:56
6:51
54
22
19
13
0.00
0.01
-0.28
-1.45
1.13

e desalocao. Em relao quantidade de recursos alocados, o Experimento 1, mesmo tendo


apenas 2 mquinas virtuais envolvidas, realizou mais alocaes e desalocaes.
O Experimento 2 foi o obteve o melhor desempenho nos tempos, o que refora os
dados dispostos no boxplot, com o menor tempo para TAT , indicando que dos trs experimentos
foi o que menos gastou tempo esperando os efeitos das alocaes sobre o ambiente. Em relao
quantidade de recursos alocados, o Experimento 2 possuiu uma distribuio razovel entre os
recursos e os estados de alocao.
O Experimento 3 indicou o maior valor para TAT , o que no bom. Esse valor
pode ter sido causado pela latncia da rede, j que este experimento utilizou 3 mquinas virtuais em uma nuvem pblica, e o tempo gasto para as operaes realmente serem efetivadas
pode ter prejudicado o experimento, e consequentemente ter elevado os tempos de resposta das
requisies. Em relao quantidade de recursos alocados, o Experimento 3 utilizou a menor
quantidade de recursos dos trs experimentos, e possuiu uma distribuio de recursos tambm
razovel entre os estados de alocao.
Os Experimentos 2 e 3 possuram ambos 4 mquinas virtuais envolvidas nos experimentos. Entretanto a variao da quantidade de mquinas virtuais na nuvem privada e pblica
influenciou em TASu e TASo, sendo o Experimento 3 praticamente o dobro dos valores obtidos
no Experimento 2. Em compensao, TAE para o Experimento 2 foi maior, mesmo o tempo
total do experimento menor, implicando em uma estabilidade proporcionalmente maior.
Em relao Elasticidade de Scaling Up e Elasticidade de Scaling Down, os valores
para todos os experimentos foram bem prximos. Destaca-se que o Experimento 1 foi o mais
veloz, com os maiores valores, entretanto seu desempenho foi o pior, dado a falta de recursos.
Todos os experimentos possuram tempos relativamente elevados para TAT . Isso
indica que a comunicao entre as nuvens est influenciando no desempenho. Em geral, as
requisies para os trs experimentos obtiveram o tempo de resposta aumentando medida em

125

que se utilizava mais mquinas virtuais da nuvem pblica. Ento a latncia da rede um fator
que deve ser considerado, pois est diretamente associado aos tempos das mtricas orientadas
tempos de operaes de alocao e desalocao, principalmente TAT .
Para a melhoria do ambiente, seria interessante a utilizao de novas regras para a
execuo de aes de elasticidade, sendo a mais indicada o tempo de resposta das requisies,
e a latncia da rede. Tambm se indica estratgias de alocao e predio mais efetivas, para
evitar momentos longos de subprovisionamento e sobreprovisionamento de recursos, e assim
evitar ociosidade e desperdcio. Uma melhor distribuio dos recursos em nuvens privadas
ou pblicas, com um melhor balanceamento, tambm uma situao a ser analisada. Uma
estratgia a ser seguida poderia ser a utilizao inicial de recursos da nuvem privada, por meio de
elasticidade vertical (a ser implementado na infraestrutura), seguido de elasticidade horizontal,
e em caso de necessidade por mais recursos, replicar essa estratgia na nuvem pblica. Por fim,
a carga de trabalho aplicada sobre a infraestrutura, demandada por usurios ou benchmarks,
implica diretamente na elasticidade, e deve ser melhor projetada, pois assim a infraestrutura
pode ser configurada e adaptada da melhor maneira possvel.
Em relao quantidade de mquinas virtuais utilizadas, o experimento restringiuse apenas variao de 1 a 4 instncias alocadas, e apenas a uma nuvem privada e uma nuvem
pblica. Isto deixou o experimento limitado, no possibilitando uma viso mais abrangente,
prejudicando como os diversos parmetros do sistema, projetados pelo FOLE, se comportariam em relao ao ambiente. Mesmo com o impacto na utilizao de muitas instncias, uma
avaliao com uma quantidade maior de instncias interessante para permitir a integrao entre nuvens de diferentes provedores, e verificao de seus efeitos sobre a elasticidade. Nesse
experimento, uma estratgia de elasticidade horizontal foi utilizada, mas com instncias j previamente funcionais. Tambm seria interessante a utilizao de mquinas virtuais de maneira
dinmica, ou seja, com a criao e remoo de instncias, mesmo com o tempo para sua criao e ativao influenciando no desempenho das aplicaes a serem executadas. O tempo de
resposta das requisies e a latncia podem diminuir caso a estratgia de balanceamento de
carga seja efetiva. A utilizao de simulao para uma quantidade maior de mquinas virtuais e diferentes provedores possibilitaria a experimentao com diversas combinaes, e assim
dependendo dos resultados obtidos, reajustar o ambiente real.
Como principais concluses dos experimentos, destaca-se: (1) as mtricas de elasticidade propostas possuem alta relao com o projeto de cargas de trabalho; (2) a elasticidade
se comportou bem em relao utilizao de CPU, mas no foi eficiente em relao ao tempo
de resposta; (3) mtricas de aplicao, como tempo de resposta, devem ser utilizadas em aes
de elasticidade e em regras para melhorar o desempenho do ambiente; (4) a latncia da rede
prejudica o desempenho da elasticidade quando se utiliza nuvens hbridas.

126

CONSIDERAES FINAIS

Este captulo dedicado s consideraes finais. A Seo 7.1 apresenta os resultados alcanados com este trabalho, e a Seo 7.2 apresenta os trabalhos futuros oriundos desta
tese de doutorado.
7.1

Resultados Alcanados

As principais contribuies desta tese foram: (i) FOLE, um framework conceitual


para anlise de desempenho da elasticidade em ambientes de Computao em Nuvem (Captulo 5); (ii) mtricas para a elasticidade baseadas em tempos de operaes de alocao e
desalocaao de recursos, e na quantidade de recursos utilizados (Subseo 4.1), nos conceitos
da Fsica de tenso, estresse e elasticidade (Subseo 4.2) e no conceito da Microeconomia
de Elasticidade do Preo da Demanda (Subseo 4.3); (iii) uma arquitetura baseada em conceitos da Computao Autonmica para o provimento de solues elsticas (Subseo 5.5.1);
e (iv) uma ferramenta para apoio avaliao de desempenho da elasticidade, com suporte
visualizao e anlise (Subseo 5.5.2).
Neste documento foi apresentada uma reviso sistemtica (Subsees 3.1, 3.2 e 3.3),
o que possibilitou uma uma reviso bibliogrfica mais detalhada. Esta reviso identificou ferramentas e mtricas utilizadas na anlise de desempenho da elasticidade em nuvens computacionais, e estratgias empregadas para o provimento da elasticidade. Alm disso, diversas
tendncias de pesquisa em elasticidade foram identificadas, permitindo novos direcionamentos
de pesquisa. Uma anlise dos trabalhos permitiu identificar que muitos artigos no detalham
a metodologia utilizada (Subseo 3.4). Quando detalham, no explicam muito bem como as
mtricas devem ser utilizadas e interpretadas.
Nesta tese foi levantada a hiptese que a sistematizao da anlise de desempenho
da elasticidade em Computao em Nuvem permite uma avaliao de quanto a nuvem se adqua
s cargas de trabalho e contribui para a tomada de deciso de maneira eficiente (Seo 1.2). Os
resultados deste trabalho confirmaram que esta hiptese foi aceita. As questes de partida (QP)
levantadas nesta tese so discutidas a seguir:
QP01: Quais so as principais caractersticas que uma nuvem computacional deve possuir
para prover elasticidade ?
O resultado obtido pela reviso sistemtica (Subsees 3.1, 3.2 e 3.3) possibilitou
a identificao de vrias caractersticas que nuvens computacionais devem possuir para o provimento da elasticidade. A elasticidade permite ao ambiente a capacidade do provisionamento
e desprovisionamento de recursos conforme a necessidade. Uma nuvem computacional deve
possuir essa capacidade para seu provimento. A carga de trabalho exercida pelos usurios da
nuvem influencia diretamente no ambiente e na elasticidade. O monitoramento de recursos
fundamental para que mecanismos de elasticidade possam tomar decises de quando e quanto
os recursos devero ser incrementados ou reduzidos no ambiente. Caractersticas de Computa-

127

o Autonmica foram identificadas em diversos trabalhos. Tais caractersticas, como regras,


loops de controle, sensores e atuadores, so bastante teis na implementao de mecanismos
de elasticidade. A utilizao de algum mecanismo de balanceamento ou distribuio da carga
de trabalho um importante fator que deve ser considerado pelo provedor. Alm disso, diversas estratgias podem ser aplicadas no provimento da elasticidade, com diferentes modelos e
mtodos, conforme identificados na reviso bibliogrfica (Subseo 3.3.5).
QP02: possvel construir um mecanismo de elasticidade em um ambiente de Computao em
Nuvem que permita sua adequao s necessidades dos usurios ?
Uma nuvem computacional, seja privada, pblica ou hbrida, pode possuir mecanismos de elasticidade na sua infraestrutura. Um balanceador de carga pode ser utilizado, assim
como o aumento e diminuio de recursos de uma mquina virtual. Uma vez que a nuvem
possua um mecanismo que permita aplicar conceitos de Computao Autonmica, que consiga captar a utilizao dos recursos, e adequar a capacidade conforme a demanda, esta nuvem
possuir um mecanismo de elasticidade. Sendo assim, arquiteturas podem ser projetadas ou
ajustadas para poderem utilizar tais mecanismos, e prover elasticidade. Alguns mecanismos
para o provimento da elasticidade foram identificados na reviso sistemtica, podendo ser ser
proativos ou reativos, horizontais ou verticais (Subseo 3.3.5). A arquitetura proposta neste
trabalho (Subseo 5.5.1) possibilitou a experimentao de um mecanismo que prov elasticidade de maneira satisfatria em nuvens privadas e hbridas (Captulo 6).
QP03: possvel medir a elasticidade de uma nuvem computacional ?
Conforme estudos bibliogrficos realizados (Subsees 3.3.3 e 3.4) e mtricas propostas (Captulo 4), constatou-se que possvel medir a elasticidade, comprovada atravs de
experimentos realizados no ambiente da nuvem computacional. Diversas mtricas identificadas
no medem a elasticidade diretamente, e sim recursos e operaes do ambiente. Porm, por
meio delas possvel indiretamente verificar o quanto um ambiente elstico e se ele atende
de maneira adequada s variaes nas cargas de trabalho impostas. Algumas das mtricas propostas no medem diretamente a elasticidade, e sim recursos do ambiente, como o tempo de
operaes de alocao e desalocao de recursos, e utilizao dos recursos (Subseo 4.1).
Adicionalmente, mtricas especficas para a medio da elasticidade foram propostas (Subsees 4.2 e 4.3) e validadas por meio de experimentos, possibilitando a avaliao da elasticidade,
sua respectiva interpretao, e colaborao para a melhoria do ambiente.
QP04: possvel elaborar uma metodologia para anlise de desempenho que permita avaliar
a elasticidade de uma nuvem computacional ?
Conforme o framework conceitual proposto, o FOLE (Captulo 5), possvel seguir
uma metodologia para a realizao de uma anlise de desempenho da elasticidade em ambientes de Computao em Nuvem, de maneira sistemtica. Experimentos realizados permitiram a
execuo de diversas atividades de projeto, avaliao e anlise de uma nuvem computacional,
avaliando a elasticidade do ambiente (Captulo 6). De maneira geral, o FOLE permitiu a realizao da anlise de desempenho em nuvens computacionais de maneira satisafatria por meio
de alguns experimentos que utilizaram uma arquitetura baseada em conceitos de Computao
Autonmica, algumas mtricas orientadas a tempos de operaes de alocao e desalocao de

128

recursos, e utilizao de recursos, e conceitos de outras reas de conhecimento. Dessa maneira,


foi possvel analisar o ambiente, e assim propor melhorias de maneira sistematizada.
Como principais concluses dos experimentos destacamos:
1. As mtricas de elasticidade propostas possuem alta relao com o projeto de cargas de
trabalho.
O projeto de carga de trabalho vai definir o comportamento da demanda, e caso o ambiente no consiga prover os recursos necessrios, as mtricas de elasticidade informaro a
necessidade por mais recursos, ou que estes no esto adequados. Caso o projeto da carga
de trabalho seja compatvel com o perfil de demanda, as mtricas refletiro essa situao.
2. A elasticidade se comportou bem em relao utilizao de CPU, mas no foi eficiente
em relao ao tempo de resposta.
As mtricas propostas foram baseadas em recursos alocados e demandados do ambiente.
Para os experimentos, limiares foram definidos utilizando o percentual de utilizao de
CPU, que uma mtrica de infraestrutura. Dessa maneira, a estratgia definida pela arquitetura e projetada sobre a infraestrutura foi capaz de realizar aes de elasticidade
baseadas no consumo de CPU, se comportando de maneira satisfatria. Entratanto, no
foram utilizadas mtricas de aplicao, como o tempo de resposta das requisies, nas regras para acionamento de aes de elasticidade. Consequentemente, esse tipo de mtrica
no foi considerada para a elasticidade, o que prejudicou o desempenho do ambiente.
3. Mtricas de aplicao, como tempo de resposta, devem ser utilizadas em aes de elasticidade e em regras para melhorar o desempenho do ambiente.
Mtricas de infraestrutura podem refletir situaes globais do ambiente, e no especficas de uma aplicao. Mtricas de aplicao, como tempo de resposta de requisies e
throughput, so mais adequadas para a anlise de desempenho de aplicaes porque seus
resultados podem ser mais significativos para os usurios. Recomenda-se sua utilizao
em regras para o acionamento de aes de elasticidade em conjunto com mtricas de infraestrutura, pois dessa maneira colaborariam ainda mais para a avaliao e melhoria do
desempenho de uma nuvem computacional.
4. A latncia da rede influencia no desempenho da elasticidade quando se utiliza nuvens
hbridas.
H um forte indcio que avaliaes da elasticidade com mtricas que utilizam tempos de
resposta de operaes sero impactadas pela latncia da rede entre as nuvens, como
o caso de nuvens hbridas. Nos experimentos realizados, por meio das mtricas orientadas a tempos de operaes de alocao e desalocao de recursos, percebeu-se que o
fator latncia influencia diretamente nessas mtricas. Seus valores foram maiores quando
uma nuvem hbrida foi utilizada. Diversas operaes podem ser prejudicadas pela latncia, como configuraes nas mquinas virtuais, consolidao dos dados e requisies de
usurios. A definio da sequncia de locais onde os recursos sero buscados, ou estratgias a serem utilizadas, pode minimizar a latncia (e.g., iniciar na nuvem privada
ampliando capacidade, adicionar novas instncias, e partir para a nuvem pblica).

129

7.2

Trabalhos Futuros

Esta tese abordou diversos aspectos de arquitetura, infraestrutura, mtricas e anlise


de desempenho. Assim, diversos trabalhos futuros podem ser derivados desta tese. Para uma
melhor descrio, os trabalhos futuros foram separados nas seguintes categorias: experimentos,
mtricas, framework FOLE, arquiteturas e ferramentas.
7.2.1

Experimentos

Diversos experimentos podem ser projetados para avaliar o desempenho da elasticidade com o auxlio do FOLE e das mtricas propostas, independente da arquitetura e infraestrutura utilizada. A comparao de solues de elasticidade entre provedores e middleware de
Computao em Nuvem, assim como a comparao entre solues de elasticidade em nuvens
privadas, hbridas e pblicas possibilitaro uma avaliao mais ampla da elasticidade em ambientes de nuvens. Ferramentas de software livre como o OpenNebula e OpenStack, e provedores
comerciais como a Amazon EC2, HP Cloud Services e Microsoft Azure podem ser utilizados
para os experimentos, e terem seus desempenhos comparados e avaliados.
A avaliao da elasticidade em nuvens distribudas possibilitaria uma viso de um
ambiente bem mais complexo, devido s diversas nuvens envolvidas, e os efeitos da elasticidade
em relao a outros aspectos, como latncia. Assim, seria possvel a utilizao de regras que
utilizassem a latncia como uma mtrica a ser analisada para as aes de elasticidade.
O projeto de experimento de cargas de trabalho especficas para um determinado
domnio, e sua avaliao com o auxlio do FOLE e mtricas propostas tambm so atividades
a serem analisadas. A identificao da distribuio estatstica que a carga de trabalho segue,
sua modelagem e experimentao, seja por simulao, modelagem analtica ou medio, tambm so potenciais trabalhos futuros. Ferramentas como o HTTPERF1 e JMeter2 podem ser
utilizadas para aplicao e comparao de cargas de trabalho.
A utilizao de poucas mquinas virtuais nos experimentos possibilita uma viso
limitada (ambiente relativamente simples e controlado). O ideal seria a utilizao de uma quantidade grande de mquinas virtuais, e assim avaliar os efeitos da elasticidade quando aplicada
em um ambiente de maior escala e volume de dados, consequentemente mais complexo.
7.2.2

Mtricas

Este trabalho props um conjunto de mtricas para a avaliao do desempenho da


elasticidade em Computao em Nuvem. A repetio de seus clculos em experimentos diversos permitir uma melhor identificao de padres nos resultados, e assim a evoluo da
interpretao e especificao, alm de possveis ajustes na forma do clculo.
1 HTTPERF
2 JMeter

- http://www.hpl.hp.com/research/linux/httperf/
- http://jmeter.apache.org/

130

As mtricas orientadas a tempos de operaes de alocao e desalocao de recursos, e orientadas quantidade de recursos, foram focadas em mquinas virtuais. A utilizao
de outras fontes de recursos e estratgias, como aumento da capacidade de processamento e
memria, replicao e migrao, so experimentos a serem projetados que permitiro avaliar o
impacto de diferentes estratgias de elasticidade nas mtricas propostas.
As mtricas orientadas a conceitos da Fsica podem ainda utilizar outros conceitos, como a velocidade para dilatao e contrao. Outro conceito da Fsica a plasticidade,
que ocorre quando o material no pode mais recuperar a sua forma original depois de se remover o estresse, podendo muito bem ser aplicado ao contexto de nuvens computacionais. As
mtricas orientadas a conceitos da Microeconomia possuem diversas situaes relacionadas
elasticidade da demanda e da oferta, como interpretao dos resultados baseadas em grficos
da elasticidade. Todos esses conceitos dessas outras reas do conhecimento podem auxiliar nas
anlises e justificativas dos resultados.
Para a validao de alguns trabalhos futuros, interessante a utilizao de simuladores para os experimentos, e avaliar a elasticidade em grande escala. Assim, a aplicao das
mtricas em simuladores como o CloudSim3 e a execuo de experimentos de simulao em
grande escala permitir uma viso mais ampla das mtricas.
Alm disso, a utilizao das mtricas em um ambiente com aplicaes e usurios
reais, e medio da elasticidade com as mtricas propostas, ou avaliao do desempenho do
provedor neste aspecto, possibilitar uma viso do desempenho de nuvens privadas, pblicas
ou hbridas de um ponto de vista mais realstico.
A incluso do conceito de qualidade nas mtricas propostas possibilitar sua evoluo no sentido em que elasticidade possa ser mais adequada para QoS e SLA, e nas necessidades
de qualidade dos clientes e provedores.
Alm disso, o fator custo financeiro tambm poderia ser avaliado em conjunto com
as mtricas de elasticidade. Em nuvens pblicas comerciais h o componente financeiro, no
considerado neste trabalho. Entretanto, uma avaliao da elasticidade do ponto de vista financeiro, comparando diferentes provedores de servios, agregando o clculo da elasticidade das
mtricas propostas, pode auxiliar na escolha do melhor provedor para servios elsticos. Outro trabalho relacionado tarifao seria avaliar o custo da elasticidade em horrios diferentes
(diurno ou noturno), assim como a localizao geogrfica do datacenter do provedor.
Por fim, como trabalho futuro, a automao da coleta das mtricas propostas, de
modo que elas possam ser utilizadas em ferramentas de visualizao e anlise de maneira mais
prtica, como gerao de grficos e dados estatsticos em tempo real, possibilitando a anlise
em relao a outros aspectos do ambiente.
3 CloudSim

- http://www.cloudbus.org/cloudsim/

131

7.2.3

Framework FOLE

Mesmo com a validao do FOLE, suas atividades ainda podem ser evoludas. Um
detalhamento maior de cada atividade, para que seu uso seja mais intuitivo, e se destaque a
importncia de cada atividade para o projeto de experimentos e anlise de desempenho, um
trabalho a ser desenvolvido. A repetio de sua aplicao permitir um refinamento das atividades, e consequentemente melhoria na sua execuo. Alm disso, a aplicao em diferentes
contextos tambm permitir sua evoluo e adequao possveis situaes especficas da elasticidade que possam surgir.
A criao de orientaes para a anlise da elasticidade em determinados aspectos,
como a interpretao em um grfico especfico, ou sua interpretao baseada em resultados
estatsticos tambm auxiliaria muito na anlise de desempenho.
7.2.4

Arquiteturas

Este trabalho tem um forte contedo arquitetural. Sendo assim, diversos trabalhos
futuros nesse aspecto podem ser identificados.
A estratgia de provimento da elasticidade utilizada neste trabalho foi horizontal.
O desenvolvimento e avaliao de estratgias diferentes, como vertical (aumentando a capacidade dos recursos) e mista (horizontal e vertical), permitiria uma anlise mais completa de um
ambiente de Computao em Nuvem, pois impactaria em diversos componentes arquiteturais.
A arquitetura proposta baseou-se em alguns componentes de Computao Autonmica. Sendo assim, novos nveis de loops poderiam ser empregados, com abordagens proativas.
Novas regras e limiares poderiam ser propostos, utilizando no somente mtricas de infraestrutura, mas mtricas da prpria aplicao, como tempo de resposta e throughput. Demais elementos do auto gerenciamento (auto otimizao, auto cura e auto proteo) tambm podero
ser considerados para a arquitetura proposta neste trabalho como novos componentes e apoiar
a elasticidade. Este trabalho utilizou funes de ao para execuo de eventos de elasticidade.
Como uma expanso deste mecanismo, funes de objetivo e utilitrias podero ser utilizadas em trabalhos futuros, assim como a construo de novas arquiteturas baseadas no modelo
Monitor-Analyze-Plan-Execute (MAPE).
O mecanismo de predio utilizado no foi efetivo, pois seu objetivo foi apenas
validar uma atividade do FOLE. A sua evoluo, por meio da utilizao de diferentes estratgias,
como classificao, aprendizagem de mquina, SVR (Support Vector Regression) e ARIMA
(AutoRegressive Integrated Moving Average), so trabalhos futuros a serem desenvolvidos.
A Internet das Coisas (Internet of Things - IoT) promove um aumento da interao
entre usurios por meio da conexo de diversos dispositivos ao seu redor, compondo uma grande
nuvem computacional. A nuvem e os diversos dispositivos (mveis ou fixos) podem fazer uso
da elasticidade para ajustar o ambiente conforme as necessidades dos servios utilizados pelos
usurios. Assim, a utilizao do FOLE e das mtricas propostas na avaliao da elasticidade do
ambiente pode ser executada.

132

A virtualizao convencional possui agregada o custo do overhead da utilizao dos


recursos (SCHEEPERS, 2014). Virtualizao baseada em container pode ser uma alternativa
para a reduo do overhead e assim melhorar a utilizao dos recursos nos datacenters. Linux
Containers (LXC) uma tecnologia capaz de executar uma grande quantidade de processos,
cada um em seu prprio ambiente isolado. Esta tcnica chamada de virtualizao baseada em
container. Docker, por exemplo, uma ferramenta que facilita o empacotamento de aplicaes
e suas dependncias em containers (MERKEL, 2014). Docker utiliza um componente tambm
utilizado pelo LXC chamado Control Groups (cgroups), que implementa contabilizao e limitao de recursos. Cgroups possibilita Docker a limitar os recursos consumidos pelo container,
como memria, disco e I/O, e tambm oferece mtricas destes recursos. Solues elsticas
podem ser desenvolvidas utilizando essas tecnologias, j que existe um gerenciamento para a
limitao dos recursos e mtricas para monitorao, aspectos muito utilizados na elasticidade.
Por fim, como trabalho futuro, a utilizao do FOLE em arquiteturas variadas, como
plataformas de computao mvel e de Computao de Alto Desempenho, para verificar como
a elasticidade se comporta nesses ambientes.
7.2.5

Ferramentas

Trabalhos de anlise de desempenho em geral utilizam diversas ferramentas para


a gerao das cargas de trabalho sobre os ambientes, como os prprios benchmarks. Essas
cargas de trabalho podem ser geradas a partir de diversas fontes, tais como: benchmarks, microbenchmarks, traos computacionais e aplicaes. Portanto, diversos experimentos podem ser
projetados para a avaliao de desempenho da elasticidade com diferentes cargas de trabalho
e ferramentas, sob as mais diversas situaes. A reviso sistemtica identificou diversas ferramentas, e a utilizao de aplicativos e benchmarks mais tradicionais, como o TPC-C4 e YCSB5 ,
em anlises futuras so trabalhos a serem considerados.
Alm disso, tambm pretende-se realizar um projeto da carga de trabalho que se
aproxime de situaes reais, e estender a validao do FOLE em aplicaes e ambientes com
aplicaes reais, como e-science, web, aplicaes biomdicas, ambientes virtuais de aprendizagem e Computao de Alto Desempenho. A criao de um benchmark que gere uma carga de
trabalho padro, realize o clculo das mtricas de elasticidade, e retorne o resultado como uma
forma de comparar nuvens computacionais do ponto de vista da elasticidade uma ferramenta
a ser construda, e disponibilizada para a comunidade.
A ferramenta de visualizao desenvolvida neste trabalho necessita de diversas melhorias e extenses: automao da coleta das mtricas, novos grficos, novas mtricas e estatsticas. Alm disso, alguns microbenchmarks foram desenvolvidos. Assim, suas melhorias
podem auxiliar na anlise de desempenho de ambientes computacionais, com foco em aspectos
especficos, como processamento, banco de dados, leitura e escrita em disco, e rede.
O desenvolvimento de um benchmark orientado elasticidade uma atividade a ser
4 TPC-C
5 YCSB

- http://www.tpc.org/tpcc/
- http://labs.yahoo.com/news/yahoo-cloud-serving-benchmark/

133

futuramente projetada devido carncia na literatura de benchmarks especficos para a medio


e avaliao da elasticidade. Assim seria possvel a comparao entre ambientes computacionais
de maneira mais padronizada.
Um outro trabalho futuro relacionado ferramentas se refere utilizao de de
ferramentas para a medio do consumo de energia de sistemas computacionais, tais como o
Joulemeter6 , PowerTOP7 , Intel Energy Checker8 e o VMmark9 , que dependem de dispositivos
fsicos conhecidos como wattmetros, como o WattsUp10 . A ideia seria avaliar o custo energtico de operaes de elasticidade, e a utilizao do FOLE e das mtricas propostas para apoiar
essa avaliao.

6 Joulemeter

- http://research.microsoft.com/en-us/downloads/fe9e10c5-5c5b-450c-a674-daf55565f794/
- https://01.org/powertop/
8 Intel Energy Checker - https://software.intel.com/en-us/articles/intel-energy-checker-sdk
9 VMmark - https://www.vmware.com/products/vmmark/
10 Watts Up? - https://www.wattsupmeters.com/secure/index.php
7 PowerTOP

134

REFERNCIAS BIBLIOGRFICAS

ACETO, G. et al. Cloud monitoring: A survey. Computer


Networks, n. 0, p. , 2013. ISSN 1389-1286. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S1389128613001084>.
AISOPOS, F.; TSERPES, K.; VARVARIGOU, T. Resource management in software as a service using the knapsack problem model. International Journal
of Production Economics, n. 0, p. , 2011. ISSN 0925-5273. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0925527311005275>.
ALI-ELDIN, A. et al. Efficient provisioning of bursty scientific workloads on the cloud
using adaptive elasticity control. In: Proceedings of the 3rd workshop on Scientific Cloud
Computing Date. New York, NY, USA: ACM, 2012. (ScienceCloud 12), p. 3140. ISBN
978-1-4503-1340-7. Disponvel em: <http://doi.acm.org/10.1145/2287036.2287044>.
AMAZONWEBSERVICES. Amazon Web Services (Portuguese (Brazil)). 2013.
Http://aws.amazon.com/pt/. Online; acessado em janeiro-2012.
AZURE. Microsoft Azure. 2012. Http://www.microsoft.com/azure/.
BAI, X. et al. Cloud testing tools. In: Service Oriented System Engineering (SOSE), 2011
IEEE 6th International Symposium on. [S.l.: s.n.], 2011. p. 1 12.
BANZAI, T. et al. D-cloud: Design of a software testing environment for reliable distributed
systems using cloud computing technology. In: Cluster, Cloud and Grid Computing (CCGrid),
2010 10th IEEE/ACM International Conference on. [S.l.: s.n.], 2010. p. 631 636.
BENNETT, C. et al. Malstone: towards a benchmark for analytics on large data clouds. In:
Proceedings of the 16th ACM SIGKDD international conference on Knowledge discovery
and data mining. New York, NY, USA: ACM, 2010. (KDD 10), p. 145152. ISBN
978-1-4503-0055-1. Disponvel em: <http://doi.acm.org/10.1145/1835804.1835826>.
BRANTNER, M. et al. Building a database on s3. In: Proceedings of the 2008 ACM SIGMOD
international conference on Management of data - SIGMOD 08. New York: ACM Press,
2008. p. 251. ISBN 9781605581026.
BRUNEO, D. A stochastic model to investigate data center performance and qos in iaas cloud
computing systems. In: . [S.l.: s.n.], 2013. PP, n. 99, p. 11. ISSN 1045-9219.
BRYANT, R. et al. Kaleidoscope: cloud micro-elasticity via vm state coloring. In:
Proceedings of the sixth conference on Computer systems. New York, NY, USA:
ACM, 2011. (EuroSys 11), p. 273286. ISBN 978-1-4503-0634-8. Disponvel em:
<http://doi.acm.org/10.1145/1966445.1966471>.
BUYYA, R.; CALHEIROS, R.; LI, X. Autonomic cloud computing: Open challenges and
architectural elements. In: Emerging Applications of Information Technology (EAIT), 2012
Third International Conference on. [S.l.: s.n.], 2012. p. 310.

135

BUYYA, R. et al. Cloud computing and emerging it platforms: Vision, hype, and reality
for delivering computing as the 5th utility. Future Gener. Comput. Syst., Elsevier Science
Publishers B. V., Amsterdam, The Netherlands, The Netherlands, v. 25, n. 6, p. 599616, 2009.
ISSN 0167-739X.
CALHEIROS, R.; RANJAN, R.; BUYYA, R. Virtual machine provisioning based on analytical
performance and qos in cloud computing environments. In: Parallel Processing (ICPP), 2011
International Conference on. [S.l.: s.n.], 2011. p. 295 304. ISSN 0190-3918.
CALHEIROS, R. N. et al. A coordinator for scaling elastic applications across
multiple clouds. Future Generation Computer Systems, v. 28, n. 8, p. 1350
1362, 2012. ISSN 0167-739X. Including Special sections SS: Trusting Software Behavior and SS: Economics of Computing Services. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X12000635>.
CALHEIROS, R. N. et al. The aneka platform and qos-driven resource
provisioning for elastic applications on hybrid clouds. Future Generation
Computer Systems, n. 0, p. , 2011. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X11001397>.
CASALICCHIO, E.; SILVESTRI, L. Mechanisms for {SLA} provisioning in cloud-based
service providers. Computer Networks, v. 57, n. 3, p. 795 810, 2013. ISSN 1389-1286.
Disponvel em: <http://www.sciencedirect.com/science/article/pii/S1389128612003763>.
CECCHET, E. et al. Benchlab: an open testbed for realistic benchmarking of web
applications. In: Proceedings of the 2nd USENIX conference on Web application development.
Berkeley, CA, USA: USENIX Association, 2011. (WebApps11), p. 44. Disponvel em:
<http://dl.acm.org/citation.cfm?id=2002168.2002172>.
COOPER, B. F. et al. Benchmarking cloud serving systems with ycsb. In: Proceedings of the 1st ACM symposium on Cloud computing. New York, NY, USA:
ACM, 2010. (SoCC 10), p. 143154. ISBN 978-1-4503-0036-0. Disponvel em:
<http://doi.acm.org/10.1145/1807128.1807152>.
COSTA, P. et al. Uma anlise do impacto da qualidade da internet mvel na utilizao de
cloudlets. In: XXXII Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos
(SBRC 2014). [S.l.: s.n.], 2014.
COSTA, R. et al. Sobre a amplitude da elasticidade dos provedores atuais de computao na
nuvem. In: SBRC 2011. [S.l.: s.n.], 2011.
COSTA, R. et al. Analyzing the impact of elasticity on the profit of cloud computing providers.
Future Generation Computer Systems, n. 0, p. , 2013. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X13000058>.
COUTINHO, E.; GOMES, D. G.; SOUZA, J. D. Uma proposta de arquitetura autonmica
para elasticidade em computao em nuvem. In: IV Workshop de Sistemas Distribudos
Autonmicos - WOSIDA2014. [S.l.: s.n.], 2014.
COUTINHO, E.; GOMES, D. G.; SOUZA, J. D. Uma proposta de framework conceitual
para anlise de desempenho da elasticidade em nuvens computacionais. In: XII Workshop em
Clouds e Aplicaes (WCGA2014). Florianpolis - Brasil: [s.n.], 2014.

136

COUTINHO, E.; PAILLARD, G. Aplicaces de computao de alto desempenho e computao


em nuvem na disciplina de desenvolvimento de aplicaes distribudas. In: WSCAD-WEAC
2013. Porto de Galinhas: [s.n.], 2013.
COUTINHO, E.; PAILLARD, G. High performance computing and cloud computing
applications at the discipline of distributed applications development. In: International Journal
of Computer Architecture Education (IJCAE). [S.l.: s.n.], 2013.
COUTINHO, E. et al. Anlise de desempenho com benchmarks em um ambiente pblico de
computao em nuvem. In: X Workshop em Clouds e Aplicaes (WCGA2012). [S.l.: s.n.],
2012.
COUTINHO, E. et al. Uma mtrica para avaliao da elasticidade em computao em nuvem
baseada em conceitos da fsica. In: XII Workshop em Clouds e Aplicaes (WCGA2014).
Florianpolis - Brasil: [s.n.], 2014.
COUTINHO, E. et al. Elasticidade em computao na nuvem: Uma abordagem sistemtica.
In: XXXI Simpsio Brasileiro de Redes de Computadores e Sistemas Distribudos (SBRC 2013)
- Minicursos. [S.l.: s.n.], 2013.
COUTINHO, E. F.; GOMES, D. G.; SOUZA, J. N. d. An analysis of elasticity in cloud
computing environments based on allocation time and resources. In: Cloud Computing and
Communications (LatinCloud), 2nd IEEE Latin American Conference on. Macei, Brazil:
[s.n.], 2013. p. 712.
COUTINHO, E. F. et al. How to deploy a virtual learning environment in the cloud? In:
Proceedings of the 7th Euro American Conference on Telematics and Information Systems.
New York, NY, USA: ACM, 2014. (EATIS 14), p. 25:125:4. ISBN 978-1-4503-2435-9.
Disponvel em: <http://doi.acm.org/10.1145/2590651.2590675>.
COUTINHO, E. F.; PAILLARD, G.; SOUZA, J. N. de. Performance analysis on
scientific computing and cloud computing environments. In: Proceedings of the 7th
Euro American Conference on Telematics and Information Systems. New York, NY,
USA: ACM, 2014. (EATIS 14), p. 5:15:6. ISBN 978-1-4503-2435-9. Disponvel em:
<http://doi.acm.org/10.1145/2590651.2590656>.
CRUZ, F. Scrum e PMBOK unidos no Gerenciamento de Projetos. [S.l.]: Brasport Livros e
Multimdia Ltda., 2013. ISBN 978-85-7452-594-5.
CRUZ, F. et al. Met: workload aware elasticity for nosql. In: Proceedings of the
8th ACM European Conference on Computer Systems. New York, NY, USA:
ACM, 2013. (EuroSys 13), p. 183196. ISBN 978-1-4503-1994-2. Disponvel em:
<http://doi.acm.org/10.1145/2465351.2465370>.
CUNHA, M.; MENDONA, N.; SAMPAIO, A. Cloud crawler: Um ambiente programvel
para avaliar o desempenho de aplicaes em nuvens de infraestrutura. In: XXXI Simpsio
Brasileiro de Redes de Computadores e Sistemas Distribudos (SBRC 2013). [S.l.: s.n.], 2013.
DAS, S.; AGRAWAL, D.; ABBADI, A. E. Elastras: An elastic, scalable, and selfmanaging transactional database for the cloud. ACM Trans. Database Syst., ACM, New
York, NY, USA, v. 38, n. 1, p. 5:15:45, abr. 2013. ISSN 0362-5915. Disponvel em:
<http://doi.acm.org/http://dx.doi.org/10.1145/2445583.2445588>.

137

DAWOUD, W.; TAKOUNA, I.; MEINEL, C. Elastic vm for rapid and optimum virtualized
resources allocation. In: Systems and Virtualization Management (SVM), 2011 5th
International DMTF Academic Alliance Workshop on. [S.l.: s.n.], 2011. p. 1 4.
DENG, N. et al. Adaptive green hosting. In: Proceedings of the 9th international conference
on Autonomic computing. New York, NY, USA: ACM, 2012. (ICAC 12), p. 135144. ISBN
978-1-4503-1520-3. Disponvel em: <http://doi.acm.org/10.1145/2371536.2371561>.
DENKO, M.; YANG, L. T.; ZHANG, Y. Autonomic Computing and Networking. [S.l.]:
Springer, 2009. ISBN 978-0-387-89828-5.
EL-REFAEY, M.; RIZKAA, M. Cloudgauge: A dynamic cloud and virtualization
benchmarking suite. In: Enabling Technologies: Infrastructures for Collaborative Enterprises
(WETICE), 2010 19th IEEE International Workshop on. [S.l.: s.n.], 2010. p. 66 75. ISSN
1524-4547.
EMEAKAROHA, V. C. et al. Low level metrics to high level slas - lom2his framework:
Bridging the gap between monitored metrics and sla parameters in cloud environments. In:
SMARI, W. W.; MCINTIRE, J. P. (Ed.). Proceedings of the 2010 International Conference
on High Performance Computing & Simulation, HPCS 2010, June 28 - July 2, 2010, Caen,
France. [S.l.]: IEEE, 2010. p. 4854. ISBN 978-1-4244-6828-7.
EMEAKAROHA, V. C. et al. Towards autonomic detection of sla violations in cloud
infrastructures. Future Generation Computer Systems, v. 28, n. 7, p. 1017 1029, 2012. ISSN
0167-739X. Special section: Quality of Service in Grid and Cloud Computing</ce:title>.
Disponvel em: <http://www.sciencedirect.com/science/article/pii/S0167739X11002184>.
ENDO, P. et al. Resource allocation for distributed cloud: concepts and research challenges.
Network, IEEE, v. 25, n. 4, p. 4246, July 2011. ISSN 0890-8044.
ESPADAS, J. et al. A tenant-based resource allocation model for scaling softwareas-a-service applications over cloud computing infrastructures. Future Generation Computer Systems, n. 0, p. , 2011. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X1100210X>.
ETCHEVERS, X. et al. Automated configuration of legacy applications in the cloud. In: Utility
and Cloud Computing (UCC), 2011 Fourth IEEE International Conference on. [S.l.: s.n.],
2011. p. 170 177.
FERRER, A. J. et al. Optimis: A holistic approach to cloud service provisioning. Future
Generation Computer Systems, v. 28, n. 1, p. 66 77, 2012. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X1100104X>.
FITO, J.; GOIRI, I.; GUITART, J. Sla-driven elastic cloud hosting provider. In: Parallel,
Distributed and Network-Based Processing (PDP), 2010 18th Euromicro International
Conference on. [S.l.: s.n.], 2010. p. 111 118. ISSN 1066-6192.
FLORES, H.; SRIRAMA, S. N.; PANIAGUA, C. A generic middleware framework for
handling process intensive hybrid cloud services from mobiles. In: Proceedings of the 9th
International Conference on Advances in Mobile Computing and Multimedia. New York,
NY, USA: ACM, 2011. (MoMM 11), p. 8794. ISBN 978-1-4503-0785-7. Disponvel em:
<http://doi.acm.org/10.1145/2095697.2095715>.

138

GALANTE, G.; BONA, L. C. E. de. A survey on cloud computing elasticity. In: Proceedings
of the 5th IEEE/ACM International Conference on Utility and Cloud Computing (UCC 12).
[S.l.: s.n.], 2012.
GAMBI, A. et al. Testing elastic computing systems. Internet Computing, IEEE, v. 17, n. 6, p.
7682, 2013. ISSN 1089-7801.
GAO, J. et al. Saas performance and scalability evaluation in clouds. In: Service Oriented
System Engineering (SOSE), 2011 IEEE 6th International Symposium on. [S.l.: s.n.], 2011. p.
61 71.
GARG, S.; VERSTEEG, S.; BUYYA, R. Smicloud: A framework for comparing and ranking
cloud services. In: Utility and Cloud Computing (UCC), 2011 Fourth IEEE International
Conference on. [S.l.: s.n.], 2011. p. 210 218.
GARG, S. K.; VERSTEEG, S.; BUYYA, R. A framework for ranking of cloud computing
services. Future Generation Computer Systems, n. 0, p. , 2012. ISSN 0167-739X. Disponvel
em: <http://www.sciencedirect.com/science/article/pii/S0167739X12001422?v=s5>.
GHANBARI, H. et al. Exploring alternative approaches to implement an elasticity policy. In:
Cloud Computing (CLOUD), 2011 IEEE International Conference on. [S.l.: s.n.], 2011. p. 716
723. ISSN 2159-6182.
GHOSHAL, D.; RAMAKRISHNAN, L. Frieda: Flexible robust intelligent elastic data
management in cloud environments. In: High Performance Computing, Networking, Storage
and Analysis (SCC), 2012 SC Companion:. [S.l.: s.n.], 2012. p. 10961105.
GOOGLE. Google App Engine. 2014. Https://appengine.google.com/. Online; acessado em
julho-2014.
HAN, R. et al. Enabling cost-aware and adaptive elasticity of multi-tier cloud applications.
Future Generation Computer Systems, n. 0, p. , 2012. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X12001148?v=s5>.
HARIRI, S. et al. The autonomic computing paradigm. Cluster Computing, Kluwer
Academic Publishers, v. 9, n. 1, p. 517, 2006. ISSN 1386-7857. Disponvel em:
<http://dx.doi.org/10.1007/s10586-006-4893-0>.
HE, Q. et al. Case study for running hpc applications in public clouds. In: Proceedings of the
19th ACM International Symposium on High Performance Distributed Computing. New York,
NY, USA: ACM, 2010. (HPDC 10), p. 395401. ISBN 978-1-60558-942-8. Disponvel em:
<http://doi.acm.org/10.1145/1851476.1851535>.
HE, S.; GUO, L.; GUO, Y. Real time elastic cloud management for limited resources. In:
Cloud Computing (CLOUD), 2011 IEEE International Conference on. [S.l.: s.n.], 2011. p.
622629. ISSN 2159-6182.
HERBST, N. R.; KOUNEV, S.; REUSSNER, R. Elasticity in cloud computing: What it
is, and what it is not. In: Proceedings of the 10th International Conference on Autonomic
Computing(ICAC 2013), San Jose, CA. [S.l.]: USENIX, 2013. p. 2327.

139

HONG, Y.-J.; XUE, J.; THOTTETHODI, M. Selective commitment and selective margin:
Techniques to minimize cost in an iaas cloud. In: Performance Analysis of Systems and
Software (ISPASS), 2012 IEEE International Symposium on. [S.l.: s.n.], 2012. p. 99 109.
HP. HP Cloud Services: Now in Private Beta | HP Cloud Services. 2013. Http://hpcloud.com/.
Online; acessado em fevereiro-2013.
IBM. A Pratical Guide to the IBM Autonomic Computing Toolkit Toolkit. [S.l.], 2004.
Disponvel em: <http://www.redbooks.ibm.com/abstracts/sg246635.html?Open>.
IBM. An Architectural Blueprint for Autonomic Computing. [S.l.], 2005.
ISLAM, S. et al. How a consumer can measure elasticity for cloud platforms. In: Proceedings
of the 3rd ACM/SPEC International Conference on Performance Engineering. New York,
NY, USA: ACM, 2012. (ICPE 12), p. 8596. ISBN 978-1-4503-1202-8. Disponvel em:
<http://doi.acm.org/10.1145/2188286.2188301>.
JAIN, R. The Art of Computer Systems Performance Analysis: Techniques for Experimental
Design, Measurement, Simulation, and Modeling. 1st. ed. [S.l.]: John Wiley and Sons, INC,
1991. 685 p. ISBN 1-471-50336-3.
JAIN, T.; OHRI, V. K. Introductory Microeconomics and Macroeconomics. Vk Publications, 2012. ISBN 9788187344216. Disponvel em:
<http://books.google.com.br/books?id=4W68ooHGK18C>.
KEPHART, J. O.; CHESS, D. M. The vision of autonomic computing. Computer, IEEE
Computer Society Press, Los Alamitos, CA, USA, v. 36, n. 1, p. 4150, 2003. ISSN 0018-9162.
KEPHART, J. O.; WALSH, W. E. An artificial intelligence perspective on autonomic
computing policies. In: POLICY. IEEE Computer Society, 2004. p. 312. ISBN 0-7695-2141X. Disponvel em: <http://dblp.uni-trier.de/db/conf/policy/policy2004.html#KephartW04>.
KITCHENHAM, B. Procedures for performing systematic reviews. [S.l.], 2004.
KONSTANTELI, K. et al. Admission control for elastic cloud services. In: Cloud Computing
(CLOUD), 2012 IEEE 5th International Conference on. [S.l.: s.n.], 2012. p. 4148. ISSN
2159-6182.
KOSSMANN, D.; KRASKA, T.; LOESING, S. An evaluation of alternative architectures for transaction processing in the cloud. In: Proceedings of the 2010 ACM
SIGMOD International Conference on Management of data. New York, NY, USA:
ACM, 2010. (SIGMOD 10), p. 579590. ISBN 978-1-4503-0032-2. Disponvel em:
<http://doi.acm.org/10.1145/1807167.1807231>.
KOUKI, Y.; LEDOUX, T. Scaling: Sla-driven cloud auto-scaling. In: Proceedings
of the 28th Annual ACM Symposium on Applied Computing. New York, NY, USA:
ACM, 2013. (SAC 13), p. 411414. ISBN 978-1-4503-1656-9. Disponvel em:
<http://doi.acm.org/10.1145/2480362.2480445>.
KOUSIOURIS, G. et al. Dynamic, behavioral-based estimation of resource provisioning based on high-level application terms in cloud platforms. Future Generation Computer Systems, n. 0, p. , 2012. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X12001057>.

140

KREBS, R.; MOMM, C.; KOUNEV, S. Metrics and techniques for quantifying
performance isolation in cloud environments. In: Proceedings of the 8th international
ACM SIGSOFT conference on Quality of Software Architectures. New York, NY,
USA: ACM, 2012. (QoSA 12), p. 91100. ISBN 978-1-4503-1346-9. Disponvel em:
<http://doi.acm.org/10.1145/2304696.2304713>.
KUMAR, D.; SHAE, Z.-Y.; JAMJOOM, H. Scheduling batch and heterogeneous jobs with
runtime elasticity in a parallel processing environment. In: Parallel and Distributed Processing
Symposium Workshops PhD Forum (IPDPSW), 2012 IEEE 26th International. [S.l.: s.n.],
2012. p. 6578.
LI, A. et al. Cloudcmp: comparing public cloud providers. In: Proceedings of
the 10th ACM SIGCOMM conference on Internet measurement. New York, NY,
USA: ACM, 2010. (IMC 10), p. 114. ISBN 978-1-4503-0483-2. Disponvel em:
<http://doi.acm.org/10.1145/1879141.1879143>.
LI, J. et al. Cyberguarder: A virtualization security assurance architecture for green cloud computing. Future Generation Computer Systems, v. 28, n. 2, p. 379 390, 2012. ISSN 0167-739X.
Disponvel em: <http://www.sciencedirect.com/science/article/pii/S0167739X1100063X>.
LI, M. et al. A scalable and elastic publish/subscribe service. In: Parallel Distributed
Processing Symposium (IPDPS), 2011 IEEE International. [S.l.: s.n.], 2011. p. 1254 1265.
ISSN 1530-2075.
LI, W.; TORDSSON, J.; ELMROTH, E. Modeling for dynamic cloud scheduling via migration
of virtual machines. In: Cloud Computing Technology and Science (CloudCom), 2011 IEEE
Third International Conference on. [S.l.: s.n.], 2011. p. 163 171.
LI, Z. et al. On a catalogue of metrics for evaluating commercial cloud services. In:
Proceedings of the 2012 ACM/IEEE 13th International Conference on Grid Computing.
Washington, DC, USA: IEEE Computer Society, 2012. (GRID 12), p. 164173. ISBN
978-0-7695-4815-9. Disponvel em: <http://dx.doi.org/10.1109/Grid.2012.15>.
LI, Z. et al. On evaluating commercial cloud services: A systematic review. Journal of Systems and Software, n. 0, p. , 2013. ISSN 0164-1212. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0164121213000915>.
LIU, S.; LIANG, Y.; BROOKS, M. Eucalyptus: a web service-enabled e-infrastructure. In:
CASCON 07: Proceedings of the 2007 conference of the center for advanced studies on
Collaborative research. New York, NY, USA: ACM, 2007. p. 111.
LU, W.; JACKSON, J.; BARGA, R. Azureblast: a case study of developing science applications
on the cloud. In: Proceedings of the 19th ACM International Symposium on High Performance
Distributed Computing. New York, NY, USA: ACM, 2010. (HPDC 10), p. 413420. ISBN
978-1-60558-942-8. Disponvel em: <http://doi.acm.org/10.1145/1851476.1851537>.
LUCAS-SIMARRO, J. L. et al. Scheduling strategies for optimal service deployment across
multiple clouds. Future Generation Computer Systems, n. 0, p. , 2012. ISSN 0167-739X.
Disponvel em: <http://www.sciencedirect.com/science/article/pii/S0167739X12000192>.

141

MA, R. et al. A stack-on-demand execution model for elastic computing. In: Parallel
Processing (ICPP), 2010 39th International Conference on. [S.l.: s.n.], 2010. p. 208 217.
ISSN 0190-3918.
MALIK, S.; HUET, F.; CAROMEL, D. Racs: A framework for resource aware cloud
computing. In: Internet Technology And Secured Transactions, 2012 International Conferece
For. [S.l.: s.n.], 2012. p. 680687.
MANKIW, N. G. Principles of Microeconomics. 6th. ed. [S.l.]: CENGAGE Learning, 2012.
ISBN 978-0538453042.
MAUCH, V.; KUNZE, M.; HILLENBRAND, M. High performance cloud computing.
Future Generation Computer Systems, n. 0, p. , 2012. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X12000647>.
MELL, P.; GRANCE, T. The nist definition of cloud computing. National Institute of Standards and Technology, NIST, v. 53, n. 6, p. 50, 2009. Disponvel em:
<http://csrc.nist.gov/groups/SNS/cloud-computing/cloud-def-v15.doc>.
MENASCE, D. A.; DOWDY, L. W.; ALMEIDA, V. A. F. Performance by Design: Computer
Capacity Planning By Example. Upper Saddle River, NJ, USA: Prentice Hall PTR, 2004. ISBN
0130906735.
MERKEL, D. Docker: Lightweight linux containers for consistent development and
deployment. Linux J., Belltown Media, Houston, TX, v. 2014, n. 239, mar. 2014. ISSN
1075-3583. Disponvel em: <http://dl.acm.org/citation.cfm?id=2600239.2600241>.
MICHON, E.; GOSSA, J.; GENAUD, S. Free elasticity and free cpu power for scientific
workloads on iaas clouds. In: Parallel and Distributed Systems (ICPADS), 2012 IEEE 18th
International Conference on. [S.l.: s.n.], 2012. p. 8592. ISSN 1521-9097.
MICROSOFT. Azure: Plataforma em Nuvem da Microsoft. 2014.
Https://azure.microsoft.com/pt-br/. Online; acessado em julho-2014.
MOLDOVAN, D. et al. Mela: Monitoring and analyzing elasticity of cloud services. In: Cloud
Computing Technology and Science (CloudCom), 2013 IEEE 5th International Conference on.
[S.l.: s.n.], 2013. v. 1, p. 8087.
MONTERO, R. S.; MORENO-VOZMEDIANO, R.; LLORENTE, I. M. An elasticity model
for high throughput computing clusters. Journal of Parallel and Distributed Computing, v. 71,
n. 6, p. 750 757, 2011. ISSN 0743-7315. Special Issue on Cloud Computing. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0743731510000985>.
MONTGOMERY, D. C. Design and analysis of experiments. 7th. ed. [S.l.]: John Wiley and
Sons, INC, 2009. 656 p. ISBN 9780470128664.
MOREIRA, L. O. et al. Towards improvements on the quality of service for multi-tenant
rdbms in the cloud. In: Data Engineering Workshops (ICDEW), 2014 IEEE 30th International
Conference on. [S.l.: s.n.], 2014. p. 162169.
MOREIRA, L. O. et al. A live migration approach for multi-tenant rdbms in the cloud. In:
Simpsio Brasileiro de Banco de Dados (SBBD). [S.l.: s.n.], 2013.

142

MORENO-VOZMEDIANO, R.; MONTERO, R.; LLORENTE, I. Multicloud deployment of


computing clusters for loosely coupled mtc applications. Parallel and Distributed Systems,
IEEE Transactions on, v. 22, n. 6, p. 924 930, june 2011. ISSN 1045-9219.
MORENO-VOZMEDIANO, R.; MONTERO, R. S.; LLORENTE, I. M. Elastic management
of cluster-based services in the cloud. In: Proceedings of the 1st workshop on Automated
control for datacenters and clouds. New York, NY, USA: ACM, 2009. (ACDC 09), p. 1924.
ISBN 978-1-60558-585-7. Disponvel em: <http://doi.acm.org/10.1145/1555271.1555277>.
NCBI, N. C. for B. I. National Center for Biotechnology Information. 2013.
Http://www.ncbi.nlm.nih.gov/. Online; October-2013.
NIE, L.; XU, Z. An adaptive scheduling mechanism for elastic grid computing. In: Semantics,
Knowledge and Grid, 2009. SKG 2009. Fifth International Conference on. [S.l.: s.n.], 2009. p.
184 191.
NIEHORSTER, O. et al. Autonomic resource management with support vector machines.
In: Proceedings of the 2011 IEEE/ACM 12th International Conference on Grid Computing.
Washington, DC, USA: IEEE Computer Society, 2011. (GRID 11), p. 157164. ISBN
978-0-7695-4572-1. Disponvel em: <http://dx.doi.org/10.1109/Grid.2011.28>.
NIU, D. et al. Quality-assured cloud bandwidth auto-scaling for video-on-demand applications.
In: INFOCOM, 2012 Proceedings IEEE. [S.l.: s.n.], 2012. p. 460 468. ISSN 0743-166X.
OPENNEBULA.ORG. .:: OpenNebula: The Open Source Toolkit for Data Center
Virtualization ::. 2012. Http://opennebula.org/. Online; acessado em janeiro-2012.
OPENSTACK.ORG. OpenStack Open Source Cloud Computing Software. Maro 2013.
Http://openstack.org/. Online; acessado em maro-2013.
OTTO, J.; STANOJEVIC, R.; LAOUTARIS, N. Temporal rate limiting: Cloud elasticity at
a flat fee. In: Computer Communications Workshops (INFOCOM WKSHPS), 2012 IEEE
Conference on. [S.l.: s.n.], 2012. p. 151 156.
PANDEY, S. et al. An autonomic cloud environment for hosting ecg data analysis services.
Future Generation Computer Systems, v. 28, n. 1, p. 147 154, 2012. ISSN 0167-739X.
Disponvel em: <http://www.sciencedirect.com/science/article/pii/S0167739X11000732>.
PANIAGUA, C.; SRIRAMA, S. N.; FLORES, H. Bakabs: managing load of cloud-based
web applications from mobiles. In: Proceedings of the 13th International Conference
on Information Integration and Web-based Applications and Services. New York, NY,
USA: ACM, 2011. (iiWAS 11), p. 485490. ISBN 978-1-4503-0784-0. Disponvel em:
<http://doi.acm.org/10.1145/2095536.2095636>.
PARASHAR, M.; HARIRI, S. Autonomic Computing: Concepts, Infrastructure, and
Applications. [S.l.]: CRC Press, 2006.
PAWLUK, P. et al. Introducing stratos: A cloud broker service. In: Cloud Computing
(CLOUD), 2012 IEEE 5th International Conference on. [S.l.: s.n.], 2012. p. 891898. ISSN
2159-6182.

143

PEREZ-SORROSAL, F. et al. Elastic si-cache: consistent and scalable caching in


multi-tier architectures. The VLDB Journal, Springer-Verlag New York, Inc., Secaucus,
NJ, USA, v. 20, n. 6, p. 841865, dez. 2011. ISSN 1066-8888. Disponvel em:
<http://dx.doi.org/10.1007/s00778-011-0228-8>.
QIN, X. et al. Elasticat: A load rebalancing framework for cloud-based key-value stores. In:
High Performance Computing (HiPC), 2012 19th International Conference on. [S.l.: s.n.],
2012. p. 110.
RAVEENDRAN, A.; BICER, T.; AGRAWAL, G. A framework for elastic execution of existing
mpi programs. In: Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW),
2011 IEEE International Symposium on. [S.l.: s.n.], 2011. p. 940 947. ISSN 1530-2075.
REGO, P. et al. Faircpu: Architecture for allocation of virtual machines using processing
features. In: Utility and Cloud Computing (UCC), 2011 Fourth IEEE International Conference
on. [S.l.: s.n.], 2011. p. 371376.
REGO, P. et al. Alocao autonmica de recursos para mquinas virtuais baseada em
caractersticas de processamento. In: II Workshop de Sistemas Distribudos Autonmicos WOSIDA2012. [S.l.: s.n.], 2012.
REGO, P.; COUTINHO, E.; SOUZA, J. D. Proposta de workflow para alocao de mquinas
virtuais utilizando caractersticas de processamento. In: IX Workshop em Clouds e Aplicaes
(WCGA2011). [S.l.: s.n.], 2011.
REGO, P.; COUTINHO, E.; SOUZA, J. D. Estratgias para alocao dinmica de recursos em
um ambiente hbrido de computao em nuvem. In: XII Workshop em Clouds e Aplicaes
(WCGA2013). [S.l.: s.n.], 2013.
RUSSELL, R.; CHUNG, M.; BALK, E. Issues and Challenges in Conducting Systematic
Reviews to Support Development of Nutrient Reference Values. [S.l.], 2009.
SALVATORE, D. Managerial Economics in a Global Economy. 7th. ed. [S.l.]: Oxford
University Press, USA, 2011. ISBN 978-0199811786.
SAMUELSON, W. F.; MARKS, S. G. Managerial Economics. 7th. ed. [S.l.]: JOHN WILEY
& SONS, INC., 2012. ISBN 978-1118041581.
SANTOS, G. et al. Scale-space filtering for workload analysis and forecast. In: Cloud
Computing (CLOUD), 2013 IEEE Sixth International Conference on. [S.l.: s.n.], 2013. p.
677684.
SCHEEPERS, M. Virtualization and containerization of application infrastructure: A
comparison. In: . [S.l.]: University of Twente, 2014. v. 21, n. June 23.
SCOPE. SCOPE Alliance Telecom Grade Cloud Computing. [S.l.], 2011. Disponvel em:
<http://scope-alliance.org/>.
SHARMA, U. et al. A cost-aware elasticity provisioning system for the cloud. In: International
Conference on Distributed Computing Systems (ICDCS). [S.l.: s.n.], 2011. p. 559570.

144

SHAWKY, D. M.; ALI, A. F. Defining a measure of cloud computing elasticity. In: Systems
and Computer Science (ICSCS), 2012 1st International Conference on. [S.l.: s.n.], 2012.
p. 15.
SIMES, R.; KAMIENSKI, C. Gerenciamento de elasticidade em nuvens privadas e hbridas.
In: XII Workshop em Clouds e Aplicaes (WCGA2014). Florianpolis - Brasil: [s.n.], 2014.
SLOMAN, M. Policy driven management for distributed systems. Journal of Network and
Systems Management, v. 2, p. 333360, 1994.
SOBEL, W. et al. Cloudstone: Multi-platform, multi-language benchmark and measurement
tools for web 2.0. 2008.
SOROR, A. A. et al. Automatic virtual machine configuration for database workloads. ACM
Trans. Database Syst., ACM, New York, NY, USA, v. 35, n. 1, p. 147, 2010. ISSN 0362-5915.
SOUSA, F.; MACHADO, J. Towards elastic multi-tenant database replication with quality of
service. In: Utility and Cloud Computing (UCC), 2012 IEEE Fifth International Conference
on. [S.l.: s.n.], 2012. p. 168175.
SOUSA, F. R. Computao autnoma. Monografia de Qualificao de Doutorado, 2010.
SULEIMAN, B. et al. On understanding the economics and elasticity challenges of deploying
business applications on public cloud infrastructure. J. Internet Services and Applications
(JISA), v. 3, n. 2, p. 173193, 2012.
TIMOSHENKO, S. P.; GOODIER, J. Theory of Elasticity. 3rd. ed. [S.l.]: McGraw-Hill
Education, 1970. 608 p. ISBN 0070642702.
TIRADO, J. et al. Predictive data grouping and placement for cloud-based elastic server
infrastructures. In: Cluster, Cloud and Grid Computing (CCGrid), 2011 11th IEEE/ACM
International Symposium on. [S.l.: s.n.], 2011. p. 285 294.
TOOSI, A. et al. Resource provisioning policies to increase iaas providers profit in a federated
cloud environment. In: High Performance Computing and Communications (HPCC), 2011
IEEE 13th International Conference on. [S.l.: s.n.], 2011. p. 279287.
TORDSSON, J. et al. Cloud brokering mechanisms for optimized placement of
virtual machines across multiple providers. Future Generation Computer Systems, v. 28, n. 2, p. 358 367, 2012. ISSN 0167-739X. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S0167739X11001373>.
TUDORAN, R. et al. A performance evaluation of azure and nimbus clouds for scientific
applications. In: Proceedings of the 2nd International Workshop on Cloud Computing
Platforms. New York, NY, USA: ACM, 2012. (CloudCP 12), p. 4:14:6. ISBN 978-1-45031161-8. Disponvel em: <http://doi.acm.org/10.1145/2168697.2168701>.
URIARTE, R. B.; WESTPHALL, C. B. Panoptes: A monitoring architecture and framework
for supporting autonomic clouds. In: Network Operations and Management Symposium
(NOMS), 2014 IEEE. [S.l.: s.n.], 2014. p. 15.

145

VAQUERO, L. M.; RODERO-MERINO, L.; BUYYA, R. Dynamically scaling applications in


the cloud. SIGCOMM Comput. Commun. Rev., ACM, New York, NY, USA, v. 41, n. 1, p. 45
52, 2011. ISSN 0146-4833. Disponvel em: <http://doi.acm.org/10.1145/1925861.1925869>.
VAQUERO, L. M. et al. A break in the clouds: towards a cloud definition. SIGCOMM Comput.
Commun. Rev., ACM, New York, NY, USA, v. 39, n. 1, p. 5055, 2009. ISSN 0146-4833.
.
VERDI, F. L. et al. Novas arquiteturas de data center para cloud computing. In:
Gramado, RS: SBC, 2010. in Minicursos do XXVIII Simpsio Brasileiro de Redes de
Computadores - SBRC2010, p. 103152.
WEE, S.; LIU, H. Client-side load balancer using cloud. In: Proceedings of the 2010 ACM
Symposium on Applied Computing. New York, NY, USA: ACM, 2010. (SAC 10), p. 399405.
ISBN 978-1-60558-639-7. Disponvel em: <http://doi.acm.org/10.1145/1774088.1774173>.
WHITE, S. R. et al. An architectural approach to autonomic computing. In: ICAC. IEEE
Computer Society, 2004. p. 29. ISBN 0-7695-2114-2. Disponvel em: <http://dblp.unitrier.de/db/conf/icac/icac2004.html/#WhiteHWCK04>.
WONG, A. K.; GOSCINSKI, A. M. A vmd plugin for namd simulations on amazon ec2.
Procedia Computer Science, v. 9, n. 0, p. 136 145, 2012. ISSN 1877-0509. Proceedings
of the International Conference on Computational Science, ICCS 2012. Disponvel em:
<http://www.sciencedirect.com/science/article/pii/S1877050912001366>.
XU, H.; LI, B. A study of pricing for cloud resources. SIGMETRICS Perform. Eval. Rev.,
ACM, New York, NY, USA, v. 40, n. 4, p. 312, abr. 2013. ISSN 0163-5999. Disponvel em:
<http://doi.acm.org/10.1145/2479942.2479944>.
YIGITBASI, N. et al. C-meter: A framework for performance analysis of computing clouds.
In: Cluster Computing and the Grid, 2009. CCGRID 09. 9th IEEE/ACM International
Symposium on. [S.l.: s.n.], 2009. p. 472 477.
YU, T. et al. Intelligent database placement in cloud environment. In: Web Services (ICWS),
2012 IEEE 19th International Conference on. [S.l.: s.n.], 2012. p. 544551.
ZHAI, Y. et al. Cloud versus in-house cluster: evaluating amazon cluster compute
instances for running mpi applications. In: State of the Practice Reports. New York, NY,
USA: ACM, 2011. (SC 11), p. 11:111:10. ISBN 978-1-4503-1139-7. Disponvel em:
<http://doi.acm.org/10.1145/2063348.2063363>.
ZHAO, L.; SAKR, S.; LIU, A. A framework for consumer-centric sla management of
cloud-hosted databases. IEEE Transactions on Services Computing, IEEE Computer Society,
Los Alamitos, CA, USA, v. 99, n. PrePrints, p. 1, 2013. ISSN 1939-1374.

146

APNDICE A -- MTRICAS COMPLEMENTARES

Tabela A.1: Lista de variveis e nomenclatura para mtricas complementares baseadas em tempos de alocao de recursos
Varivel

Descrio
TTotal

Tempo Total do experimento

%TASo =

TASo
TTotal

Percentual do tempo de alocao sobreprovisionado

%TASu =

TASu
TTotal

Percentual do tempo de alocao subprovisionado

%TAE =

TAE
TTotal

Percentual do tempo de alocao estabilizado

%TAT =

TAT
TTotal

Percentual do tempo de alocao transitrio

ITASo

Total de intervalos de tempo de alocao sobreprovisionado

ITASu

Total de intervalos de tempo de alocao subprovisionado

ITAE

Total de intervalos de tempo de alocao estabilizada

ITAT

Total de intervalos de tempo de alocao transitrio

TTASo =

TASo
ITASo

Tempo mdio de alocao sobreprovisionado

TTASu =

TASu
ITASu

Tempo mdio de alocao subprovisionado

TTAE =

TAE
ITAE

Tempo mdio de alocao estabilizado

TTAT =

TAT
ITAT

Tempo mdio de alocao transitrio

147

Tabela A.2: Lista de variveis e nomenclatura para mtricas complementares baseadas em quantidade de recursos
Varivel

Descrio
RTotal

Total de recursos alocados

IT RASo

Total de intervalos de tempo de alocao sobreprovisionada

IT RASu

Total de intervalos de tempo de alocao subprovisionada

IT RAE

Total de intervalos de tempo de alocao estabilizada

RT RASo =

T RASo
IT RASo

Mdia de recursos alocados sobreprovisionados

RT RASu =

T RASu
IT RASu

Mdia de recursos alocados subprovisionados

RT RAE =

T RAE
IT RAE

Mdia de recursos alocados estabilizados

148

APNDICE B -- FERRAMENTA

Figura B.1: Tela com o consumo de CPU de um experimento individual por mquina virtual e
com todas as mquinas virtuais em paralelo

Figura B.2: Tela com o consumo de memria de um experimento individual por mquina virtual
e com todas as mquinas virtuais em paralelo

149

Figura B.3: Tela com a leitura e escrita em disco de um experimento individual por mquina
virtual e com todas as mquinas virtuais em paralelo

Figura B.4: Tela com pacotes enviados e pacotes recebidos de um experimento individual por
mquina virtual e com todas as mquinas virtuais em paralelo

150

Figura B.5: Tela com tempo de resposta de um experimento individual por mquina virtual e
com todas as mquinas virtuais em paralelo

Figura B.6: Tela com a mdia de utilizao de CPU de todas as mquinas virtuais e a alocao
das mquinas virtuais de um experimento

151

Figura B.7: Tela com as mtricas de elasticidade de um experimento

Figura B.8: Tela tpica para uma anlise de desempenho com a mdia de utilizao de CPU
de todas as mquinas virtuais, a alocao conforme os limiares definidos na infraestrutura, as
mtricas de elasticidade e o tempo de resposta das requisies de um experimento

Você também pode gostar