Escolar Documentos
Profissional Documentos
Cultura Documentos
Tese EmanuelFerreiraCoutinho
Tese EmanuelFerreiraCoutinho
DEPARTAMENTO DE COMPUTAO
CURSO DE CINCIA DA COMPUTAO
FORTALEZA, CEAR
2014
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
AGRADECIMENTOS
RESUMO
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
. . . . . . . . . . . . . . . . . . . . . 31
. 37
. . . . . . . 39
. . . 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
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
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
. . . . . . . . . . . . . . . . . . . . . . . . . . . 25
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
. . . . . . . . . . . . . . . . . 45
. . . . . . . . . . . . . . . . 45
. . . . . . . . . . . . . . . . . . . . . 49
. . . . . . . . . . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
sica
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
75
. . . . . . . . . . . . . . . . . . . . . . . 94
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
. . . . . . . . . . . . . 99
. . . . . . . . . . . . . . . . . . . . . . . . . . . 108
. . . . . . . . . . . . . 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
SUMRIO
INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.1
1.2
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
2.3.2
Polticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.3
2.3.4
Consideraes Arquiteturais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1
3.1.1
3.1.2
3.1.3
3.2
3.3
3.3.1
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
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
3.4
4.1
4.2
4.3
4.4
4.5
5.1
5.2
5.3
5.4
Aplicao do FOLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.5
Suporte Ferramental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.5.1
Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.5.2
EXPERIMENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.1
6.1.1
Material e Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.1.2
Carga de Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.1.3
6.1.4
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.1.5
Mtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.1.6
6.2
6.2.1
6.2.2
6.2.3
6.2.4
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6.2.5
7.1
7.2
7.2.1
Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.2.2
Mtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.2.3
7.2.4
Arquiteturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.2.5
Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
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
19
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
21
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
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:
24
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
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
27
REFERENCIAL TERICO
Computao em Nuvem
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
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
31
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
33
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
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
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 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
38
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
40
TRABALHOS RELACIONADOS
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
41
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
44
3.1.3
45
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.
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
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
47
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
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
SD
7
0
0
8
2
0
17
ACM
11
2
0
2
3
1
19
IEEE
15
3
7
9
5
1
40
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
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
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
Quantidade
9
8
6
4
3
2
52
53
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
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
Custo
QoS
Utilizao de Recursos
Escalabilidade
Tempo
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
57
3.3.4
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
59
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
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
(EL-REFAEY;
RIZKAA,
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
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
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
S/MA
M/MA
Li et al. (2012)
S/MA
N
N
N
E
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
69
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
Descrio
m
TASo = Ui
TASu = Oi
TAE = Si
TAT = Ti
T RASu = Ur i
1
T RASo = Or i
1
T RAE = Sr i
1
72
4.2
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)
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)
% 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
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
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
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
79
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
80
81
(a)
(b)
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
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
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
89
90
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
94
5.5.2
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
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
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
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
Material e Mtodos
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
Figura 6.2: Representao da carga de trabalho aplicada ao experimento com nuvem privada
99
Parmetros
Fatores
Tcnica de Avaliao
Carga de Trabalho
Projeto de Experimentos
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
101
Experimentos
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
(a) Estresse da Qualidade na Nuvem (SQN ), Tenso dos Recursos Demandados (TRD )
e Tenso dos Recursos Alocados (TRA )
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 )
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
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
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
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
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
111
112
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
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
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
115
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
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
Parmetros
Fatores
Tcnica de Avaliao
Carga de Trabalho
Projeto de Experimentos
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
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
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
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
124
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
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
127
128
129
7.2
Trabalhos Futuros
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
- 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
Ferramentas
- http://www.tpc.org/tpcc/
- http://labs.yahoo.com/news/yahoo-cloud-serving-benchmark/
133
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
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
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
143
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
146
Tabela A.1: Lista de variveis e nomenclatura para mtricas complementares baseadas em tempos de alocao de recursos
Varivel
Descrio
TTotal
%TASo =
TASo
TTotal
%TASu =
TASu
TTotal
%TAE =
TAE
TTotal
%TAT =
TAT
TTotal
ITASo
ITASu
ITAE
ITAT
TTASo =
TASo
ITASo
TTASu =
TASu
ITASu
TTAE =
TAE
ITAE
TTAT =
TAT
ITAT
147
Tabela A.2: Lista de variveis e nomenclatura para mtricas complementares baseadas em quantidade de recursos
Varivel
Descrio
RTotal
IT RASo
IT RASu
IT RAE
RT RASo =
T RASo
IT RASo
RT RASu =
T RASu
IT RASu
RT RAE =
T RAE
IT RAE
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.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