Este documento propõe o modelo ElastiPipe para promover a elasticidade em aplicações organizadas em pipelines. O modelo mapeia cada etapa do pipeline para uma unidade de elasticidade, permitindo definir regras granulares de alocação de recursos. A avaliação mostrou que a elasticidade funcional proposta pelo modelo reduz o tempo total de execução em até 72% em comparação a outras abordagens.
4. INTRODUÇÃO ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
PROBLEMA
o modelo de elasticidade proposto pelos
principais provedores contempla apenas
aplicações web (replicação de Máquinas
Virtuais gerenciadas por um balanceador de
carga);
delega ao usuário a tarefa de ajustar
aplicação para adaptá-la ao modelo de
elasticidade disponível;
as organizações com cargas de trabalho
complexas ficam impossibilitadas de tirar
proveito da elasticidade.
PROPOSTA
elaborar uma estratégia para a migração e o
desenvolvimento de aplicações complexas
visando obter elasticidade através de
pipelines superescalares;
cada passo do pipeline pode ser mapeado
para uma unidade de elasticidade;
possibilita a definição de regras de
elasticidade granulares e mais aderentes às
necessidades da tarefa em execução.
6. FUNDAMENTAÇÃO TEÓRICA ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
COMPUTAÇÃO
PARALELA E
DISTRIBUÍDA
base para a
computação em
nuvem, contribuindo
através de algoritmos e
conceitos como cluster
e grid computing
COMPUTAÇÃO
EM
NUVEM
infraestrutura e
recursos
computacionais em
escala massiva e com
estrutura de custos
“pague pelo uso”
ELASTICIDADE
capacidade de
adicionar e remover
recursos
computacionais de
forma automatizada e
com um tempo de
provisionamento na
casa dos minutos ao
invés de semanas
PIPELINES
SUPERESCALARES
quebra de uma tarefa
em etapas, separando
os passos constituintes
em unidades próprias
que, quando
executados
sequencialmente,
resultarão na conclusão
da tarefa original
8. TRABALHOS RELACIONADOS ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
ELASTICIDADE
✔ HORIZONTAL
✔ AUTOMÁTICA
✔ POR REPLICAÇÃO
13TRABALHOS
SELECIONADOS
INFRAESTRUTURA 6
PLATAFORMA 4
APLICAÇÃO 3
CUMPRIMENTO DE PRAZOS 2
REDUÇÃO DE CUSTOS 2
PERFORMANCE 11
NÍVELOBJETIVO
9. TRABALHOS RELACIONADOS ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
ELASTICSITE
Marshall, Keahey e Freeman (2010)
✔ batch-scheduler;
✔ garantir o cumprimento de prazos;
✔ movem parte da carga de trabalho para a nuvem
conforme a estimativa de conclusão do job.
EQS
Tran, Skhiri e Zimányi (2011)
✔ middleware para filas de mensagens;
✔ aproveita as capacidades de elasticidade já presentes
nos provedores;
✔ divide a aplicação em unidades que podem ganhar
tratamento elástico.
CLOUD OPERATING SYSTEM
Imai, Chestna e Varela (2012)
✔ programação orientada a atores;
✔ migração da carga de trabalho a nível de aplicação;
✔ mais eficaz por reduzir o tamanho e o custo doestado
migrado.
WEBLETS
Zhang et al. (2010)
✔ middleware para desenvolvimento em dispositivos
móveis;
✔ camada de decisão para instanciar a tarefa no dispositivo
ou na nuvem;
✔ divide as tarefas em unidades independentes que
comunicam-se por HTTP.
11. ✔ flexibilidade;
✔ ganhos de performance e
redução na complexidade do
desenvolvimento;
✔ redução de custos através do
melhor aproveitamento de recursos;
✔ aproveitamento dos mecanismos
regra-condição-ação presentes nos
principais provedores.
MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
elasticidade para cargas de
trabalho baseadas em pipelines
estratégia horizontal,
automática reativa e por
replicação
modelo para a migração e o
desenvolvimento de aplicações
em ambiente de computação em
nuvem
12. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
overview
13. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
arquitetura
INGESTÃO
• recebimentodos itens;
• fila distribuída de
mensagens;
• comunicação assíncrona;
• absorve picos de demanda;
• maximiza a ocupação do
pipeline.
CONTROLE
• componentes
compartilhados;
• controle de fluxo e
dependência entre itens;
• reconhecimento do tipo
de tarefa do item;
• validação e tratamento de
erros;
• encaminha os itens para
processamentono
módulo de execução.
EXECUÇÃO
• unidades autônomas e
com o mínimo de
dependências;
• mapeiam cada etapa dos
pipelines;
• decomposição funcional
aumenta o desempenho
através da especializaçãoe
fornece melhor visibilidade
dos gargalos.
14. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
arquitetura
15. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
elasticidade isolar
diferentes
etapas do
pipeline em
unidades de
elasticidade;
ajustar de maneira
granular a alocação
de recursos
conforme os
gargalos e as
características de
cada etapa;
equilibrar a duração das etapas através
do uso de balanceadores de carga,
consequentemente reduzindo o tempo
total de execução;
elasticidade
horizontal, automática
reativa e por
replicação.
flexibilidade na
definição das
unidades e das
regras de
elasticidade;
16. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
elasticidade
17. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
protótipo
AutoScaling / CloudWatch;
Elastic Compute Cloud (EC2);
Elastic Load Balancing (ELB);
Relational Database Service (RDS);
Simple Queue Service (SQS);
Simple Storage Service (S3).
stack
Microsoft
C#;
NET Framework;
Internet Information Services (IIS);
SQL Server;
WCF.
hospedado e
fazendo uso da
plataforma AWS
18. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
protótipoarquitetura
19. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
protótipoelasticidade
20. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
avaliação
baseados no
processamento
de arquivos
amostra colhida
em colaboração
com uma
empresa
CENÁRIOS
3 servidores escolhidos de
acordo com os atributos,
favorecendo a
unidade de
elasticidade
21. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
avaliação
8
layouts de
arquivos
FLUXO DE ARQUIVOS NO PERÍODO DE
11.459
arquivos
3,5k
linhas e 1MB
em média
2
pipelines
UMA SEMANA
22. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
avaliação
Cenário Elasticidade VMs Regras de Elasticidade
1
sem
elasticidade
m4.large (S3Scanner, Maestro, Serviços) —
2
elasticidade
global
t2.medium (S3Scanner, Maestro) —
m4.large (Serviços) ↑ CPU > 75% ↓ CPU < 35%
3
elasticidade
funcional
t2.medium (S3Scanner, Maestro) —
c4.large (Serviços de CPU) ↑ CPU > 75% ↓ CPU < 35%
r3.large (Serviços de memória) ↑ RAM > 75% ↓ RAM < 35%
i2.xlarge (Serviços de disco) ↑ IOPS > 3k ↓ IOPS < 1k
m4.large (Serviços de rede) ↑ MBps > 40 ↓ MBps < 10
24. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
resultados
ELASTICIDADE GLOBAL
✔ duração de cada tarefa reduzida em 52%;
✔ ganhos de 62% no tempo total de execução;
✔ economia de energia de 24%.
Cenário
TAREFAS CONSUMO DE RECURSOS
Duração
Unitária (s)
Por Minuto
Duração
Total
Média de
VMs
Observações Custo Energia
1 5,52 108,70 17:34:12 1,0 1054 1054*1= 1054 18518
2 2,62 594,74 06:45:36 5,2 405
40*1 + 40*2 +
40*3 + 40*4 +
40*5 + 40*6 +
40*7 + 120*8=
2080
14056
3 2,13 1007,45 04:55:12 8,5 295
29*4 + 29*6 +
145*9+ 87*10 =
2465
12131
25. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
resultados
ELASTICIDADE FUNCIONAL
✔ duração de cada tarefa reduzida em 61%;
✔ ganhos de 72% no tempo total de execução;
✔ economia de energia de 34%.
Cenário
TAREFAS CONSUMO DE RECURSOS
Duração
Unitária (s)
Por Minuto
Duração
Total
Média de
VMs
Observações Custo Energia
1 5,52 108,70 17:34:12 1,0 1054 1054*1= 1054 18518
2 2,62 594,74 06:45:36 5,2 405
40*1 + 40*2 +
40*3 + 40*4 +
40*5 + 40*6 +
40*7 + 120*8=
2080
14056
3 2,13 1007,45 04:55:12 8,5 295
29*4 + 29*6 +
145*9+ 87*10 =
2465
12131
26. MODELO ELASTIPIPE ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
MODELOELASTIPIPE
resultados
ELASTIPIPE
✔ ganhos de 69% na vazão;
✔ duração 27% menor;
✔ associatividade de custos mantém o modelo
vantajoso mesmo com custo 18% maior.
Cenário
TAREFAS CONSUMO DE RECURSOS
Duração
Unitária (s)
Por Minuto
Duração
Total
Média de
VMs
Observações Custo Energia
1 5,52 108,70 17:34:12 1,0 1054 1054*1= 1054 18518
2 2,62 594,74 06:45:36 5,2 405
40*1 + 40*2 +
40*3 + 40*4 +
40*5 + 40*6 +
40*7 + 120*8=
2080
14056
3 2,13 1007,45 04:55:12 8,5 295
29*4 + 29*6 +
145*9+ 87*10 =
2465
12131
28. preencheu-se uma lacuna no que diz respeito à obtenção de
elasticidade em aplicações que podem ser organizadas como
pipelines;
através da avaliação de três cenários, comprovou-se o
desempenho superior da elasticidade funcional proposta
pelo modelo...
...o qual permite tratar cada etapa do pipeline de forma
independente, viabilizando ajustes finos no hardware,
performance e regras de elasticidade.
CONCLUSÃO ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
✔
✔
✔
29. podemos ainda explorar técnicas de conteinerização, migração
de processos e estratégias de sombra assim como o impacto de
diferentes políticas de balanceamento de carga.
CONCLUSÃO ELASTIPIPE: PROMOVENDO A ELASTICIDADE DE APLICAÇÕES ORGANIZADAS EM PIPELINES
30. PROMOVENDO A ELASTICIDADE DE
APLICAÇÕES ORGANIZADAS EM PIPELINES
Mateus Rauback Aubin
Rodrigo da Rosa Righi
ELASTIPIPE: