SlideShare uma empresa Scribd logo
Um Mecanismo de Auto Elasticidade com base no Tempo
de Resposta para Ambientes de Computação em Nuvem
baseados em Containers
Marcelo Cerqueira de Abranches (CGU/UnB)
Priscila Solis (UnB)
Introdução
● Objetivos do trabalho:
○ Propor para a CGU um ambiente elástico de computação;
○ Evitar dimensionamento de recursos inadequados;
○ Escalar recursos de acordo com a demanda.
● Algoritmo de auto elasticidade (PAS):
○ Baseado em containers
○ Alocação eficiente de recursos de acordo com a demanda;
Trabalhos relacionados
● [Gong et al. 2010]:
○ Algoritmo PRESS: Predição de carga de CPU (FFT ou cadeia de Markov de estados finitos)
● [Poddar et al. 2015]
○ Haven: Algoritmo reativo a variações de CPU/Memória
● [Google 2016b]
○ HPA: Algoritmo reativo a variações de CPU
Trabalhos relacionados
● Diferenças:
○ PRESS:
■ PRESS: Predição de carga x PAS: Reação a variações no tempo de resposta de uma
aplicação;;
■ PRESS: Escalabilidade vertical (ajustes de cpu) x PAS: Horizontal (provisão de novas
instâncias)
■ PRESS: VMs x PAS: Conteiners
○ Haven
Conteiners
● Diferente de virtualização;
○ Conteiners: Instâncias de processamento isoladas gerenciados por um sistema
operacional;
○ Máquinas Virtuais: sistemas operacionais isolados gerenciados por um Hypervisor;
● Vantagens:
○ Imagens pequenas (binários dos processos, arquivos de configuraçaõ etc);
○ Rápido de instanciar;
Balanceadores de carga
● Distribui requisições entre servidores de forma transparente para o
usuário;
● Abordagem para prover:
○ Melhor desempenho, escalabilidade e alta disponibilidade;
Controladores PID
● Algoritmo de controle;
● Permite controlar o valor de uma variável;
● É estabelecido um “setpoint” para a variável;
● Em cada iteração é calculado o erro:
○ erro = setpoint - valor atual da variável
● Um atuador é alimentado e acionado de modo a tomar uma ação que leve
o erro para 0.
Solução Proposta
● Ambiente elástico de nuvem, auto escalável e com balanceamento de
carga, para hospedagem de sistemas Web.
● Cluster baseado em conteiners;
● Algoritmo de alto elasticidade (PAS):
○ Reaje a variações no tempo de resposta médio de um sistema de modo a mantê-lo dentro
de um limite;
Ferramentas utilizadas
● Haproxy
● Flume
● Spark
● Redis
● Dimensionador PAS (python)
● Kubernetes
Arquitetura da solução
● Configura-se no dimensionador PID (PAS) o tempo médio de
resposta desejado para aplicação (“setpoint”);
● Monitor de requisições alimenta o dimensionador com o tempo
médio atual das requisições;
● Dimensionador informa ao atuador (Kubernetes) o número de
containers necessário para atingir o “setpoint”.
Avaliação experimental - Ambiente
● Cluster Kubernetes v1.1.2, instalado no sistema operacional CoreOS
899.6.0, virtualizado em VMWare ESXi 5.5.0
○ 1 nó master (4 vCPUs, 6 GB de RAM);,
○ 1 nó etcd (4 vCPUs, 6 GB de RAM) ;
○ 4 nós workers (4 vCPUs, 6 GB de RAM)
● VMs Ubuntu 14.04.3 LTS, virtualizado em VMWare ESXi 5.5.0
○ 1 nó Haproxy 1.5.4 (4 vCPUs, 4G GB de RAM)
Avaliação experimental - Containers
1. Conteiners rodando cherrypy 5.1.0, configurado com um link que gera um
array aleatório de 1000 a 10000 elementos em cada requisição;
2. Conteiners limitados a 24 milicores de CPU e 18 MB de memória RAM;
Avaliação experimental - Carga de trabalho
● Gerada com a ferramenta ab (apache bench):
● Perfil de requisições gerado a partir de perfil de requisições do portal da
transparência:
○ Série autossimilar (H=0.87, caracterizada com o método Kettani-Gubner),
● Teste executado em diferentes escalas de intensidade
○ 1x (carga_1),
○ 1.5x (carga_1.5)
Avaliação experimental - Cenário 1
● O limiar de tempo de resposta no balanceador (setpoint) foi estabelecido em 50 ms;
● Aplicada carga_1 durante 1000 s
Avaliação experimental - Cenário 1
● O limiar de tempo de resposta no balanceador (setpoint) foi estabelecido em 50 ms;
● Aplicada carga_1.5 durante 1000 s;
Avaliação experimental - Cenário 2
● Compara a proposta deste trabalho (PAS) com o HPA
● Configurado HPA para escalar com 80 % de carga de CPU (HPA_80):
○ Exposto às cargas carga_1, carga_1.5 e carga_2 durante 1000 segundos.
○ Avaliado tempo médio de resposta na camada de aplicação (usuário);
○ PAS configurado para entregar tempo médios de resposta similares ao HPA para cada
carga;
○ Resultados comparados verificando a quantidade média de containers durante os testes
e os tempos de resposta obtidos na camada de aplicação dos clientes;
Avaliação experimenta - Cenário 2
● Para carga_1:
○ HPA_80: tempo médio de resposta 64 ms
■ PAS_50: setpoint configurado em 50 ms
● Para carga_1.5:
○ HPA_80: tempo médio de resposta 105 ms
■ PAS_80: setpoint configurado em 80 ms
● Para carga_2:
Avaliação experimental - Cenário 2
.
Avaliação experimental - Cenário 2
Avaliação experimental - Cenário 2
Avaliação experimental - Cenário 2
● Para tempos médios de resposta similares:
○ Carga_1: PAS_50 alocou 44.02 % do que foi alocado pelo HPA_80
○ Carga_1.5: PAS_80 alocou 36.07 % do que foi alocado pelo HPA_80
○ Carga_2.0: PAS_100 alocou 12.72 % do que foi alocado pelo HPA_80
Trabalhos Futuros
● Avaliar resultados experimentais em um maior número de cenários;
○ Cargas de trabalho reais;
○ Ambientes de produção;
Conclusão
● Resultados demonstram potencial para prover auto elasticidade a um ambiente de computação
em nuvem baseado em conteiners;
● Comparação com a ferramenta de auto escalabilidade nativa do Kubernetes, mostra uma
maior eficiência da solução proposta para alocação da quantidade de conteiners para tempos
de resposta similares na execução de requisições para aplicações Web;
● Uso de ferramentas como Spark e Flume possibilita que a arquitetura seja escalável, podendo
vir a ser utilizada por sites com servidores com grande número de acessos;
Obrigado !!!
Dúvidas???

Mais conteúdo relacionado

PPTX
Aplicando o poder de uma GPU no SQL Server
pichiliani
 
PDF
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Adriano Bonat
 
PPTX
Aplicando processamento paralelo em instruções SQL
pichiliani
 
PPT
Dimensionamento Ótimo de Reserva Técnica de Transformadores de Subestações
Alexandre Grossi
 
PDF
Técnicas avançadas de utilização de GPU e CUDA
Jose Ricardo da Silva Junior
 
PDF
Exemplos de uso de apache spark usando aws elastic map reduce
Felipe
 
PPTX
Entendendo o paralelismo no SQL Server
Luciano Moreira
 
PDF
NoSQL: Uma análise crítica
pichiliani
 
Aplicando o poder de uma GPU no SQL Server
pichiliani
 
Funcionamento e otimização da Garbage Collection na Oracle Hotspot JVM
Adriano Bonat
 
Aplicando processamento paralelo em instruções SQL
pichiliani
 
Dimensionamento Ótimo de Reserva Técnica de Transformadores de Subestações
Alexandre Grossi
 
Técnicas avançadas de utilização de GPU e CUDA
Jose Ricardo da Silva Junior
 
Exemplos de uso de apache spark usando aws elastic map reduce
Felipe
 
Entendendo o paralelismo no SQL Server
Luciano Moreira
 
NoSQL: Uma análise crítica
pichiliani
 

Mais procurados (12)

PDF
Cassandra overview: Um Caso Prático
Eiti Kimura
 
PDF
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
Eiti Kimura
 
PPTX
CanSat 2017 - sessão de apresentação aos alunos
acarneirinho
 
PDF
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Felipe
 
PDF
ApresentaçãO Thiago Bordini Campus Party 2010
Campus Party Brasil
 
PDF
Pré processamento de grandes dados com Apache Spark
Felipe
 
PDF
Alta Disponibilidade no PostgreSQL
elliando dias
 
PPTX
Estudo de caso Ricardo Eletro
MySQL Brasil
 
PDF
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
Eiti Kimura
 
PPTX
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Johnes Castro
 
PDF
Analisador de vibrações - Modo de funcionamento V
DMC Engenharia e Sistemas Ibéricos Lda
 
PDF
Copa do mundo no brasil interagindo com os torcedores em tempo real
Amazon Web Services LATAM
 
Cassandra overview: Um Caso Prático
Eiti Kimura
 
QConSP16 - Apache Cassandra Evoluindo Sistemas Distribuídos
Eiti Kimura
 
CanSat 2017 - sessão de apresentação aos alunos
acarneirinho
 
Hadoop MapReduce and Apache Spark on EMR: comparing performance for distribut...
Felipe
 
ApresentaçãO Thiago Bordini Campus Party 2010
Campus Party Brasil
 
Pré processamento de grandes dados com Apache Spark
Felipe
 
Alta Disponibilidade no PostgreSQL
elliando dias
 
Estudo de caso Ricardo Eletro
MySQL Brasil
 
TDC2015 - Apache Cassandra no Desenvolvimento de Sistemas de Alto Desempenho
Eiti Kimura
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Johnes Castro
 
Analisador de vibrações - Modo de funcionamento V
DMC Engenharia e Sistemas Ibéricos Lda
 
Copa do mundo no brasil interagindo com os torcedores em tempo real
Amazon Web Services LATAM
 
Anúncio

Destaque (13)

PDF
FUTEBOL - Federated Union of Telecommunications Research Facilities for an EU...
EUBrasilCloudFORUM .
 
PDF
ITC in S&T UE-Brazil Coopertion Agreement - A personal account of Brazil part...
EUBrasilCloudFORUM .
 
PPTX
Historia de celular dilan
Dilan Nelson Arias
 
PDF
Secure Cloud - Secure Big Data Processing in Untrusted Clouds
EUBrasilCloudFORUM .
 
PDF
Cooperação Brasil - União Europeia: Principais ações da SEPIN/MCTI
EUBrasilCloudFORUM .
 
PDF
EUBrazilCloudConnect Project
EUBrasilCloudFORUM .
 
PDF
EUBraBIGSEA Project
EUBrasilCloudFORUM .
 
PDF
Adblocking - Blocking more than ads
Oriel Ventures Limited
 
PDF
Proposals for a Brazilian Programme for Open Access to Research Data
EUBrasilCloudFORUM .
 
PDF
Challenges in the IoT
EUBrasilCloudFORUM .
 
DOCX
Elasticidade preco da Oferta e Demanda
Universidade Pedagogica
 
PPTX
Report Text
putudiann
 
PPT
Demanda e oferta 2011_01
Milton Henrique do Couto Neto
 
FUTEBOL - Federated Union of Telecommunications Research Facilities for an EU...
EUBrasilCloudFORUM .
 
ITC in S&T UE-Brazil Coopertion Agreement - A personal account of Brazil part...
EUBrasilCloudFORUM .
 
Historia de celular dilan
Dilan Nelson Arias
 
Secure Cloud - Secure Big Data Processing in Untrusted Clouds
EUBrasilCloudFORUM .
 
Cooperação Brasil - União Europeia: Principais ações da SEPIN/MCTI
EUBrasilCloudFORUM .
 
EUBrazilCloudConnect Project
EUBrasilCloudFORUM .
 
EUBraBIGSEA Project
EUBrasilCloudFORUM .
 
Adblocking - Blocking more than ads
Oriel Ventures Limited
 
Proposals for a Brazilian Programme for Open Access to Research Data
EUBrasilCloudFORUM .
 
Challenges in the IoT
EUBrasilCloudFORUM .
 
Elasticidade preco da Oferta e Demanda
Universidade Pedagogica
 
Report Text
putudiann
 
Demanda e oferta 2011_01
Milton Henrique do Couto Neto
 
Anúncio

Semelhante a Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambientes de Computação em Nuvem baseados em Containers. (20)

PPT
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Rafael Reis
 
PDF
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
Carlos Eduardo
 
PPT
2 Ads
lcbj
 
PDF
Tuning Apache/MySQL/PHP para desenvolvedores
Douglas V. Pasqua
 
PDF
Análise de Algoritmos
Daniel Arndt Alves
 
PDF
Experimentos envolvendo ações de Rejuvenescimento de Software
Carlos Eduardo
 
PDF
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Tiago Hillebrandt
 
PDF
Paralelização de Algoritmo do Produto Escalar
Wendel Oliveira
 
PDF
Load Balance
Wanderson Paim
 
PDF
KNN - CUDA - Categorizador de rótulos automatizado
Richiely Paiva
 
PPT
Controle Inteligente De Processos TermoquíMicos Com Base Na TermodinâMica Com...
Adalgiso Nogueira de Castro Filho Adalgiso
 
PPTX
IMRT, sua Implementação no CAT3D
Armando Alaminos Bouza
 
PDF
Abrindo a caixa de ferramentas: atirando pedras com Jmeter
Evandro Grezeli
 
PDF
Arquitetura SINFO 1.1
Raphael Medeiros
 
PDF
Escalabilidade horizontal com PostgreSQL e Pgpool II
Matheus Espanhol
 
PPTX
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Miguel Xavier
 
PDF
Design Patterns para Tuning Pentaho com Ctools
e-Setorial
 
PPTX
Apresentação cfd
Norival Corrêa
 
PDF
TP1CI_57572.pdf
AliceDias46
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Rafael Reis
 
A Measurement-Based Model for Estimation of Resource Exhaustion in Operationa...
Carlos Eduardo
 
2 Ads
lcbj
 
Tuning Apache/MySQL/PHP para desenvolvedores
Douglas V. Pasqua
 
Análise de Algoritmos
Daniel Arndt Alves
 
Experimentos envolvendo ações de Rejuvenescimento de Software
Carlos Eduardo
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Tiago Hillebrandt
 
Paralelização de Algoritmo do Produto Escalar
Wendel Oliveira
 
Load Balance
Wanderson Paim
 
KNN - CUDA - Categorizador de rótulos automatizado
Richiely Paiva
 
Controle Inteligente De Processos TermoquíMicos Com Base Na TermodinâMica Com...
Adalgiso Nogueira de Castro Filho Adalgiso
 
IMRT, sua Implementação no CAT3D
Armando Alaminos Bouza
 
Abrindo a caixa de ferramentas: atirando pedras com Jmeter
Evandro Grezeli
 
Arquitetura SINFO 1.1
Raphael Medeiros
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Matheus Espanhol
 
Uma Arquitetura para Provisionamento de Ambientes de Alto Desempenho Customiz...
Miguel Xavier
 
Design Patterns para Tuning Pentaho com Ctools
e-Setorial
 
Apresentação cfd
Norival Corrêa
 
TP1CI_57572.pdf
AliceDias46
 

Mais de EUBrasilCloudFORUM . (20)

PDF
FUTEBOL - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PDF
SWAMP - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PPTX
EUBrasilCloudFORUM - Concertation Meeting
EUBrasilCloudFORUM .
 
PDF
NECOS - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PPTX
OCARIoT - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PPTX
FASTEN - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PPTX
5G-RANGE - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PDF
SecureCloud - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PPTX
HPC4E - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PDF
ATMOSPHERE - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PPTX
PITCH - WisoApp at CloudscapeBrazil 2017
EUBrasilCloudFORUM .
 
PPTX
PITCH - Ustore at CloudscapeBrazil 2017
EUBrasilCloudFORUM .
 
PDF
PITCH - IN2 at CloudscapeBrazil 2017
EUBrasilCloudFORUM .
 
PPTX
Melodic
EUBrasilCloudFORUM .
 
PDF
Lessons learned from the development of FUTEBOL A case of cloud and fog inter...
EUBrasilCloudFORUM .
 
PDF
SIG-Special Interest Group in Cloud Computing
EUBrasilCloudFORUM .
 
PPTX
SBC Thematic Groups Organization
EUBrasilCloudFORUM .
 
PPTX
Laying the foundation for a SIG (Special Interest Group) in Cloud Computing
EUBrasilCloudFORUM .
 
PPTX
Session 2: Cloudscape Brazil 2017 & WCN Position Papers: Discussion session
EUBrasilCloudFORUM .
 
PPTX
Enabling Privacy and Security for Data Outsourced to the Cloud
EUBrasilCloudFORUM .
 
FUTEBOL - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
SWAMP - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
EUBrasilCloudFORUM - Concertation Meeting
EUBrasilCloudFORUM .
 
NECOS - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
OCARIoT - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
FASTEN - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
5G-RANGE - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
SecureCloud - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
HPC4E - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
ATMOSPHERE - Concertation Meeting EUBrasilCloudFORUM
EUBrasilCloudFORUM .
 
PITCH - WisoApp at CloudscapeBrazil 2017
EUBrasilCloudFORUM .
 
PITCH - Ustore at CloudscapeBrazil 2017
EUBrasilCloudFORUM .
 
PITCH - IN2 at CloudscapeBrazil 2017
EUBrasilCloudFORUM .
 
Lessons learned from the development of FUTEBOL A case of cloud and fog inter...
EUBrasilCloudFORUM .
 
SIG-Special Interest Group in Cloud Computing
EUBrasilCloudFORUM .
 
SBC Thematic Groups Organization
EUBrasilCloudFORUM .
 
Laying the foundation for a SIG (Special Interest Group) in Cloud Computing
EUBrasilCloudFORUM .
 
Session 2: Cloudscape Brazil 2017 & WCN Position Papers: Discussion session
EUBrasilCloudFORUM .
 
Enabling Privacy and Security for Data Outsourced to the Cloud
EUBrasilCloudFORUM .
 

Último (17)

PPTX
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
PPTX
Curso de Java 8 - (Tratamento de Exceções, (try-catch-finally)).pptx
Anderson Maciel
 
PPTX
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
PPTX
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
PPTX
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
PPTX
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
PDF
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
PDF
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
PPTX
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
PPTX
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
PPTX
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
Curso de Java 8 - (Tratamento de Exceções, (try-catch-finally)).pptx
Anderson Maciel
 
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 

Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambientes de Computação em Nuvem baseados em Containers.

  • 1. Um Mecanismo de Auto Elasticidade com base no Tempo de Resposta para Ambientes de Computação em Nuvem baseados em Containers Marcelo Cerqueira de Abranches (CGU/UnB) Priscila Solis (UnB)
  • 2. Introdução ● Objetivos do trabalho: ○ Propor para a CGU um ambiente elástico de computação; ○ Evitar dimensionamento de recursos inadequados; ○ Escalar recursos de acordo com a demanda. ● Algoritmo de auto elasticidade (PAS): ○ Baseado em containers ○ Alocação eficiente de recursos de acordo com a demanda;
  • 3. Trabalhos relacionados ● [Gong et al. 2010]: ○ Algoritmo PRESS: Predição de carga de CPU (FFT ou cadeia de Markov de estados finitos) ● [Poddar et al. 2015] ○ Haven: Algoritmo reativo a variações de CPU/Memória ● [Google 2016b] ○ HPA: Algoritmo reativo a variações de CPU
  • 4. Trabalhos relacionados ● Diferenças: ○ PRESS: ■ PRESS: Predição de carga x PAS: Reação a variações no tempo de resposta de uma aplicação;; ■ PRESS: Escalabilidade vertical (ajustes de cpu) x PAS: Horizontal (provisão de novas instâncias) ■ PRESS: VMs x PAS: Conteiners ○ Haven
  • 5. Conteiners ● Diferente de virtualização; ○ Conteiners: Instâncias de processamento isoladas gerenciados por um sistema operacional; ○ Máquinas Virtuais: sistemas operacionais isolados gerenciados por um Hypervisor; ● Vantagens: ○ Imagens pequenas (binários dos processos, arquivos de configuraçaõ etc); ○ Rápido de instanciar;
  • 6. Balanceadores de carga ● Distribui requisições entre servidores de forma transparente para o usuário; ● Abordagem para prover: ○ Melhor desempenho, escalabilidade e alta disponibilidade;
  • 7. Controladores PID ● Algoritmo de controle; ● Permite controlar o valor de uma variável; ● É estabelecido um “setpoint” para a variável; ● Em cada iteração é calculado o erro: ○ erro = setpoint - valor atual da variável ● Um atuador é alimentado e acionado de modo a tomar uma ação que leve o erro para 0.
  • 8. Solução Proposta ● Ambiente elástico de nuvem, auto escalável e com balanceamento de carga, para hospedagem de sistemas Web. ● Cluster baseado em conteiners; ● Algoritmo de alto elasticidade (PAS): ○ Reaje a variações no tempo de resposta médio de um sistema de modo a mantê-lo dentro de um limite;
  • 9. Ferramentas utilizadas ● Haproxy ● Flume ● Spark ● Redis ● Dimensionador PAS (python) ● Kubernetes
  • 10. Arquitetura da solução ● Configura-se no dimensionador PID (PAS) o tempo médio de resposta desejado para aplicação (“setpoint”); ● Monitor de requisições alimenta o dimensionador com o tempo médio atual das requisições; ● Dimensionador informa ao atuador (Kubernetes) o número de containers necessário para atingir o “setpoint”.
  • 11. Avaliação experimental - Ambiente ● Cluster Kubernetes v1.1.2, instalado no sistema operacional CoreOS 899.6.0, virtualizado em VMWare ESXi 5.5.0 ○ 1 nó master (4 vCPUs, 6 GB de RAM);, ○ 1 nó etcd (4 vCPUs, 6 GB de RAM) ; ○ 4 nós workers (4 vCPUs, 6 GB de RAM) ● VMs Ubuntu 14.04.3 LTS, virtualizado em VMWare ESXi 5.5.0 ○ 1 nó Haproxy 1.5.4 (4 vCPUs, 4G GB de RAM)
  • 12. Avaliação experimental - Containers 1. Conteiners rodando cherrypy 5.1.0, configurado com um link que gera um array aleatório de 1000 a 10000 elementos em cada requisição; 2. Conteiners limitados a 24 milicores de CPU e 18 MB de memória RAM;
  • 13. Avaliação experimental - Carga de trabalho ● Gerada com a ferramenta ab (apache bench): ● Perfil de requisições gerado a partir de perfil de requisições do portal da transparência: ○ Série autossimilar (H=0.87, caracterizada com o método Kettani-Gubner), ● Teste executado em diferentes escalas de intensidade ○ 1x (carga_1), ○ 1.5x (carga_1.5)
  • 14. Avaliação experimental - Cenário 1 ● O limiar de tempo de resposta no balanceador (setpoint) foi estabelecido em 50 ms; ● Aplicada carga_1 durante 1000 s
  • 15. Avaliação experimental - Cenário 1 ● O limiar de tempo de resposta no balanceador (setpoint) foi estabelecido em 50 ms; ● Aplicada carga_1.5 durante 1000 s;
  • 16. Avaliação experimental - Cenário 2 ● Compara a proposta deste trabalho (PAS) com o HPA ● Configurado HPA para escalar com 80 % de carga de CPU (HPA_80): ○ Exposto às cargas carga_1, carga_1.5 e carga_2 durante 1000 segundos. ○ Avaliado tempo médio de resposta na camada de aplicação (usuário); ○ PAS configurado para entregar tempo médios de resposta similares ao HPA para cada carga; ○ Resultados comparados verificando a quantidade média de containers durante os testes e os tempos de resposta obtidos na camada de aplicação dos clientes;
  • 17. Avaliação experimenta - Cenário 2 ● Para carga_1: ○ HPA_80: tempo médio de resposta 64 ms ■ PAS_50: setpoint configurado em 50 ms ● Para carga_1.5: ○ HPA_80: tempo médio de resposta 105 ms ■ PAS_80: setpoint configurado em 80 ms ● Para carga_2:
  • 19. Avaliação experimental - Cenário 2 Avaliação experimental - Cenário 2
  • 20. Avaliação experimental - Cenário 2 ● Para tempos médios de resposta similares: ○ Carga_1: PAS_50 alocou 44.02 % do que foi alocado pelo HPA_80 ○ Carga_1.5: PAS_80 alocou 36.07 % do que foi alocado pelo HPA_80 ○ Carga_2.0: PAS_100 alocou 12.72 % do que foi alocado pelo HPA_80
  • 21. Trabalhos Futuros ● Avaliar resultados experimentais em um maior número de cenários; ○ Cargas de trabalho reais; ○ Ambientes de produção;
  • 22. Conclusão ● Resultados demonstram potencial para prover auto elasticidade a um ambiente de computação em nuvem baseado em conteiners; ● Comparação com a ferramenta de auto escalabilidade nativa do Kubernetes, mostra uma maior eficiência da solução proposta para alocação da quantidade de conteiners para tempos de resposta similares na execução de requisições para aplicações Web; ● Uso de ferramentas como Spark e Flume possibilita que a arquitetura seja escalável, podendo vir a ser utilizada por sites com servidores com grande número de acessos;