Buscar

Monografia - Elasticidade em Cloud Computing

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIP – UNIVERSIDADE PAULISTA 
 
 
 
 
 
 
 
 
 
JOSÉ LUIZ DA SILVA FILHO 
 
 
 
 
 
 
 
Infraestrutura de Computação em Nuvem: Elasticidade 
 
 
 
 
 
 
 
 
 
 
 
 
 
São Paulo 
2019 
JOSÉ LUIZ DA SILVA FILHO 
 
 
 
 
 
 
 
 
 
 
Infraestrutura de Computação em Nuvem: Elasticidade 
 
 
 
 
 
 
 
 
Monografia apresentada à UNIP – 
Universidade Paulista, com objetivo de 
obtenção de título de especialista, no curso 
da pós-graduação “lato sensu” em 
Engenharia de Redes e Sistema de 
Telecomunicações. 
 
Orientador: Profº Ronald Stevis Cassiolato 
 
 
 
 
São Paulo 
2019 
JOSÉ LUIZ DA SILVA FILHO 
 
 
 
 INFRAESTRUTURA DE COMPUTAÇÃO EM NUVEM: Elasticidade 
 
 
 
 
 
 
 
 
 
Aprovado em: _______________________/__/___ 
 
Banca Examinadora: 
 
Professor Ronald Stevis Cassiolato 
 Professora Maria Conceição Perroni Cassiolato 
 
 
 
Trabalho de Conclusão de Curso para obtenção do título de Pós-Graduação em 
Engenharia de Redes e Sistema de Telecomunicações apresentado à Universidade 
Paulista – UNIP 
 
 
 
 
 
 
São Paulo 
2019 
DEDICATÓRIA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dedico esse trabalho ao meu pai José Luiz 
(in memorian), ao meu avô Noel Mendes de 
Oliveira (in memorian) e à minha esposa 
Magali Rodrigues da Silva que por mais de 
trinta anos acompanharam a minha trajetória 
de luta sendo facilitadores e condutores 
incondicionais para eu atingir esta meta de 
especialização. 
AGRADECIMENTOS 
 
 
 
 
 
 
 
 
 
Agradeço à minha esposa Magali que em 
momentos difíceis e de estresse manteve o 
apoio incondicional, o cuidado amoroso com 
os afazeres domésticos e com nossos filhos 
sendo especialmente compreensiva mesmo 
nas fases em que eu permaneci mais 
distante. Ao meu querido avô Noel, que 
sempre acreditou no meu potencial e nunca 
economizou uma palavra de incentivo. Aos 
mestres Ronaldo Rocchi, Wagner Moreira, 
Francisco Ariza, Ronald Stevis e Maria 
Conceição, que nesses semestres 
dedicaram atenção e compartilharam os 
conhecimentos comigo, muito obrigado. Ao 
meu colega de sala Fábio Jr, que foi meu par 
na elaboração dos trabalhos que 
desenvolvemos em equipe no decorrer 
desse curso. Aos meus amigos Milton 
Santos e Henry Lobo, mestrandos da USP e 
UNICAMP respectivamente, que me 
instigaram com o tema escolhido. 
Finalmente, à Deus, que me abençoou com 
boa disposição física e mental para 
completar esta jornada. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Faça o teu melhor, na condição que você tem, 
enquanto você não tem condições melhores, para 
fazer melhor ainda! 
 
Mario Sergio Cortella 
7 
 
 
 
 
 
RESUMO 
 
Esse trabalho resulta de uma pesquisa desenvolvida para a apresentação de 
Monografia no curso Engenharia de Redes e Sistema de Telecomunicações na 
UNIP. O trabalho foi intitulado “Infraestrutura de Computação em Nuvem: 
Elasticidade” e foi escolhido esse tema porque vem mudando a maneira como os 
profissionais e recursos operacionais trabalham. A referência teórica desta pesquisa 
está baseada em livros dos autores Manoel Veras, Brian J. S. Chee, Curtis Franklin 
Jr, Anthony T. Velte, Toby J. Velte e Robert C. Elsenpeter além de consultas em 
artigos de revistas e workshops, como também sites relacionados ao tema e 
referenciados no anexo. Por definição a Computação em nuvem é o uso de recursos 
computacionais compartilhados e interligados por meio da internet, estes recursos 
computacionais podem ser memória, dispositivos de armazenamento, 
processadores e servidores, dentre outros e que podem ser acessados virtualmente 
a partir de qualquer lugar do mundo e em qualquer momento. A computação evoluiu 
de tal forma que ampliou e mudou a possibilidade das organizações acessarem os 
recursos computacionais numa escala exponencialmente maior que antes. O termo 
nuvem é apenas uma abstração para definir onde estão alocados estes recursos 
computacionais uma vez que fisicamente não está na própria organização e sim em 
alguma empresa ao redor do mundo. O acesso a estes recursos computacionais é 
feito via “computadores pessoais”, que funcionam apenas como um terminal de 
acesso sem a necessidade de boa capacidade de armazenamento/processamento 
via internet (via “nuvem”) proporcionando melhor relação custo/benefício possível. 
As empresas pioneiras no oferecimento de serviços de computação em nuvem são 
Amazon, Google, IBM e Microsoft isto significa que estas empresas em 
determinados locais possuem muitos recursos computacionais, muitos servidores, 
com muita memória, com muita capacidade de armazenamento, com muitos 
processadores para poder alugar estes serviços aos interessados em usar os 
dispositivos e acessar através da internet. A infraestrutura em nuvem oferece ao 
interessado, entre outros serviços, o uso de uma parte (um percentual) de um 
servidor, geralmente com configuração que se adeque a necessidade. Esta 
infraestrutura deve ser segura, escalável e flexível. A elasticidade é a característica 
flexível de um serviço em nuvem, que oferece o redimensionamento de recursos. 
8 
 
 
 
 
 
Esta característica significa a capacidade de incrementar ou remover recursos e a 
principal vantagem é a possibilidade de criação de maquinas virtual ou containers 
para atendimento de uma demanda automaticamente. Em outras palavras os 
recursos são reservados ou liberados para utilização por outros demandantes de 
acordo com a necessidade. Esta elasticidade dentro das organizações possibilita 
uma otimização permanente dos investimentos em tecnologia, esse modelo propicia 
escalar imediatamente a entrega em cenários de crescimento alto e retração 
também, evitando desperdícios causados por recursos ociosos e proporcionando 
alívio aos profissionais de TI para cuidarem de outros itens também importantes das 
funções, como inovação, planejamento estratégico e entrega. 
 
Palavras-chave: Computação em nuvem. Infraestrutura. Elasticidade. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ABSTRACT 
 
This work is the result of research developed for the presentation of Monograph in 
the course of Network Engineering and Telecommunications System at UNIP. The 
work was titled “Cloud Computing Infrastructure: Elasticity” and was chosen because 
it is changing the way professionals and operational resources work. The theoretical 
reference of this research is based on books of the authors Manoel Veras, Brian J. S. 
Chee, Curtis Franklin Jr., Anthony T. Velte, Toby J. Velte and Robert C. Elsenpeter 
as well as consultations in magazine and workshop articles, as well as related 
websites and referenced in the annex. By definition Cloud computing is the use of 
shared and interconnected computing resources over the internet, these computing 
resources can be memory, storage devices, processors and servers, among others 
and can be accessed from virtually anywhere in the world. and at any time. 
Computing has evolved to such an extent that it has expanded and changed the 
ability of organizations to access their computing resources on an exponentially 
larger scale than before. The term cloud is just an abstraction to define where these 
computational resources are allocated since it is physically not in the organization 
itself but in some company around the world. Access to these computing resources is 
via "personal computers", which function only as an access terminal without the need 
for good storage / processing via the internet (via "cloud") providing the best possible 
cost / benefit ratio. The pioneer companies offering cloud computing services are 
Amazon, Google, IBM and Microsoft. This means that these companies in certain 
locations have a lot of computational resources, many servers, a lot of memory, a lot 
of storage capacity, withmany processors to be able to rent these services to those 
interested in using their devices and accessing over the internet. The cloud 
infrastructure offers to the interested, among other services, the use of a part (a 
percentage) of a server, usually with configuration that suits its necessity. This 
infrastructure must be secure, scalable and flexible. Elasticity is the flexible feature of 
a cloud service that offers resource scaling. This feature means the ability to 
increment or remove resources and its main advantage is the ability to create virtual 
machines or containers to meet a demand automatically. In other words the 
resources are reserved or released for use by other plaintiffs according to their need. 
This elasticity within organizations enables ongoing optimization of technology 
10 
 
 
 
 
 
investments, this model enables immediate scaling of delivery in high growth and 
shrink scenarios as well, avoiding wasteful idle resources and providing IT 
professionals with relief from taking care of other important items. their functions, 
such as innovation, strategic planning and delivery. 
 
Keywords: Cloud computing. Infrastructure. Elasticity. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO 
 
1. CAPÍTULO 1 - INTRODUÇÃO .............................................................................. 12 
2. CAPÍTULO 2 – ELASTICIDADE EM CLOUD COMPUTING ................................ 13 
2.1 OBJETIVOS E CONTRIBUIÇÕES ...................................................................... 17 
2.2 O PARADIGMA DE COMPUTAÇÃO EM NUVEM .............................................. 20 
2.3 ARQUITETURA ORIENTADA A SERVIÇOS (SOA) ........................................... 28 
2.4 SERVIÇO DE PROCESSOS DE NEGÓCIOS .................................................... 30 
2.5 WEB 2.0 .............................................................................................................. 31 
3. CAPÍTULO 3 – GERENCIAMENTO AUTÔNOMO DE ELASTICIDADE NA 
NUVEM ..................................................................................................................... 32 
3.1 CONFIGURAÇÃO AUTOMÁTICA (AUTOCONFIGURAÇÃO) ............................ 33 
3.2 CIRCUITO FECHADO DE CONTROLE AUTONÔMICO .................................... 35 
3.3 ELASTICIDADE NA NUVEM ............................................................................... 36 
3.4 SISTEMA AUTONÔMICO, ELASTICIDADE MANAGEMENT SOLUTIONS ....... 39 
3.5 MODELOS FORMAIS PARA ESPECIFICAÇÃO E ANÁLISE ............................. 44 
4. CAPÍTULO 4 – CONSIDERAÇÕES FINAIS ......................................................... 50 
5. REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................... 52 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12 
 
 
 
 
 
1. CAPÍTULO 1 - INTRODUÇÃO 
 
A elasticidade é uma característica em um sistema de computação em nuvem 
que possui a capacidade de se adequar a um volume de trabalho através de 
montagem e desmontagem de recursos automaticamente na medida que a 
demanda solicita de acordo com a linha do tempo. Esta capacidade de adaptação 
dinâmica altera o uso dos recursos de computação de tal forma que atenda as 
variações de cargas de trabalho, otimizando e explorando todo o potencial que uma 
infraestrutura de computação em nuvem pode oferecer. 
A finalidade da elasticidade num ambiente de computação em nuvem é de 
prover a alocação de recursos sob medida, promovendo o crescimento ou 
diminuição da disponibilidade desses recursos para um determinado serviço, 
evitando gargalos ou desperdícios. O comportamento elástico de um sistema 
depende de como a implantação for realizada. Um ambiente de elasticidade 
adequadamente configurado proporciona um aproveitamento que pode justificar o 
custo, qualidade e desempenho de um serviço alocado. Os requisitos de um serviço 
alocado em nuvem determinarão o que será considerado na construção da 
infraestrutura elástica para atender as necessidades de aumento ou diminuição da 
capacidade de alocação de recursos (VERAS, 2013). 
Para se certificar que um ambiente elástico de computação em nuvem esteja 
correspondente aos requisitos do serviço alocado, é necessária a adoção de 
monitoramento e controle do ambiente computacional para promover os ajustes 
necessários ao atendimento das demandas. Este monitoramento considera como 
está a utilização dos recursos do sistema como por exemplo CPU, memória, 
armazenamento e as variáveis que cada serviço alocado requer deste sistema e 
qual estratégia elástica aplicar para ter o melhor resultado na utilização sob medida 
do sistema (CHEE; CURTIS, 2011). 
Um exemplo de utilização que mostra a capacidade elástica de um sistema é 
a Black Friday, uma das datas mais importantes do varejo junto com outros períodos 
que antecedem e procedem datas comemorativas como Dia das Mães, Dia das 
Crianças, Dia dos Namorados e Natal, entre outros que, torna especialmente 
relevante o desempenho da estrutura elástica e a capacidade de expandir em até 
13 
 
 
 
 
 
vinte vezes a mais que o número regular (VERAS, 2011). Nesta sazonalidade 
observa-se o aumento expressivo de acessos de visitantes às plataformas e-
commerce e, a elasticidade deve comportar este tipo de demanda. Outros tipos de 
serviço também podem ser afetados pelo aumento da quantidade de acessos como 
por exemplo plataformas de redes sociais. 
Um caso que representa esta demanda em rede social é o do falecimento do 
Rei do POP Michael Jackson que de tanto acesso, derrubou o Twitter e até mesmo o 
Google que reconheceu o pico de acesso de usuários como um ataque de haker e 
bloqueou a palavra-chave Rei do POP por um período até normalizarem os acessos. 
O ponto a ser destacado é que a elasticidade visa prover qualquer quantidade de 
acesso com o mesmo desempenho proporcionalmente ao aumento ou retração do 
volume. O escalonamento dos recursos que compõem a elasticidade na computação 
em nuvem, é feito, geralmente de maneira horizontal, onde a capacidade do recurso 
é duplicada, com as mesmas características da máquina virtual de origem (VELTE et 
al, 2011). 
Desta maneira, se permite que os recursos sejam provisionados sem que o 
sistema fique indisponível, da mesma forma os recursos são desalocados 
automaticamente com a diminuição da demanda (CHEE; CURTIS, 2011). Do ponto 
de vista econômico e gerencial, o próprio usuário pode controlar o número máximo 
de máquinas que alocará para a demanda sazonal e administrar o provisionamento 
de recursos financeiros para suportar essa necessidade de aumento de volume com 
base em relatórios de utilização dos recursos alocados para atendimento das 
demandas em razão das variáveis que o negócio determina. Estrategicamente é 
possível medir inclusive os horários com maiores volumes de acessos direcionando 
esforços para a adequada alocação dos recursos dinamicamente. 
 
 
2. CAPÍTULO 2 – ELASTICIDADE EM CLOUD COMPUTING 
 
Nos últimos anos, com o rápido desenvolvimento da tecnologia da informação, 
muitas organizações e empresas têm procurado a melhor maneira de reduzir os 
custos operacionais, assegurar o dimensionamento dos sistemas de TI, fornecer 
14 
 
 
 
 
 
bom desempenho de aplicações, otimizando o uso de recursos de TI. Várias 
tecnologias surgiram ao longo dos anos, tais como, sistemas distribuídos, 
processamento paralelo, grid computing, virtualização e outros que abordam a 
questão do abastecimento eficiente de recursos e implementação do aplicativo. 
Com o crescimento da demanda do mercado e o aparecimento regular de 
novos requisitos de negócios, essas tecnologias são menos eficientes por causa da 
falta de flexibilidade, escalabilidade e custo, por vezes excessivas. Por isso, e para 
atender as exigências do mercado, a "cloud computing" surgiu com base nessas 
tecnologias ao adicionar novasfuncionalidades para o fornecimento de recursos de 
TI (SIMOES; KAMIENSKI, 2014). Assim, as empresas estão adotando cada vez mais 
o novo modelo econômico oferecido pela computação em nuvem. Uma pesquisa 
envolvendo 300 empresas, liderada pelo Fórum da Indústria Nuvem 2012 mostrou 
que 53% das empresas já adotaram a nuvem. A mesma pesquisa mostrou que 73% 
planejam aumentar a adoção de serviços em nuvem nos próximos 12 meses 
(COUTINHO et al, 2018). 
Atualmente, o paradigma de computação em nuvem se tornou imensamente 
popular, não só na indústria, mas também no mundo acadêmico. Empresas, 
indivíduos e pesquisadores poderão alugar recursos de computação com base nas 
necessidades específicas, pagando apenas o consumo real. Clientes de computação 
em nuvem, assim, tornam-se mais diversificados (HABAK et al, 2017). 
Para satisfazer esta ampla gama de clientes, especialmente os clientes sem 
infraestrutura de gestão do conhecimento prévio, os provedores de nuvem 
emergentes oferecem diferentes tipos de serviços. Os serviços em nuvem podem ser 
classificados em três camadas ou modelos. A partir do modelo de "infraestrutura 
como um serviço" (IaaS), provedores de nuvem têm introduzido um outro modelo de 
serviços em nuvem chamado de "plataforma como um serviço" (PaaS), que 
desenvolve diferentes tipos de sistemas e aplicativos diretamente na nuvem. Além 
disso, o modelo de "software como um serviço" (SaaS) tem se mostrado útil para 
diferentes tipos de clientes, especialmente os que não têm experiência em tecnologia 
da informação e quer usar apenas serviços muito específicos. Cada um desses 
modelos de serviço tem vantagens e desvantagens. Por exemplo, a flexibilidade de 
utilização de serviços em nuvem diminui o nível em IaaS e SaaS o conhecimento 
necessário para usar cada modelo de serviço (COUTINHO et al, 2018). 
15 
 
 
 
 
 
Um serviço de IaaS oferece um recurso virtualizado (máquina virtual) que o 
usuário tenha definido, o que poderia ser complicado. Para um usuário de um serviço 
SaaS, simplesmente interagir com uma interface de programação de aplicações 
(API) fornecido a flexibilidade de serviços em nuvem diminui o nível de IaaS para 
SaaS e o conhecimento para usar cada modelo de serviço. 
A computação em nuvem é baseada em uma ideia simples, é proporcionar 
aos utilizadores um conjunto de recursos de TI virtualizados para executar cálculos, 
armazenar dados ou informações de trânsito. Estes recursos estão disponíveis na 
forma de serviços, geralmente através da Internet e, por vezes, através de uma 
intranet ou extranet. Os usuários da nuvem podem solicitar serviços sob demanda, 
de acordo com as necessidades e pagando nem mais nem menos do que 
consomem. Existem várias características que fazem serviço de cloud computing 
modelo de entrega muito popular e atraente para empresas e usuários, tais como: 
modelo econômico baseado no conceito de faturamento "pay-as-you-go" (HABAK et 
al, 2017). 
No entanto, a característica mais atraente para usuários da nuvem é o último 
mencionado, pode distinguir computação paradigma nuvem e outros paradigmas. A 
origem do conceito de elasticidade encontra-se no campo da física, onde um objeto 
ou de um material sólido é chamado elástico se é capaz de recuperar a forma 
original depois de ter sido deformada. Na computação em nuvem, a elasticidade é 
uma qualidade fundamental que requer um controle efetivo sobre o fornecimento de 
recursos de TI, aumentando e diminuindo as taxas de utilização de acordo com 
flutuações na carga de trabalho, para garantir que esses recursos limitados possam 
ser usados de forma ilimitada. 
O princípio da elasticidade é manter uma infraestrutura de nuvem para o 
tamanho necessário, em cada momento, assegurar o fornecimento de recursos 
necessários e suficientes para o bom funcionamento do mesmo sistema de nuvem 
quando aumenta a utilização ou diminuições evitando-se assim, sobre-exploração e 
subutilização dos recursos. Esta é a noção de adaptação dinâmica do consumo 
(SIMOES; KAMIENSKI, 2014). 
Em termos de noção de recursos elasticidade é importante para garantir o 
cumprimento dos acordos de nível de serviço ou "acordos de nível de serviço" (SLA) 
estabelecidos entre utilizadores de serviços e fornecedor. Da perspectiva do usuário, 
16 
 
 
 
 
 
a elasticidade assegura o fornecimento eficiente de recursos que garante a 
manutenção da qualidade de serviço (QoS), sem exceder um determinado 
orçamento. Do ponto de vista do fornecedor, a elasticidade maximiza o ganho 
financeiro, garantindo uma melhor utilização dos recursos de TI e permitindo que 
vários clientes sejam servidos ao mesmo tempo, mantendo satisfeitos. 
A elasticidade é fornecida na nuvem como uma estratégia reativa ou proativa, 
utilizando três métodos: A escala horizontal (elasticidade horizontal), a escala vertical 
(elasticidade vertical) e a migração. O método da escala horizontal é replicar ou 
excluir instâncias virtuais de serviços em nuvem, definir os aumentos de escala 
vertical ou reduzir a quantidade de recursos atribuídos a uma instância de serviço de 
nuvem. Finalmente, o método de migração é por mover ou reimplantar um exemplo 
de um hospedeiro para outro hospedeiro (HABAK et al, 2017). 
O surgimento do paradigma de computação em nuvem tem gerado um novo 
tipo de sistema autonômico, onde a elasticidade é um princípio fundamental design. 
Estes sistemas chamados "nuvem sistemas elásticos" são distribuídos e implantados 
em várias instâncias com diferentes serviços em nuvem (COUTINHO et al, 2018). A 
grande vantagem destes sistemas é a capacidade de evoluir, em termos da 
quantidade de recursos do computador utilizado quando a carga de trabalho é alta, e 
rebaixar o contrário (a carga de trabalho é baixa), quando possível, reduzindo custos 
e mantendo o desempenho e qualidade de serviço. Um sistema elástico em nuvem 
compreende três entidades principais, a front-end, back-end e o controlador elástica 
interagindo uns com os outros através de vários meios. 
Nos últimos anos, os sistemas de nuvem elástica atraíram a atenção nas 
áreas industriais e acadêmicas, e também provedores de serviços de nuvem 
destinadas a atrair novos usuários para aumentar a, adopção, tentando garantir 
continuamente a qualidade do serviço (QoS) a um custo competitivo. Com isso, se 
oferecem soluções para a gestão e planejamento de elasticidade (SIMOES; 
KAMIENSKI, 2014). 
No mundo da indústria, existem várias propostas para gerenciar e planejar a 
elasticidade horizontal e vertical automaticamente em ambientes de nuvem, como 
Rackspace, HPCloud, Amazon EC2, Google AppEngine e Microsoft Azure. Estas 
soluções comerciais existentes no mercado ainda não estão completamente prontas, 
são relativamente novos e têm limitações em termos de controle de rendimento e 
17 
 
 
 
 
 
adaptação dinâmica do consumo de recursos, o que afeta a disponibilidade, 
desempenho e também sobre o faturamento final. Além disso, os mecanismos 
propostos por estas soluções industriais são muitas vezes limitados a especificar os 
serviços em nuvem necessários, independentemente do comportamento elástico. 
 
2.1 OBJETIVOS E CONTRIBUIÇÕES 
 
A elasticidade que monitora o comportamento dos sistemas de nuvem para 
tomar decisões sobre a elasticidade através da adoção de estratégias reativas, 
proativas ou híbridas (combinação de estratégias reativas e proativas). Uma 
abordagem comum dos controladores de elasticidade proposta para gerenciar e 
planejar o fornecimento de recursos de TI em ambientes de nuvem é a utilização de 
um circuito de regulação fechado chamado: MAPE-K (monitorar, analisar, planejar, 
executar), introduzido pela IBM autonômica computação. O primeiro passo do ciclo 
de controle de MAPE-K é recolher controle da informação sobre a utilização e 
desempenho de recursos de computadores destinados a um sistema de nuvem 
utilizando um conjunto de sensores (sondas)(COUTINHO et al, 2018). Então, esta 
informação é analisada para decidir se uma ou mais ações são acionados. O passo 
final é estabelecer um plano de ação e correr através dos atuadores (DAROLT; DE 
SOUZA; KOSLOVSKI, 2016). 
Atualmente, diferentes soluções de elasticidade disponíveis na literatura 
podem ser classificadas em duas categorias. A primeira categoria inclui 
controladores de elasticidade que adotam estratégias reativas, tais como as limiares 
estratégias baseadas. Este tipo de estratégia é muito confiável no caso não há muito 
pico de carga de trabalho potenciais ou mudanças no comportamento inesperado. 
No entanto, se tornam menos eficazes quando a carga de trabalho real ou o 
desempenho do sistema difere dos previstos inicialmente na concepção de sistema 
de nuvem elástica. A segunda categoria de soluções existentes baseia-se em 
controladores de elasticidade usando métodos proativas. 
Estas soluções são muitas vezes baseadas em técnicas de aprendizado de 
máquina ou teoria de controle e geralmente têm base estatística sólida, permitindo 
ser rápido, robusto e ideal. No entanto, essas estratégias são caras e difíceis de 
18 
 
 
 
 
 
implementar em ambientes de nuvem. Além disso, podem causar um 
comportamento indesejado, se não forem devidamente projetados. Ultimamente, 
algumas iniciativas têm tentado combinar os dois tipos de estratégias reativas e 
proativas, podem causar um comportamento indesejável, se não forem devidamente 
projetados (DAROLT; DE SOUZA; KOSLOVSKI, 2016). 
O fornecimento autônomo de um parque enorme de recursos de software e 
hardware nos sistemas de nuvem em termos de elasticidade não é uma tarefa trivial. 
Para ser eficaz, uma boa solução para o planejamento e gestão da elasticidade deve 
fornecer mecanismos para descrever arquiteturas de tais sistemas e o 
comportamento elástico. Esta descrição é usada para identificar e compreender as 
mudanças estruturais e vícios comportamentais no sistema. A descrição deve (1) 
considerar todos os elementos arquitetônicos em um sistema de molas nuvem, (2) 
capturar a complexidade das interações internas em uma arquitetura de nuvem, (3) 
apoiar perpetuamente os recursos de mudanças virtualizadas, armazenamento, 
computação, e é claro que a maturidade do paradigma nuvem está longe de ser 
alcançada. (SIMOES; KAMIENSKI, 2014) 
A definição de uma metodologia para o desenvolvimento do sistema elástico 
nuvem que vai ajudar diferentes tipos de usuários para melhor controlar vários 
aspectos dos sistemas em nuvem, vai ajudar a esconder as limitações de tornar os 
recursos de hardware e software disponíveis. A ideia é ter, no início da fase de 
projeto, um modelo do sistema elástico para se desenvolver. Este modelo deve ser 
baseado em base matemática rigorosa tendo em conta uma semântica 
comportamental para descrever inequivocamente um lado, todos os elementos 
arquitetônicos de tal sistema e comportamento interno, e em segundo lugar os 
aspectos de interação, coordenação e sincronização entre esses elementos. 
É neste contexto que a tese de que tem como objetivo principal desenvolver 
uma abordagem genérica e abrangente que ajuda a reduzir a complexidade de 
modelagem e análise de sistemas elásticos baseados em nuvem e comportamento. 
Estão particularmente interessados na proposta de uma abordagem formal nos 
sistemas biográficos reativos baseados digitado (com ordenação BRS) para modelar 
e verificar os aspectos estruturais e comportamentais desses sistemas. As 
contribuições fornecem soluções para os desafios colocados da seguinte forma: 
19 
 
 
 
 
 
O quadro semântico proposto e formalismo subjacente pode capturar a 
complexidade da arquitetura de um sistema Elastic Cloud. Em seguida, definem três 
gráficos algébricas independentes para modelar as três partes constituintes: a front-
end, back-end e controlador elástico (COUTINHO et al, 2018). 
O uso de gráficos algébricos ajudou a apoiar a mobilidade de recursos 
envolvidos, as relações e dependências componentes intra de um sistema de 
nuvem. Os constrangimentos estruturais e relacionais que possam existir também 
são definidos pela digitação lógica que se tem associado com os vários elementos 
desenhados em gráficos algébricos. 
É dada especial atenção à modelagem do controlador elástico neste tipo de 
sistema. A estrutura é baseada nos sistemas autonômicos laço de controle MAPE-K 
(Monitor, Análise, planejar, executar). A gestão da elasticidade e da evolução dos 
recursos são suportados pela interpretação do gráfico algébrico desta estrutura 
(SIMOES; KAMIENSKI, 2014). 
O modelo proposto para ser vantagem dinâmica, fornece regras de reação 
paramétricas para modelar diversos aspectos comportamentais em sistemas 
elásticos baseados em nuvem. Por um lado, a interação entre o front-end e sistema 
de nuvem back-end são representados por uma primeira categoria de regras de 
reação que governam o comportamento de diferentes tipos de vis-à-vis as aplicações 
e serviços ao cliente nuvem (HABAK et al, 2017). Por outro lado, a hipótese de 
comportamento elástico de sistemas baseados em nuvem também é gerida por uma 
outra categoria regras de reação. Estas regras são classificadas de acordo com os 
diferentes métodos de elasticidade utilizados em ambientes de computação em 
nuvem (horizontal, vertical e de migração) e também de acordo com os quatro níveis 
de nuvem considerados para a implementação do approvision. 
O comportamento complexo de sistemas Elastic Cloud assim definido, é 
modelado através da realização de diferentes regras de reação aprendidas e 
decoradas com atributos da BILOG lógica espacial. O rendimento e estratégias são 
definidas para controlar o fornecimento de recursos da nuvem, evitando assim a 
comportamentos indesejáveis, tais como a instabilidade na atribuição de recursos e 
uma severa degradação da qualidade de serviço, etc. 
20 
 
 
 
 
 
A fim de consolidar os resultados teóricos desta tese, um protótipo chamado 
MoVeElastic (para modelagem e verificação Elastic Cloud Systems) é desenvolvido 
para executar e formalmente verificar modelos formais propostos de acordo com o 
ambiente Maude. Integrando modelos bigraphiques Maude pode desfrutar dos 
benefícios de ambos os formalismos. 
 
2.2 O PARADIGMA DE COMPUTAÇÃO EM NUVEM 
 
Serviços públicos prestados em uma rede, a ilusão de recursos infinitos, foi 
uma ideia muito popular na década de 1960, mas desapareceu em meados dos anos 
1970, tornou-se claro que a tecnologia de hardware, software e redes no momento 
simplesmente não estavam prontos, então é no final dos anos 90 que este conceito 
realmente ganhou destaque pela primeira vez com o surgimento do "Grid 
Computing" (RIGHI, 2013). 
Conforme definido pelo OEPN (Organização Europeia para Pesquisa 
Nuclear), Grid computing é uma capacidade de armazenamento de computação, 
poder de compartilhamento de serviço e de dados através de redes de 
computadores. Este serviço pode ser centralizado ou distribuído em vários clusters 
interconectados em locais diferentes (VERAS, 2013). Grid computing foi 
principalmente para iniciativas científicas de grande escala na computação de alto 
desempenho, porém o uso é bastante complexo para não especialistas. Em seguida, 
levou até a década de 2000 para ver a verdadeira aparência do paradigma de 
computação em nuvem, abordando um público amplo, com Amazon EC2, ou a 
colaboração da IBM e Google IBM 2007. Posteriormente, muitas soluções de nuvem 
open source surgiram, por exemplo, o OpenStack e OpenShift. 
As primeiras tentativas para definir paradigma de computação nuvem a partir 
de 2008 foram naturalmente incompletas. Cada vez mais, a computação em nuvem 
se tornou amplamente adotada e, portanto, definição é mais madura (COUTINHO et 
al, 2018). Atualmente, a definição mais completa e paradigma de nuvem mais 
adotada nos círculos acadêmicos e industriais que se introduziu pelo NIST (NationalInstitute of Standards and Technology, Instituto Nacional de Padrões e Tecnologia). 
O restante deste estudo é dedicado à apresentação desta definição, a partir das 
21 
 
 
 
 
 
cinco características essenciais do modelo de computação em nuvem, três modelos 
de serviço e quatro modelos de implementação (PARKER, 2016). 
Paradigma de computação em nuvem, representa um novo modelo para a 
partilha de recursos de computação, não uma nova tecnologia. É caracterizada pelas 
seguintes cinco características essenciais: 
O paradigma de nuvem é baseado no conceito de autosserviço sob demanda. 
Permitir ao usuário interagir com a nuvem para executar tarefas como a construção, 
implantação, gestão e planejamento. O usuário deve acessar a capacidade de 
computação e recursos de computação (CPU, armazenamento, largura de banda, 
etc.) de acordo com as necessidades, sem a necessidade de intervenção do 
provedor de nuvem. Este conceito de nuvem de autoatendimento oferecendo aos 
usuários um certo nível de autonomia e independência, agilidade. O trabalho é 
permitir tomar as melhores decisões sobre as necessidades atuais e futuras 
(VERAS, 2013). 
Os recursos de TI na nuvem devem ser acessados e gerenciados 
universalmente e rapidamente, utilizando protocolos padrão da Internet (geralmente 
através de serviços web). Isso permite que os usuários acessem, recursos de nuvem 
em todos os tipos de dispositivos e terminais (navegador, smartphone, tablet, etc.), 
desde que tenham uma conexão com a internet. O acesso universal é um elemento 
chave por trás da adoção da nuvem enorme, não só por atores profissionais, mas 
também pelo público em geral que está agora familiarizado com soluções baseadas 
na nuvem, como o armazenamento ou distribuição das nuvens multimídia (RIGHI, 
2013). 
Os recursos de TI são compartilhados entre vários usuários nuvem com vários 
modelos de locação, com atribuição e reafetação dinâmica de recursos físicos e 
virtuais com base na demanda. Este compartilhamento torna a localização exata dos 
dados do usuário, indeterminada. No entanto, é possível saber a localização de 
dados e recursos em um nível de abstração mais elevado (país, estado ou 
datacenter) (SIMOES; KAMIENSKI, 2014). 
Este recurso permite que sistemas baseados em nuvem para alocar ou liberar 
recursos rapidamente e automaticamente de computação para ser capaz de 
responder a um avanço ou um retorno do trabalho. Para o usuário nuvem, recursos 
22 
 
 
 
 
 
muitas vezes parecem ser ilimitados e podem ser adquiridos com qualquer 
quantidade e em qualquer momento (PICONEZ et al, 2017). 
Os sistemas baseados em nuvem devem ser capazes de gerir a permitir a 
otimização do sistema interno. Para isso, dependem de medições de referência 
obtidas através de vários mecanismos de controle. Estas medidas permitem 
faturamento preciso para os usuários. Faturamento é calculado com base na 
duração e a quantidade de recursos utilizados. Uma unidade de processamento 
parada não está sendo carregada. Além disso, não há geralmente um custo para 
comissionamento (PARKER, 2016). 
De acordo com o NIST, os serviços em nuvem podem ser classificados em 
três camadas, de infraestrutura como um serviço (IaaS), plataforma como um serviço 
(PaaS) e software (SaaS). Os serviços de camadas superiores são geralmente 
baseados nas camadas subjacentes, mas também pode ser fornecido como serviços 
de stand-alone. Os usuários da nuvem podem adquirir recursos de vários tipos de 
vários fornecedores. Um usuário pode alugar plataformas de recursos de 
infraestrutura, recursos de software, ou os três tipos simultaneamente (VERAS, 
2013). 
A camada IaaS é o mais baixo nível de abstração na nuvem. IaaS é um 
modelo de serviço que permite aos usuários adquirir nuvem virtualizados recursos de 
computação, tais como capacidade de computação, armazenamento, largura de 
banda e outros tipos de serviços, tais como balanceamento de carga e rede entrega 
de conteúdo (RIGHI, 2013). 
O provedor de IaaS possui e mantém o equipamento enquanto o usuário 
aluga os serviços específicos que necessitam. Geralmente em IaaS, os recursos de 
TI são fornecidos para usuários da nuvem como instâncias de máquinas virtuais que 
podem ser diferentes em termos de sistema em execução operacional, software 
instalado e os recursos alocados (número de coração e frequência da CPU, 
memória, largura de banda e capacidade de armazenamento) (COUTINHO et al, 
2018). O provedor de IaaS também permite aos usuários gerenciar a rede das 
máquinas virtuais (VMs), estabelecendo restrições de acesso ou através da criação 
de redes virtuais. Além disso, os usuários podem criar cópias das instâncias virtuais 
como um meio de backup, ou usar uma cópia de uma instância VM rodando VM para 
criar um modelo que pode ser depois usado para gerar novos corpos clonados. Entre 
23 
 
 
 
 
 
os principais IaaS existentes fornecedores que incluem, Amazon Elastic Compute 
Cloud (EC2), Amazon Web Services (AWS), Microsoft Azure, o Google Compute 
Engine, Rackspace Open Cloud e IBM SmartCloud Enterprise (DAROLT; DE 
SOUZA; KOSLOVSKI, 2016). 
A camada de PaaS é o segundo nível no modelo de nuvem, principalmente 
para desenvolvedores e empresas de desenvolvimento de software. O PaaS oferece 
este tipo de usuários, além de serviço de uso de software remoto, o acesso a uma 
plataforma de desenvolvimento verdadeiro, equipado com uma linguagem de 
programação, ferramentas de desenvolvimento e APIs. Por isso, o usuário tem um 
ambiente de desenvolvimento gerenciado, hospedado, mantido por um fornecedor 
de serviços e com base numa infraestrutura externa. Será, portanto, a oportunidade 
de desenvolver ferramentas específicas para as atividades (HABAK et al, 2017). 
Em geral, o modelo PaaS não irá substituir completamente todos os recursos 
do usuário. Em vez disso, esses recursos serão baseados no modelo PaaS para 
serviços essenciais, como hospedagem e implantação de novos sistemas 
operacionais da aplicação. Em PaaS, o provedor oferece suporte a infraestrutura e 
da nuvem de software subjacente, enquanto os usuários nuvem só precisam fazer 
login para usar a plataforma, geralmente através de um navegador e um console 
web. Exemplos de soluções de PaaS incluí, Amazon Web Services, (Elastic 
Beanstalk e DynamoDB), Force.com, o Google App Engine, Red Hat OpenShift, IBM 
Bluemix (PARKER, 2016). 
A terceira camada SaaS é o mais alto nível de abstração na nuvem. SaaS é 
um modelo de distribuição de serviços web e software em que diferentes tipos de 
aplicativos são hospedados e fornecido por um provedor de serviços e 
disponibilizado aos usuários através da Internet (muitas vezes através de um 
navegador web). Os usuários da nuvem são, então, totalmente gratuitos para o 
desenvolvimento e manutenção. No entanto, o prestador de serviços é responsável 
pela configuração das aplicações subjacentes e gestão de infraestrutura. O modelo 
de entrega SaaS é cada vez mais popular entre os usuários finais, porque não 
requer experiência em tecnologia da informação. Pode-se citar como exemplo de 
SaaS, Gmail para o gerenciamento de e-mail, define quatro modelos de implantação 
para a computação em nuvem (PICONEZ et al, 2017). 
24 
 
 
 
 
 
Neste modelo, os serviços em nuvem são fornecidos e completamente 
realizada por um ambiente de provedor de serviços. Usuários de nuvem pública 
simplesmente podem alugar os recursos de TI necessários são entregues através da 
Internet. No entanto, esses usuários não têm direito à infraestrutura, hardware e 
aplicativos fornecidos na nuvem. O provedor de nuvem torna disponível para os 
usuários de recursos projetados. Gerencia, mantém e faz evoluir com base nas 
necessidades do usuário ao longo do tempo. Atualmente, a nuvem pública é o 
modelo de implantação mais adotado, com os principais provedores de serviços de 
nuvem como Amazon, Microsoft e Google que oferecem serviçoseficientes e 
confiáveis para uma vasta audiência de usuários com baixo custo (VERAS, 2013). 
Uma nuvem privada é uma infraestrutura ou plataforma construída 
especificamente para servir apenas uma empresa. A infraestrutura de nuvem poderia 
ser construída internamente pela mesma empresa ou por um terceiro. Assim, a 
nuvem privada é de propriedade da empresa utilizadora, onde é forçada a construir, 
manter e gerir todos os componentes, que podem ser tanto complicados e caros. As 
nuvens privadas são diferentes nuvens públicas porque o pool de recursos que estão 
associados (redes, servidores e infraestrutura de armazenamento) é dedicado a uma 
empresa e não é acessível a partir de fora da empresa. Este alto grau de controle e 
transparência permite que o proprietário de uma nuvem privada facilmente cumprir 
com as normas (COUTINHO et al, 2018). 
A nuvem comunidade é um modelo de implantação que pode ser usado por 
várias empresas ou organizações com necessidades comuns. Uma nuvem 
comunidade compartilhada entre várias empresas é construído, gerenciados e 
garantidos por todos os participantes ou a terceiros (prestador de serviços). Estes 
requisitos participantes e interesses semelhantes, reúnem os recursos humanos e 
financeiros para atingir os objetivos comuns. A infraestrutura comum é projetada 
especificamente para atender às demandas da comunidade. Por exemplo, as 
agências governamentais, hotéis, hospitais e empresas de telecomunicações têm 
limitações de rede, segurança, armazenamento (DAROLT; DE SOUZA; 
KOSLOVSKI, 2016). 
A nuvem híbrida como o nome sugere é a combinação e federação de dois ou 
mais tipos diferentes de nuvens (público, privado e comunitário). Empresas podem 
exigir recursos adicionais durante períodos de pico. Neste caso, podem solicitar 
25 
 
 
 
 
 
recursos adicionais de provedores de nuvem pública. Com uma nuvem híbrida, uma 
empresa pode tirar vantagem da simplicidade e baixo custo de uma nuvem pública 
para hospedar serviços tradicionais que não necessitam de cuidados especiais ao 
criar a própria nuvem privada para aplicações altamente integrados com os sistemas 
existentes ou para o armazenamento de dados sensíveis (PARKER, 2016). Também 
tem a capacidade de priorizar o uso de nuvem privada, mantendo a capacidade de 
derramar sobre uma oferta de nuvem pública para a necessidade temporária. Em 
uma nuvem híbrida, nuvens públicas privadas ou comunitárias são entidades 
independentes, interligadas por uma tecnologia padronizada ou proprietário, 
permitindo a portabilidade de dados e aplicações (VERAS, 2013). 
O NIST define cinco grandes jogadores no paradigma de computação em 
nuvem: a nuvem o consumidor, o provedor de nuvem, a nuvem auditor, corretor 
nuvem e nuvem transportadora. Cada jogador representa uma entidade (pessoa ou 
organização) participando de uma transação ou processo e executa tarefas na 
nuvem (PICONEZ et al, 2017). Com isso, observa-se: 
1. Nuvem consumidor (client cloud). Uma pessoa ou organização que 
mantém uma relação comercial com o provedor de nuvem. Provedor de 
nuvem (provedor de nuvem). Uma pessoa, organização ou entidade 
responsável por colocar os serviços em nuvem disponíveis para um 
conjunto de consumidores. 
2. Nuvem Auditor (auditor nuvem). Uma parte pode fazer uma avaliação 
dos serviços em nuvem em termos de desempenho e segurança dos 
serviços, mantendo-se independente. 
3. Nuvem Broker (corretor de cloud). Uma entidade que gerencia o uso, 
desempenho e entrega de serviços em nuvem, enquanto negociando 
relacionamentos entre provedores e consumidores. 
4. Nuvem transportadora (transportador de nuvem). Um intermediário que 
fornece conectividade e carrega o provedor de serviço de nuvem para o 
consumidor. 
5. Nuvem paradigma de computação combina um grande número de 
conceitos de TI e tecnologias como virtualização, as empresas 
processos orquestração, arquiteturas orientadas a serviços (SOA), com 
26 
 
 
 
 
 
base de serviços, Web 2.0 e outras tecnologias baseadas na Internet. 
O objetivo desta seção é introduzir algumas dessas tecnologias e 
conceitos relacionados (COUTINHO et al, 2018). 
A Virtualização era uma tecnologia fundamental para a evolução do 
paradigma de computação em nuvem na forma atual. A Virtualização de hardware 
habilitado, provedores de nuvem podem ser utilizados eficazmente os recursos 
materiais disponíveis para fornecer serviços de computação e armazenamento para 
os usuários. Em particular, a virtualização é um método de implantação de 
computação e recursos para separar as camadas de software mais elevados das 
camadas de software mais baixas ou hardware. O conceito de virtualização 
inicialmente surgiu na década de 1960. E então formalizada em meados dos anos 
1970 (VERAS, 2013). Nos últimos anos, a virtualização é cada vez mais utilizada na 
computação em nuvem por causa dos benefícios que traz em termos de gestão 
otimizada dos recursos de TI e economizar em hardware reunido. A infraestrutura 
virtual reduz custos de TI e aumenta a eficiência, utilização e flexibilidade dos 
recursos existentes (HABAK et al, 2017). 
Na computação em nuvem, os recursos de TI virtualizados são chamados de 
máquinas virtuais (VMs). A VM é isolada completamente do recipiente software que 
pode rodar os próprios sistemas operacionais e aplicativos como uma máquina 
física. Assim, uma máquina virtual se comporta exatamente como uma máquina 
física. Inclui um processador, uma memória, um disco rígido e uma placa de interface 
de rede virtual. VMs são criados e gerenciados por uma camada de software 
chamada de hypervisor. O hipervisor atua como um mediador entre o hardware 
(físico) e a parte do software (lógico) para operar simultaneamente vários sistemas 
operacionais em uma máquina física. Estes hypervisors podem usar várias técnicas 
de virtualização (PARKER, 2016). 
Nesta técnica de virtualização, o sistema operacional hospedeiro ou hipervisor 
emula totalmente o hardware físico que se torna visível para sistemas operacionais 
convidados. O software de emulação (software de virtualização) cria uma camada 
que atenua as diferenças em arquiteturas de hardware e permite executar a mesma 
VM em diferentes hospedeiros com diferentes arquiteturas. Isto dá uma grande 
flexibilidade e flexibilidade para migrar facilmente VMs a partir de um hospedeiro 
para outro. No entanto, está emulação é particularmente cara, resultando numa 
27 
 
 
 
 
 
degradação do desempenho forte. VMware Workstation e hipervisors VirtualBox são 
exemplos da utilização desta técnica. 
Esta é a instalação de uma camada de virtualização no topo do sistema 
operacional hospedeiro. O sistema operacional hospedeiro é responsável pela 
gestão do equipamento. Os sistemas operacionais convidados são instalados e 
executados no topo da camada de virtualização de aplicações dedicadas devem ser 
executadas em máquinas virtuais. Esta abordagem de virtualização anfitrião tem 
algumas vantagens. Por exemplo, o usuário pode usar esta técnica sem fazer 
quaisquer alterações no sistema operacional hospedeiro. O software de virtualização 
depende do sistema operacional hospedeiro para fornecer drivers de dispositivo e 
outros serviços de baixo nível. Embora esta abordagem é flexível (DAROLT; DE 
SOUZA; KOSLOVSKI, 2016). 
Esta é uma técnica de virtualização de instalação de uma camada de 
virtualização diretamente no hardware. Para VM virtualizadas proporciona APIs 
específicas que requerem modificações significativas realizadas pelo sistema de 
operação em aplicações de utilizador, degradação do desempenho é um grande 
problema em sistemas virtualizados (VERAS, 2013). Ao contrário de outras técnicas 
de virtualização, para-virtualização tentativas para reduzir a sobrecarga de 
virtualização e, portanto, melhora o desempenho, modificando-se apenas o núcleo 
do sistema operativo, o que faz com que seja relativamente fácil e mais cômoda. Háum grande número de ferramentas e produtos de virtualização que utilizam esta 
técnica para virtualização, por exemplo, Xen, KVM e VMware ESX. (COUTINHO et 
al, 2018) 
Os sistemas de computação em nuvem fornecem um conjunto completo de 
modelos de serviço para o pedido, o que poderia ser feito dentro do sistema de 
nuvem. Portanto, esses sistemas em nuvem devem ser capazes de orquestrar 
automaticamente os serviços de diferentes fontes e de diferentes tipos para formar 
um fluxo de serviço ou um fluxo de trabalho transparente e dinâmico para os 
usuários. A orquestração na nuvem é um tipo de programa que gerencia 
interconexões e interações entre as entidades de um dado sistema de nuvem 
(PARKER, 2016). 
A orquestração é utilizada para organizar os vários componentes de modo que 
conduzem a um resultado desejado. No contexto de computadores, a orquestração é 
28 
 
 
 
 
 
combinada a tarefas em fluxos de trabalho para automatizar o provisionamento e 
gerenciamento dos diversos componentes e recursos de TI. A orquestração é 
ambiente de computação em nuvem mais complexas porque envolve interações 
gerenciamento entre os processos em execução em diferentes sistemas 
heterogêneos e distribuídos em diferentes locais (SIMOES; KAMIENSKI, 2014). 
A orquestração dos produtos de sistemas baseados em nuvem simplifica a 
comunicação entre os componentes, e as ligações para outras aplicações ou 
utilizadores. Estes produtos geralmente incluem um portal web para o gerenciamento 
de orquestrar um só lugar (HABAK et al, 2017). Ao avaliar produtos de orquestração 
de um administrador de sistema em nuvem primeiro analisar fluxos de trabalho das 
aplicações em causa. Esta etapa irá permitir que o administrador para visualizar e 
determinar a complexidade do fluxo de trabalho interno de uma aplicação e como a 
informação viaja frequentemente fora de todos os componentes desta aplicação 
(PICONEZ et al, 2017). Isso vai ajudar o administrador para decidir que tipo de 
orquestração produz o mais rentável, mais eficaz, e que melhor atenda aos 
requisitos operacionais do sistema de nuvem. 
 
2.3 ARQUITETURA ORIENTADA A SERVIÇOS (SOA) 
 
A arquitetura orientada a serviços, ou SOA (Arquitetura Orientada a Serviços) 
é um modelo de arquitetura para desenvolvimento de software através do uso de um 
conjunto de serviços atômicos. O principal objetivo deste modelo de arquitetura é 
para atender os requisitos de interoperabilidade e escalabilidade de TI distribuídas, 
de baixo acoplamento e com base em padrões diferentes. Há muitas definições para 
arquiteturas orientadas a serviços; IBM Global Services define SOA como uma 
abordagem lógica para design de software, para fornecer aplicações em termos de 
serviços autônomos e distintos. Esses serviços podem ser usados 
independentemente dos componentes de software que são plataformas de peças e 
de computação no qual são executados (VERAS, 2013). 
Os serviços são os principais blocos de construção em arquiteturas orientadas 
a serviços. São componentes de software autônomos que podem ser consideradas 
como funções executadas localmente ou remotamente e de forma independente da 
29 
 
 
 
 
 
linguagem de programação ou plataforma de execução. Assim, aplicações em uma 
arquitetura orientada a serviços são definidos como uma composição de serviços 
web reutilizáveis, implementar a lógica de negócios do domínio da aplicação de 
serviços Web são baseados em padrões diferentes com base em XML (Extensible 
Markup Language) que permitem que funcionem corretamente (COUTINHO et al, 
2018): 
São (Access Protocol Simple Object), Objeto Simples do Protocolo de Acesso 
é um protocolo de comunicação leve para a troca de informações como uma 
mensagem XML. 
O WSDL (Web Services Description Language) é uma linguagem de descrição 
baseada em XML e padronizada pelo W3C (World Wide Web Consortium). O WSDL 
é usado para descrever em detalhe os detalhes do serviço web, tais como 
protocolos, portos utilizados, as operações que podem ser realizadas, os formatos 
das mensagens e exceções de entrada e saída que podem ser enviados (DAROLT; 
DE SOUZA; KOSLOVSKI, 2016). 
O UDDI (Universal Description Discovery Integration), é um diretório 
distribuído para serviços web SEO, permitindo tanta publicação e exploração. O 
UDDI se comporta-se como um serviço web cujos métodos são chamados através 
do protocolo SOAP. O UDDI é um registro aberto a todos e padronizado pela OASIS 
(Organização para o Avanço de Padrões de Informação Estruturada) 
(MARCHISOTTI; JOIA; CARVALHO, 2019). 
O BPEL (Business Process Execution Language) é uma linguagem baseada 
em XML para serviços da Web em uma arquitetura orientada a serviços para 
interconectar e compartilhar dados. O BPEL é usado por programadores para definir 
como um processo de negócio que envolve os serviços da Web será executado por 
mensagens BPEL são normalmente utilizados para invocar serviços remotos, 
orquestrar a execução de processos de negócios e gerenciar eventos e exceções. 
O estilo arquitetônico SOA está estruturada em torno de três atores 
fundamentais descritos: fornecedor, cliente e diretório de serviços, bem como as 
interações entre esses atores, ou seja, as operações de publicação, pesquisa e 
invocação e link serviço (PARKER, 2016). 
30 
 
 
 
 
 
O prestador de serviços é o proprietário do serviço fornecendo uma plataforma 
host para esta compilação de carga anfitrião e, publicar a descrição de um serviço a 
partir de um diretório (por exemplo, UDDI) para colocar à disposição dos clientes. O 
cliente ou a entidade servida que representa o software de investigação e invoca um 
serviço web. A aplicação para cliente pode ser em si um serviço web. O diretório é 
um registro e descrição do serviço. Representa a entidade que reúne informações 
sobre serviços web disponíveis e como acessar (VERAS, 2013). 
A arquitetura orientada a serviços (SOA) e computação em nuvem são 
considerados de forma independente. No entanto, são tecnologias complementares 
e podem ser muito úteis para o outro. Cada vez mais, assumem papéis importantes 
em grandes organizações e empresas que os utilizam para aumentar a eficiência 
operacional das aplicações. Geralmente, várias organizações encontram dificuldades 
no uso da computação em nuvem porque os aplicativos na nuvem não têm uma 
base de arquitetura sólida (SIMOES; KAMIENSKI, 2014). A SOA é considerada 
neste caso como um pré-requisito para aplicativos implementados na nuvem. 
 
2.4 SERVIÇO DE PROCESSOS DE NEGÓCIOS 
 
Um processo de negócio é um conjunto de um ou mais processos ou 
atividades que realizam em conjunto um objetivo de negócios ou política, geralmente 
como parte de uma estrutura organizacional que define papéis funcionais e 
relacionamentos. Um processo pode ser contido inteiramente dentro de uma única 
unidade organizacional ou pode abranger várias organizações, tais como a relação 
de fornecedor-cliente (DAROLT; DE SOUZA; KOSLOVSKI, 2016). 
A processos de negócios baseados em serviços (PAS) é um processo de 
negócio que é agrupar um conjunto de serviços web básicos que estão relacionados 
em termos da contribuição para a realização global do processo de negócio. Um 
serviço em um processo de negócio é geralmente a menor unidade de trabalho, é 
um módulo que oferece computação de dados e capacidades. Os serviços de 
executar as diversas atividades da PAS considerados. Os serviços de montagem de 
PAS pode ser fornecido utilizando uma variedade de especificações e modelos 
composição de serviços (por exemplo, BPEL). 
31 
 
 
 
 
 
Os processos de negócios baseados em serviços podem ser projetados 
usando uma variedade de linguagens como linguagens formais, linguagens de 
design e linguagens de execução de linguagens formais tais cadeias de Markov e 
redes de Petri são baseados em modelos teóricos e geralmente são fornecidos com 
uma semântica precisa e inequívoca. Usadopara verificar a precisão e desempenho 
através de técnicas e análise formal (modelo de verificação, simulação, etc.). No 
entanto, as línguas conceituais tais como UML (Unified Modeling Language) e BPMN 
(Business Process Modelo e Notation) são geralmente informais (COUTINHO et al, 
2018). Estas línguas não têm semântica bem definida e não permite análise. 
Os ambientes de nuvem são cada vez mais adotado por diferentes empresas 
que utilizam infraestrutura de nuvem e uma plataforma para implantar, hospedar e 
executar os serviços, especialmente em termos de processos de empresas de 
serviços baseados (PAS). 
 
2.5 WEB 2.0 
 
O termo Web 2.0 é usado frequentemente para a segunda fase da World Wide 
Web, a partir de uma coleção de sites para uma plataforma de computação no 
próprio direito, fornecendo aplicações web para os utilizadores. Os usuários finais 
terão acesso fácil aos dados a partir de qualquer computador, a qualquer hora 
(HABAK et al, 2017). O termo Web 2.0 foi introduzido por Tim O'Reilly e Dale 
Dougherty em outubro de 2004 em uma sessão de conferência de brainstorming 
entre O'Reilly Media e empresas MediaLive internacionais para citar a evolução do 
world wide web. Na verdade, a Web 2.0 oferece uma colaboração entre os 
utilizadores da Internet, provedores de conteúdo e empresas. 
 
 
 
 
 
32 
 
 
 
 
 
3. CAPÍTULO 3 – GERENCIAMENTO AUTÔNOMO DE ELASTICIDADE NA 
NUVEM 
 
Com a evolução dos computadores e da emergência de novos sistemas de 
grande escala, complexos e distribuídos, a intervenção humana está se tornando 
mais difícil e muito lento para reagir a conta para certas situações relacionadas ao 
contexto de mudança execução, tais como falha de rede, hardware e software ou a 
variação brusca da carga de trabalho (COUTINHO; GOMES; DE SOUZA, 2014). 
Em um ambiente altamente dinâmico como a nuvem, é imperativo contar com 
uma gestão automática e dinâmica de recursos do computador para garantir uma 
boa qualidade de serviço (QoS), garantir um bom desempenho e satisfazer as 
necessidades dos clientes com base em acordos de nível de serviço (SLAs). Para 
atender a esses requisitos, a computação autônoma é usada na computação em 
nuvem para gerenciar e planejar o consumo de recursos em termos de elasticidade. 
A gestão autonômica na nuvem é a capacidade de controlar automaticamente e 
dinamicamente o fornecimento de recursos de TI de acordo com as flutuações na 
carga de trabalho (ALBONICO; MOTTU; SUNYÉ, 2016). 
Este estudo tem como objetivo proporcionar ao leitor uma visão tanto contexto 
clara e concisa da tese sobre a modelagem e análise de sistemas baseados em 
nuvem e o comportamento em termos de elasticidade. Para que, neste estudo 
começar descrevendo numa primeira secção autonômica computação e controle 
autonômico do circuito MAPE-K como um modelo para a gestão de elasticidade na 
nuvem. Na segunda seção, este estudo discute o princípio da elasticidade, definição 
e a elasticidade quádrupla: Estratégia de nível, propósito e método. A terceira seção 
apresenta uma visão geral das soluções acadêmicas que oferecem abordagens para 
a gestão autônoma de elasticidade na nuvem. Finalmente, numa quarta secção, o 
Autonomic Computing foi inicialmente introduzido em 2001 por Paul Horn, durante 
um discurso na Universidade de Harvard. Esta ideia foi materializada mais tarde em 
um manifesto publicado para marcar o início da abordagem. Um sistema autônomo é 
definido como um sistema que se administra, sem a necessidade de intervenção 
humana para garantir os melhores objetivos do usuário possíveis. Esses sistemas 
devem antecipar as necessidades para permitir que os usuários se concentrem no 
que querem realizar em vez de gastar o tempo para supervisionar o comportamento 
33 
 
 
 
 
 
dos sistemas (HABAK et al, 2017). A principal ideia dos sistemas autonômicos é 
inspirada no funcionamento do sistema nervoso humano que podem observar e 
adaptar o corpo ao meio ambiente, permitindo ficar em bom estado (COUTINHO et 
al, 2018). Por exemplo, o sistema nervoso controla a temperatura do corpo, o ritmo 
cardíaco, o nível de açúcar no sangue, e outras funções vitais. Nesta seção, 
introduziu-se a retalhista computação e propriedades autonômicas e malha de 
controle autônomo (SIMOES; KAMIENSKI, 2014). 
A computação autônoma é uma tentativa iniciada em 2001 pela IBM para 
superar a complexidade dos sistemas de computador nos dias de hoje e as do 
futuro, dando recursos de autogerenciamento (COUTINHO; GOMES; DE SOUZA, 
2014). 
Os sistemas autônomos são autogeridos com oito características ou sistemas 
principais: autoconfiguração, autocura, auto otimização, autoproteção, 
autoconsciência, consciência do contexto, a abertura e auto adaptação. Os quatro 
primeiros itens são considerados principais características destes sistemas, 
enquanto os outros quatro elementos são características complementares. 
 
3.1 CONFIGURAÇÃO AUTOMÁTICA (AUTOCONFIGURAÇÃO) 
 
A autoconfiguração refere-se à capacidade de um elemento independente a 
ser inteiramente integrado num sistema de acordo com a natureza e condição dos 
objetivos do sistema ou do utilizador. Esta propriedade permite que um sistema de 
computador para reconfigurar dado e obter, a qualquer único dia em função de 
objetivos de alto nível pré-definidos por seres humanos (DAROLT; DE SOUZA; 
KOSLOVSKI, 2016). 
O administrador do sistema só deve especificar a saída desejada e o sistema 
seria adaptado automaticamente, permitindo que funcione adequadamente para 
cumprir os objetivos originais (ALBONICO; MOTTU; SUNYÉ, 2016). 
Esta é uma propriedade que representa a capacidade de um sistema de 
computador para detectar, diagnosticar e reparar ou compensar as falhas em um 
sistema. Os tipos de problemas que são detectados podem ser interpretados num 
34 
 
 
 
 
 
sentido lato: podem ser erros de nível inferior (falhas de hardware) ou erros de nível 
alto (problemas de software). Assim, os sistemas autonômicos podem diagnosticar 
estes problemas que ocorrem durante a operação e fazer reparos sem qualquer 
possível perturbação. Um sistema é, então, a "autocura" ou a falha de reagentes 
quando é capaz de manter os negócios em uma condição estável por exceder 
eventos problemáticos devido ao fracasso dos elementos (MARCHISOTTI; JOIA; 
CARVALHO, 2019). 
A Autotuning é a capacidade de olhar continuamente maneiras de maximizar a 
eficiência ou em relação ao desempenho ou custo. Por exemplo, a otimização dos 
recursos de TI taxas de utilização. As operações de otimização podem ser sensíveis 
ao estado do sistema ou o ambiente, mas também pode ser iniciada de forma 
proativa. Assim, esta propriedade permite aos sistemas autonômicos adaptar 
otimamente configurado para impedir que as condições indesejáveis, tais como 
sobrecarga ou sub carga. A otimização é feita de acordo com os critérios geralmente 
definidos pelos usuários do sistema (COUTINHO et al, 2018). 
Um sistema autônomo pode proteger contra-ataques e ações que podem 
desestabilizar e tornar inativo maliciosos. Esta propriedade evita adulteração, permite 
ao sistema garantir a segurança, confidencialidade e proteção de dados. Além disso, 
a autoproteção é permitir que os sistemas de computação autônoma antecipem os 
vários ataques e todos os tipos de ameaças de segurança, a tomar precauções e 
reações apropriadas (DAROLT; DE SOUZA; KOSLOVSKI, 2016). 
É a capacidade de um sistema autônomo de saber o ambiente e as 
capacidades finais ou ser capaz de identificar ou calcular. Neste caso, para ser 
capaz de gerir adequadamente, o sistema deve saber os componentes e os estados, 
as capacidades atuais e as ligações com outros sistemas. Além disso, deve saber 
que recursos são de propriedade, e os proprietários de outros recursos que podem 
ser emprestados ou emprestar e, finalmente, quais são os recursos que podem ser 
compartilhados (ALBONICO; MOTTU; SUNYÉ, 2016). 
Caracterizaa capacidade de um sistema autônomo de perceber e utilizar as 
diversas informações contextuais, tais como a localização, tempo, temperatura, ou a 
identidade do utilizador para se adaptar dinamicamente a funcionalidade de acordo 
com as necessidades pré-definidas. Esta propriedade permite que um sistema 
autônomo para descrever o estado e o estado dos recursos para interagir com outros 
35 
 
 
 
 
 
sistemas. Também permite que descubra automaticamente o estado dos recursos 
disponíveis no meio ambiente ou o contexto atual (PARKER, 2016). 
Em adição às propriedades anteriormente mencionadas, os sistemas 
autônomos deve implementar padrões abertos para ser adequadamente integrados 
em ambientes heterogêneos (abertura). Além disso, devem antecipar as 
necessidades, mantendo ocultos dos usuários a complexidade (Auto adaptação). Por 
exemplo, um servidor de aplicação autônoma pode comparar o acesso em tempo 
real aos dados com os dados previamente salvos em uma história de antecipar 
degradações de desempenho e fazer os ajustes necessários (COUTINHO; GOMES; 
DE SOUZA, 2014). 
 
3.2 CIRCUITO FECHADO DE CONTROLE AUTONÔMICO 
 
Os sistemas autonômicos são geralmente baseados em um gestor 
autonômico que controla as diferentes transições no sistema, e o comportamento 
interno destes elementos. O gestor autonômico consiste de um circuito fechado de 
controle inteligente e fechado. Nesta subseção, discutir a malha de controle 
autonômico MAPE-K arquivado pela IBM. Os detalhes, as quatro principais funções 
do circuito, a partilha de uma base de conhecimento, que são: observação, análise, 
planejamento e implementação (RIGHI, 2013). 
A observação no circuito de controlo MAPE-K proporciona mecanismos de 
captura de dados e informação a partir do ambiente (físico ou virtual) sobre as 
propriedades do sistema de gestão autonômicos. Estes dados do elemento 
administrado através dos sensores (sondas) são agregados, correlacionados e 
filtrados para determinar o sintoma a ser analisado. A informação processada pode 
ser transmitida análise de componentes cobrado periodicamente ou o observador o 
componente de monitoração necessário. No segundo caso, a informação recolhida 
deve ser analisada profundamente (COUTINHO; GOMES; DE SOUZA, 2014). 
Raciocinar sobre observações de dados complexos dos sensores com base 
em políticas e estratégias de gestão de alto nível. O componente de análise compara 
esta informação com as políticas globais de gestão do sistema definidos pelo 
administrador. Esta comparação fornece indicadores quantitativos e qualitativos 
36 
 
 
 
 
 
sobre o estado do sistema, para gerar solicitações de mudança enviados para o 
componente de planeamento (ALBONICO; MOTTU; SUNYÉ, 2016). 
Envolve a consideração de sensores de dados de vigilância para a produção 
de planos de ação que definem como as alterações necessárias serão 
implementadas. Essas mudanças dependem das decisões tomadas pelo 
componente responsável pela análise. Além disso, as alterações no elemento de 
dado podem ser planejadas de forma e tempo. Isto é conseguido através da 
definição de um conjunto de limitações de tempo atrasando as alterações ou o 
estabelecimento uma ordem ou prioridade de execução para considerar 
(MARCHISOTTI; JOIA; CARVALHO, 2019). 
Assegura-se a implementação das emendas do plano recomendado pelo 
componente dedicado. Isso é feito por meio da execução das ações necessárias por 
parte administrada através dos próprios atuadores. Se uma dada alteração afete 
vários elementos administrado, as ações podem ser distribuídas por várias máquinas 
(DAROLT; DE SOUZA; KOSLOVSKI, 2016). Representa-se as informações e dados 
de várias fontes, partilhada entre as diversas tarefas do ciclo MAPE-K. Estes 
conhecimentos compartilhados podem ser explorados e constantemente atualizados 
por qualquer uma dessas quatro tarefas. 
 
3.3 ELASTICIDADE NA NUVEM 
 
A principal característica de sistemas elásticos na nuvem com base é a 
capacidade de se adaptar aos autônomos e em tempo real de acordo com as 
mudanças nas condições de funcionamento (por exemplo, aumento do número de 
pedidos recebidos no sistema) (SIMOES; KAMIENSKI, 2014). Esta qualidade deste 
tipo de sistema é a propriedade de elasticidade. Representa a principal característica 
que distingue paradigma de computação em nuvem de outros paradigmas (RIGHI, 
2013). Devido a esta propriedade, sistemas baseados em nuvem elástica é capaz de 
ajustar dinamicamente a alocação de recursos para garantir a qualidade de serviço 
(QoS) adequada pré-definido nos Acordos de Nível de Serviço (SLA) de acordo com 
as flutuações da carga trabalho, minimizando os custos operacionais. Em outras 
palavras. 
37 
 
 
 
 
 
A elasticidade é frequentemente associada com escalabilidade ou 
"escalabilidade" de um sistema de nuvem. Mas, na realidade estes dois conceitos 
são diferentes e nunca deve ser usado para expressar a mesma coisa. A 
Escalabilidade de um sistema em nuvem é a capacidade de adicionar recursos de TI 
para lidar com o crescimento da carga de trabalho. Na literatura existem várias 
definições de elasticidade na nuvem (ALBONICO; MOTTU; SUNYÉ, 2016). A 
definição mais adotada atualmente nos círculos de pesquisa é dada tal como segue: 
Definição de elasticidade é o grau em que um sistema é capaz de se adaptar 
a cargas de trabalho de provisionamento e forma autonômica de recursos de modo 
que os recursos fornecidos são consistentes com a aplicação do sistema 
(COUTINHO; GOMES; DE SOUZA, 2014). 
De acordo com a classificação. A elasticidade é caracterizada pelo quádruplo: 
(estratégia, nível, método e objetivo). O nível especifica o alvo de elasticidade, ou 
seja, o nível de infraestrutura, plataforma, aplicação e equilíbrio de carga. A 
estratégia é a implementação da elasticidade da política, pode ser proativa, reativa 
ou híbrida. O objetivo é o propósito por trás de redimensionamento. Por exemplo, 
melhorando o desempenho de um sistema de nuvem. Finalmente, o método utilizado 
na implementação da elasticidade nomeadamente horizontal (escala horizontal), a 
elasticidade vertical (escala vertical) e a migração. O restante desta seção é 
dedicado a uma apresentação detalhada do quádruplo (nível, estratégia, alvo, 
método) (PARKER, 2016). 
Este nível representa a gama de ação de elasticidade. Este âmbito é definido 
pela natureza do recurso ou por camadas de um sistema de nuvem. Infraestrutura, 
plataforma de aplicativos e até mesmo nível de distribuição de carga. Primeiramente, 
a elasticidade é fornecida pelo IaaS (infraestrutura como um serviço), onde os 
recursos provisionados são principalmente instâncias de máquinas virtuais. No 
entanto, outros serviços de infraestrutura também podem ser redimensionados ou 
replicadas, como largura de banda e capacidade de armazenamento. No PaaS 
(plataforma como um serviço), a elasticidade é o redimensionamento ou recipientes 
de replicação ou bases de dados. Além disso, a elasticidade é implementada nas 
SaaS nível (software-as-a-service), onde os recursos adicionais podem ser 
concedidos a aplicações ou serviços web (DAROLT; DE SOUZA; KOSLOVSKI, 
2016). 
38 
 
 
 
 
 
As estratégias são condições elásticas que representam as interações 
necessárias para a execução de ações de elasticidade. Na computação em nuvem, a 
elasticidade é implementada por três tipos de estratégia: proativa, reativo e híbrido 
(proativas e recativas). Estratégias proativas usar técnicas heurísticas, matemáticas 
e analíticas para antecipar flutuações na carga de trabalho e mudanças de 
comportamento em sistemas elásticos nuvem com base e também para decidir 
quando e como colocar o sistema em escala, estratégias reativas são baseadas no 
mecanismo de regra de condição de ação (RIGHI, 2013). 
Uma regra é composta por um conjunto de condições que desencadeiam a 
ação elástica quando cheio, a fim de tomar as medidas necessárias paraaumentar 
ou reduzir a quantidade de recursos alocados. Cada condição leva em consideração 
um sistema de evento ou métrica e compara com informações obtidas a partir de um 
serviço de monitoramento. Finalmente, uma estratégia híbrida é uma combinação de 
uma estratégia de proativa e uma estratégia reativa (COUTINHO; GOMES; DE 
SOUZA, 2014). 
Nos sistemas baseados em nuvem, a elasticidade é usada por várias razões e 
para alcançar vários objetivos. Do ponto de vista de um fornecedor, elasticidade 
garante uma melhor utilização dos recursos de TI que oferece economias de escala 
e permite servir vários usuários simultaneamente. Do ponto de vista do utilizador, a 
elasticidade é utilizada principalmente para evitar a falta de recursos e, por 
conseguinte, a degradação do desempenho do sistema. Além disso, a elasticidade 
pode ser utilizada para assegurar a eficiência de energia, onde o uso da quantidade 
mínima de recursos para atingir este objetivo (ALBONICO; MOTTU; SUNYÉ, 2016). 
A elasticidade na nuvem pode ser fornecida por meio de três métodos. A 
elasticidade horizontal envolve a replicação (aumento de escala) ou deleção (escala 
para baixo) instâncias de máquinas virtuais (VMs), recipientes, aplicações de 
serviços da Web e balanceamento de carga de acordo com as mudanças na carga 
de trabalho. A escala horizontal é o método mais utilizado atualmente para fornecer 
elasticidade em ambientes de costura da computação. A elasticidade vertical, 
também chamada "redimensionamento ou fazendo a escala vertical" altera a 
capacidade global dos recursos atribuídos a um exemplo (contentor VM, aplicação 
de carga balanceador) adição (escala acima) ou removendo (escala para baixo) de 
recursos como CPU, memória, largura de banda de disco. 
39 
 
 
 
 
 
A elasticidade vertical é o método mais simples. No entanto, é menos popular 
do que a elasticidade horizontal do fato de que é menos eficiente e mais restritiva. 
Finalmente, o método de migração de transferência de uma máquina virtual, um 
recipiente ou uma aplicação a ser executada a partir de um hospedeiro para outro 
sobrecarregado menos carregado. A migração é geralmente utilizada na nuvem para 
outros objetivos, tais como a tolerância a falhas e isolamento. No entanto, algumas 
soluções da nuvem não elásticas utilizar este método para simular o comportamento 
obtido pela escala vertical (DAROLT; DE SOUZA; KOSLOVSKI, 2016). 
Por exemplo, ao mover uma máquina virtual de um servidor responsável por 
outro menos carregado, para gerir um aumento na carga de trabalho, o método de 
migração de transferência de uma máquina virtual, um recipiente ou uma aplicação 
de execução de um hospedeiro para outro sobrecarregado menos carregado. 
 
3.4 SISTEMA AUTONÔMICO, ELASTICIDADE MANAGEMENT SOLUTIONS 
 
Nos últimos anos, um maior esforço tem sido dirigido para a gestão autônoma 
de recursos de TI na nuvem em termos de elasticidade. Várias contribuições 
relativas à gestão e planejamento de elasticidade horizontal e vertical em diferentes 
níveis, proporcionando elasticidade dos controladores autônomos com base em 
diferentes estratégias, proativas ou reativa, esta seção algumas soluções 
acadêmicas para garantir elasticidade em ambientes de computação em nuvem. 
Os autores propuseram um gerente de elasticidade chamado ElastMan que 
automatiza elasticidade e modelos de armazenamento de dados "lojas de valor-
chave" que são executados na nuvem. O gerente ElastMan redimensiona 
automaticamente os serviços de nuvem de acordo com mudanças na carga de 
trabalho para garantir uma boa qualidade de serviço (QoS) com um custo mínimo. 
ElastMan consiste em dois componentes principais: o componente controlador 
feedforward e o controlador de feedback. Ao combinar estes dois componentes, 
ElastMan pode gerenciar o desempenho de máquinas virtuais na nuvem, as 
flutuações na carga de trabalho e de qualidade rigorosos de serviço (QoS). 
O componente controlador feedforward ElastMan monitora a carga de trabalho 
e usa um modelo de regressão logística para prever se a carga de trabalho viola os 
40 
 
 
 
 
 
acordos de nível de serviço (SLAs), e reagir de acordo com esta previsão. O 
componente feedforward controlador é usado principalmente para responder 
rapidamente às flutuações bruscas de carga de trabalho. O segundo componente do 
controlador de feedback monitoriza o desempenho de serviço e reage de acordo com 
a diferença do desvio do desempenho desejado especificados no contrato de nível 
de serviço (SLA). O componente de feedback do controlador é usado em ElastMan 
para corrigir erros no modelo de regressão logística utilizada pelo componente 
controlador feedforward e para gerir as mudanças graduais na carga de trabalho 
(ALBONICO; MOTTU; SUNYÉ, 2016). 
Foi proposto um quadro para a gestão autônoma da elasticidade dos 
aplicativos na nuvem chamado Vulcan. Em particular, propuseram um loop de 
controle autonômico fechado com base no modelo MAPE-K (monitorar, analisar, 
planejar e executar) a IBM para garantir elasticidade, enquanto considerando 
cenários complexos nos sistemas baseados em nuvem. Este circuito fechado de 
controlo é constituído por um conjunto de componentes. Primeiro, o componente de 
planeamento que descreve como um aplicativo deve ser reconfigurada de acordo 
com uma decisão de elasticidade. Onde o componente de escalonamento recebe 
uma elasticidade de um componente de decisão analisador, calcula o novo estado 
da aplicação a ser controlada (nova arquitetura da aplicação) (COUTINHO; GOMES; 
DE SOUZA, 2014). 
Para realizar essa tarefa, que utiliza uma primeira descrição que representa a 
arquitetura de aplicação atual e outra descrição que consiste de toda a possível 
arquitetura da aplicação. Um algoritmo relacionado usa essas descrições para 
calcular e determinar as mudanças a fazer na arquitetura da aplicação, dependendo 
da decisão elasticidade. As alterações envolvem principalmente adição e remoção 
de uma máquina virtual ou recipiente e outras operações para a reconfiguração da 
arquitetura atual (MARCHISOTTI; JOIA; CARVALHO, 2019). 
Uma solução de alimentação em termos de recursos e horizontal elasticidade 
vertical foi apresentada. Os autores propuseram algoritmo inicialmente proativa que 
funciona em duas fases: a primeira fase determina o número e tipo de máquinas 
virtuais ideais para fornecer e atender uma carga de trabalho esperada no futuro 
(reserva de recursos de longo prazo). A segunda fase prevê recursos adicionais se a 
capacidade de recursos reservados atualmente é insuficiente (provisionamento fina 
41 
 
 
 
 
 
de recursos). Além disso, uma arquitetura é proposta para provedores de serviços 
em nuvem. Esta arquitetura utiliza o algoritmo em duas fases para garantir a oferta 
elástica de recursos, além de otimizar os custos (RIGHI, 2013). A arquitetura 
proposta consiste de um componente de monitoração de motor que monitora as 
flutuações da carga de trabalho e a utilização de recursos (PARKER, 2016). 
Um componente Workload Analyzer que utiliza modelos analíticos para 
analisar a carga de trabalho é um componente de modelo que prevê a carga de 
trabalho de entrada. Um componente planeja a elasticidade que executa o algoritmo 
em duas fases inicialmente propostas, para assegurar uma alocação ótima de 
recursos. Finalmente, um componente Resource Broker que realiza o planejamento 
e entrega de recursos provedor de IaaS adaptativo. Um componente Planner 
Elasticidade que executa o algoritmo em duas fases inicialmente propostas, para 
assegurar uma alocação ótima de recursos. 
Os autores incidiram sobre a gestão dos ambientes de nuvem elásticas 
horizontais no nível de infraestrutura. Para atingir este objetivo, propuseram uma 
elasticidade híbrida e controlador que casam entre um controlador reativo para a 
criação de novas instâncias VM (ampliam) e outro controlador proativa para excluir 
instâncias

Continue navegando