SlideShare uma empresa Scribd logo
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Melhorando a disponibilidade e reduzindo
custos utilizando Auto Scaling
Marcelo Leal
Enterprise Solutions Architect
Tópicos que veremos hoje…
• Introdução ao “Auto Scaling”
• Benefícios da utilização do Auto Scaling
• Controlar tempo de resposta das aplicações e utilização dos recursos
• Sustentar demanda cíclica e eventos metereológicos inesperados
• Aumentar Disponibilidade
• Controle de Custos
• Testes de performance para estabelecer estratégias de escalabilidade
• Tratar variações abruptas na demanda e “bounciness”
• Controle de Custos
AWS
The Weather
Channel
iba
Dreambox
Oportunidades de utilização do Auto Scaling
Lançar instâncias EC2 a partir
de templates reutilizáveis
Escalar conforme necessário
automaticamente
Substituição automática de
instâncias e manutenção de
capacidade EC2
Cenários Comuns
• Agendar um único “scale out” e flip para produção
• Acompanhar ciclos diários, semanais, ou mensais
• Provisionar capacidade dinamicamente, baseando-se em
consumo de CPU, memória, nr. de requisições, tamanho
da fila, nr. de usuários, etc.
• Adicionar “tag” às instâncias automaticamente
• Substituir instâncias que falham (checagem ELB ou EC2)
• Balancear automaticamente instâncias em múltiplas zonas
de disponibilidade.
Preparar para o lançamento
Ajustar capacidade
Estar pronto para picos
Simplificar alocação de Custos
Manter capacidade estável
Implementar Multi-AZ
Novidades no Auto Scaling
Melhor Integração
• Suporte na console EC2
• Agendar politicas de escalonamento
em templates CloudFormation
• ELB connection draining
• Anexar IP’s púbilicos
automaticamente em VPC
• Spot + Auto Scaling
Mais APIs
• Criar grupos com base em instâncias em
execução
• Criar configurações de lançamento com
base em instâncias em execução
• Anexar instâncias em execução ao grupo
• Descrever limites de conta para grupos e
configurações de lançamento
Por que Auto Scaling?
Escalabilidade Controle de CustosAumentar disponibilidade
The Weather Company
• Segundo canal de
televisão mais visto nos
EUA
• 85% das empresas
aéreas dos EUA
dependem das suas
previsões
• 163 milhões de
visitantes únicos entre
TV e web
Wunderground Radar e
Mapas
100 milhões de hits em um dia
1 bilhão “data points” por dia
Migração do sistema de radar de mapeamento em tempo real
wunderground.com para nuvem AWS
30.000
Estações
Pessoais
Source: Wunderground, Inc. 2013
Por que Auto Scaling?
Por que Auto Scaling?
Por que Auto Scaling?
Por que Auto Scaling?
Hurricane Sandy
Antes da Migração – Modelo IT Tradicional não escala bem
Servidores
(110 Servidores)
Média de Carga de CPU Tempo de resposta HTTP
(~6000 ms)
Tempo de resposta HTTP
(5-15ms)
Servidores
(de 110 para 170 Instâncias)
Média de Carga de CPU
Depois da Migração - Wunderground Aplicação Radar
Escalar para garantir performance
consistente durante alta demanda
Por que Auto Scaling?
Escalabilidade Controle de Custos
Aumentar
Disponibilidade
“iba e AWS - Aumento de disponibilidade, autonomia,
gerência, capacidade de entrega e o melhor, com redução
significativa de custos”
“Escolhemos a AWS por
ser a opção com maior
gama de produtos e
serviços do mercado.
Eles possuem casos
conhecido de sucesso e
isso gera confiança”
- Luis Barrionuevo, CTO
do iba
• O iba é a loja (e-commerce) mais
completa de publicações digitais do
Brasil, contando com mais de 20 mil
títulos entre e-books, revistas e jornais
digitais.
• É uma empresa do Grupo Abril,
responsável pela plataforma de venda e
entrega de conteúdo digital da própria
editora e parceiros.
O Desafio
• Migrar de uma infraestrutura convencional para a
nuvem da Amazon um produto digital que exige
alta disponibilidade, possui importante audiência e
é parte do core business na Diretoria de Negócios
Digitais;
• Como reduzir nossos custos com data center e
aumentar a disponibilidade da plataforma?
• Estávamos em um momento que ocorriam muitos
projetos paralelos originados na área de produtos e
instabilidades na plataforma afetariam diretamente
nosso processo de migração;
• Substituição de hosts físicos e de grande porte de
banco de dados e cache para instancia EC2.
Papel da AWS e Benefícios alcançados
• Tivemos uma redução de ~60% de custos
em relação a infraestrutura anterior;
• Triplicamos a nossa capacidade de
entrega.
• Aumentamos nosso SLA e nossa nova
meta é de 99,90% de disponibilidade;
• Aplicação do auto scaling no ambiente de
produção e desativação dos ambientes de
desenvolvimento (dev, QA, Stage e CI) .
Por que Auto Scaling?
Escalabilidade Controle de CustosAumentar Disponibilidade
Auto scaling
Um pouco sobre nossa aplicação
• Ruby on Rails
• Unicorn
• Ensinamos
Matemática às
crianças!
Estratégias utilizadas
Escalabilidade com
alarmes
CloudWatch
Escalabilidade
agendada
(onetime, recorrente)
Carga de trabalho perfeita para utilização do
Auto Scaling
Escalando com alarmes do CloudWatch
O que é um alarme?
• Métricas no
CloudWatch
• Acima ou abaixo de
um limite, um alarme
é acionado
• O qual pode disparar
uma ação de Auto
Scaling
Testes de performance para criar um “baseline”
• Descobrir o número ideal de
processos “workers” por servidor
– Poucos e gera desperdício de
recursos
– Muitos e a performance sofre com
aumento da carga
• Conseguir a carga máxima
apropriada por servidor
– Nossos testes de performance
medem a quantidade de usuários
simultâneos
• Achar o “Chokepoint“ (limite)
– Para nós, isto foi utilização de CPU
Testes de Performance
Identificar o ponto para escalar
“Breaking point” foi cerca de 400 usuários por servidor
Nosso primeiro metodo para identificar os
pontos de escalabilidade
• Provisionar uma quantidade
estática de servidores que nós
sabemos que conseguem
sustentar a carga de pico
• Ajustar os alarmes para
escalabilidade (para cima/para
baixo) com base no aumento e
diminuição de carga
observados
• Funcionou, mas foi super
ineficiente, tanto no tempo
quanto dinheiro gasto
Um pouco de matemática – Identificar as variáveis
Independente
• Usuários simultâneos
Dependente
• Utilização de CPU
• Utilização de Memória
• I/O de Disco
• I/O de Rede
Mais matemática…
• Cerca de 1600 usuários por hora
• O que é cerca de 27 por minuto
• Sabemos que nós conseguimos
sustentar um máximo de cerca de
400 usuários por servidor,
utilizando 80% de CPU
• O que é cerca de 0.2% de uso de
CPU por usuário
Mais matemática – Quando escalar?
• Sabemos (dos nossos testes) que leva
cerca de 5 minutos para um novo nó estar
online
• Estamos adicionando 27 usuários por
minuto
• O que significa que temos que começar a
lançar novos nodos quando estamos com
cerca de 135 usuários ( 27 x 5 ) por nó
faltando para chegar ao máximo
• O que é cerca de 53% de utilização:
(80% - (0.2% * 135))
Equações de ponto de escalabilidade
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑚á𝑥. 𝑝𝑜𝑟 𝑛ó − (𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑎𝑑𝑖𝑐. 𝑝𝑜𝑟 𝑚𝑖𝑛. ∗ 𝑡𝑒𝑚𝑝𝑜 𝑎𝑡é 𝑜𝑛𝑙𝑖𝑛𝑒)
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 400 − (27 ∗ 5)
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 usuários por nó
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑝𝑜𝑟 𝑛ó ∗ 𝑐𝑝𝑢 𝑝𝑜𝑟 𝑢𝑠𝑢á𝑟𝑖𝑜
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 ∗ .2
𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 53% cpu por nó
𝑐𝑝𝑢
𝑛𝑜𝑑𝑒
=
𝑢𝑠𝑢á𝑟𝑖𝑜𝑠
𝑛𝑜𝑑𝑒
∗
𝑐𝑝𝑢
𝑢𝑠𝑢á𝑟𝑖𝑜
Quanto escalar?
• O mínimo que podemos escalar é 1 nó por AZ, de
outra forma ficaríamos sem redundância
• Para nós, isto significa mais 800 usuários de
capacidade em 5 minutos, mais que suficiente para
suportar nossa taxa de adicionar 1600 usuários por
hora
• Adicionando 800 usuários de capacidade a cada 5
minutos, nós podemos suportar 9600 usuários
adicionais por hora
Avaliação de nossas descobertas
• No mundo real, “sobrou” recursos
escalando a partir de 53%
• Nosso teste de performance foi um pouco
mais pesado que o mundo real
• Números oriundos do seu teste de
performance são tão apurados quanto a
simulação de tráfego que você configurou
nos testes de performance.
Escalonamento agendado
Aceleração na carga não é constante
Contador de requisições para um período de 24 horas
Não podemos utilizar apenas um modelo
• Escalar muito agressivamente
– Provisionar mais que o necessário:
aumenta o custo
– “Bounciness”: adicionamos mais
do que precisamos e temos que
em seguida desprovisionar, o que
aumenta o custo
• Escalar de maneira insuficiente
– Performance ruim
– Indisponibilidade devido a falta de
capacidade
“Bounciness and steepness”
• Adicionar pontos de
escalonamento agendado
para eliminar “bounciness”
• Escalabilidade agendada
para os pontos de queda
abrupta da curva de
demanda
• Deixar a escalabilidade
dinâmica cuidar das
escalabilidade mais linear
Curva de escalabilidade antes…
minmin
min
min
min
…e depois
min
min
min
min
min
Colocando tudo junto…
O custo de NÃO escalar
• Nossa curva de
utilização
• Mínimo cerca de 5
usuários
simultâneos
• Max cerca de
10,000 usuários
simultâneos
O custo de NÃO escalar
• Sem autoscaling
• 672 horas de
instâncias EC2
• $302.40 em preços
“on-demand”
O custo de NÃO escalar
• Auto Scaling
quatro vezes por
dia
• 360 horas de
instâncias EC2
• $162 em preços
“on-demand”
• Economia de 46%
vs sem autoscaling
O custo de NÃO escalar
• Autoscaling quando
necessário, 12
vezes/dia
• 272 horas de
instância EC2
• $122.40 em preços
on-demand
• Economia de 24% vs
escalar 4 vezes/dia
• Economia de 60% vs
SEM autoscaling
O custo de NÃO escalar
$302/dia
$162/dia
$122/dia
Curva da demanda alinhada com a curva de utilização…
…e uma (geralmente) curva de tempo de resposta mais constante
Auto Scaling nos permitiu uma grande economia;
Com um pouco de matemática, a flexibilidade da
AWS nos permitiu economizar ainda mais,
alinhando nossa curva de demanda com a curva
de utilização.
Por que Auto Scaling?
Escalabilidade Controle de CustosAumentar Disponibilidade
Obrigado!
Marcelo Leal
Enterprise Solutions Architect

Mais conteúdo relacionado

PDF
TCO e otimização de custos na AWS
PPTX
Rodando SAP na AWS
PDF
Instâncias spot para ambientes de produção sem comprometer a disponibilidade
PDF
Blue Green Deployments com Elastic Beanstalk - Demo Session
PPTX
Amazon EC2 boas praticas e otimizações de desempenho
PDF
Otimizacao de custo summit 2015
PDF
Building blocks #4 - Rede de entrega de conteúdo (CDN) na AWS
PPTX
Tendências de Big Data
TCO e otimização de custos na AWS
Rodando SAP na AWS
Instâncias spot para ambientes de produção sem comprometer a disponibilidade
Blue Green Deployments com Elastic Beanstalk - Demo Session
Amazon EC2 boas praticas e otimizações de desempenho
Otimizacao de custo summit 2015
Building blocks #4 - Rede de entrega de conteúdo (CDN) na AWS
Tendências de Big Data

Mais procurados (20)

PPTX
O que uma enterprise deveria fazer nos primeiros 90 dias
PPTX
Tendências de Big Data
PDF
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
PPTX
Escalando sua aplicação Web com Beanstalk
PDF
Raising the bar #4 - Economize utilizando instâncias Spot no Amazon EC2
PDF
Construindo um Data Lake na AWS
PDF
Um framework para a Transformaçao da TI e do Negócio
PPTX
Escalando sua aplicação Web com Beanstalk
PPTX
Iniciando com Amazon Aurora
PDF
Building blocks #1 - Primeiros passos na Amazon Web Services
PDF
Building blocks #5 - Recuperação de desastres de maneira prática na AWS
PDF
Raising the bar #5 - Melhores práticas de workloads Microsoft
PPTX
Fazendo seu DR na AWS
PDF
Expandindo seu data center com uma infraestrutura hibrida
PPTX
Mergulhando em desenvolvimento de aplicações serverless
PDF
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
PDF
Whole Site Delivery with Amazon CloudFront
PPTX
Primeiros Passos na AWS
PPTX
Rodando a BlackFriday do seu eCommerce na nuvem
PDF
Melhores práticas de workloads Microsoft na AWS
O que uma enterprise deveria fazer nos primeiros 90 dias
Tendências de Big Data
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Escalando sua aplicação Web com Beanstalk
Raising the bar #4 - Economize utilizando instâncias Spot no Amazon EC2
Construindo um Data Lake na AWS
Um framework para a Transformaçao da TI e do Negócio
Escalando sua aplicação Web com Beanstalk
Iniciando com Amazon Aurora
Building blocks #1 - Primeiros passos na Amazon Web Services
Building blocks #5 - Recuperação de desastres de maneira prática na AWS
Raising the bar #5 - Melhores práticas de workloads Microsoft
Fazendo seu DR na AWS
Expandindo seu data center com uma infraestrutura hibrida
Mergulhando em desenvolvimento de aplicações serverless
Path to the future #5 - Melhores práticas de data warehouse no Amazon Redshift
Whole Site Delivery with Amazon CloudFront
Primeiros Passos na AWS
Rodando a BlackFriday do seu eCommerce na nuvem
Melhores práticas de workloads Microsoft na AWS
Anúncio

Semelhante a Auto scaling (20)

PPTX
Iniciando com serviços de bancos de dados gerenciados na AWS
PPTX
Presentation yros | aws solution provider
PPTX
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
PDF
Introducao+ao+amazon+ec2+ +ricardo+geh
PPTX
Escalando para os primeiros 10 milhões de usuários
PPT
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
PPTX
AWS Auto Scaling #Parte1
PDF
Escalando para os primeiros 10 milhoes de usuarios
PDF
1º Meetup - Amazon AWS BH
PPTX
Explorando o mundo serverless
PPTX
Trabalhando com ALM na nuvem
PDF
Amazon EC2 avançado
PPTX
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
PDF
Padrões de Arquitetura na Nuvem da AWS
PDF
Rails nas Nuvens
PPT
Conceito das principais nuvens de tecnologia do mercado parte 1
PDF
Introduction to Cloud Computing
PPT
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
PDF
Conhecendo as Opcoes de Bancos de Dados na Nuvem da AWS
PDF
Arquiteturas de E Commerce da próxima geração
Iniciando com serviços de bancos de dados gerenciados na AWS
Presentation yros | aws solution provider
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
Introducao+ao+amazon+ec2+ +ricardo+geh
Escalando para os primeiros 10 milhões de usuários
Blueprints & Patterns de Arquitetura para Sistemas que Escalam Linearmente (p...
AWS Auto Scaling #Parte1
Escalando para os primeiros 10 milhoes de usuarios
1º Meetup - Amazon AWS BH
Explorando o mundo serverless
Trabalhando com ALM na nuvem
Amazon EC2 avançado
Trabalhando com TFS na nuvem (Microsoft Azure). Quais vantagens de migrar o A...
Padrões de Arquitetura na Nuvem da AWS
Rails nas Nuvens
Conceito das principais nuvens de tecnologia do mercado parte 1
Introduction to Cloud Computing
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Conhecendo as Opcoes de Bancos de Dados na Nuvem da AWS
Arquiteturas de E Commerce da próxima geração
Anúncio

Mais de Amazon Web Services LATAM (20)

PPTX
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
PPTX
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
PPTX
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
PPTX
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
PPTX
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
PPTX
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
PPTX
Automatice el proceso de entrega con CI/CD en AWS
PPTX
Automatize seu processo de entrega de software com CI/CD na AWS
PPTX
Cómo empezar con Amazon EKS
PPTX
Como começar com Amazon EKS
PPTX
Ransomware: como recuperar os seus dados na nuvem AWS
PPTX
Ransomware: cómo recuperar sus datos en la nube de AWS
PPTX
Ransomware: Estratégias de Mitigação
PPTX
Ransomware: Estratégias de Mitigación
PPTX
Aprenda a migrar y transferir datos al usar la nube de AWS
PPTX
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
PPTX
Cómo mover a un almacenamiento de archivos administrados
PPTX
Simplifique su BI con AWS
PPTX
Simplifique o seu BI com a AWS
PPTX
Os benefícios de migrar seus workloads de Big Data para a AWS
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
Automatice el proceso de entrega con CI/CD en AWS
Automatize seu processo de entrega de software com CI/CD na AWS
Cómo empezar con Amazon EKS
Como começar com Amazon EKS
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigación
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Cómo mover a un almacenamiento de archivos administrados
Simplifique su BI con AWS
Simplifique o seu BI com a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS

Último (20)

PPTX
estratégia em rh sjdfjdjfhd cojkjdgkdf bdjfgkdfg
PDF
Contabilidade de Custos - Crepaldi - Parte 1
PDF
CIPA apresentação para empresas atualizada
PPTX
CDTOE - SLIDES 1ª UNIDADE APRENDIZAGEM 2024.pptx
PPT
TREINAMENTO COMBATE A INCÊNDIO para empresas
PPTX
Aula_Processo_Administrativo_Gestão_e_Organização
PDF
O Guia Definitivo do RIPD: Da Obrigação Legal (LGPD) à Vantagem Estratégica
PPTX
Documento de Franciele Oliveirala🖤.pptx
PPTX
Capacitacao_online_Monitoramento_Ciclo_PDCA.pptx Lamentamos, mas o ficheiro C...
PDF
EMANUEL.pdffffffffffffffffffffffffffffffffffffffffff
PDF
APRESENTAÇÃO ACIL SERRA - FINAL - 2025.pdf
PDF
APRESENTACAO COLETIVA ABRAS RETROSPECTIVA 2020.pdf
PPTX
ATIVIDADES OPERACIONAIS - BOMBEIRO CIVIL.pptx
PPTX
Inteligência Artificial no Cotidiano 333
PDF
Teoria Administrativa de Fayol llllllllllllllllllllll- 33.pdf
PPTX
MOTIVAÇÃO E DESEMPENHO ESCOLAR_2020 (1).pptx
DOCX
projeto ceara cientifico.docx PARA ALEM DA EDUCAÇÃO INCLUSIVA
PPT
EMPREENDEDORIMO_Aula_Introdutoria_Gestão_e_Negócios
PDF
ATÉ_QUE_NADA_MAIS_IMPORTE_Como_viver_longe_de_um_mundo_de_performances.pdf
PDF
EQUIPE CARLOS.pdffffffffffffffffffffffffffffffffff
estratégia em rh sjdfjdjfhd cojkjdgkdf bdjfgkdfg
Contabilidade de Custos - Crepaldi - Parte 1
CIPA apresentação para empresas atualizada
CDTOE - SLIDES 1ª UNIDADE APRENDIZAGEM 2024.pptx
TREINAMENTO COMBATE A INCÊNDIO para empresas
Aula_Processo_Administrativo_Gestão_e_Organização
O Guia Definitivo do RIPD: Da Obrigação Legal (LGPD) à Vantagem Estratégica
Documento de Franciele Oliveirala🖤.pptx
Capacitacao_online_Monitoramento_Ciclo_PDCA.pptx Lamentamos, mas o ficheiro C...
EMANUEL.pdffffffffffffffffffffffffffffffffffffffffff
APRESENTAÇÃO ACIL SERRA - FINAL - 2025.pdf
APRESENTACAO COLETIVA ABRAS RETROSPECTIVA 2020.pdf
ATIVIDADES OPERACIONAIS - BOMBEIRO CIVIL.pptx
Inteligência Artificial no Cotidiano 333
Teoria Administrativa de Fayol llllllllllllllllllllll- 33.pdf
MOTIVAÇÃO E DESEMPENHO ESCOLAR_2020 (1).pptx
projeto ceara cientifico.docx PARA ALEM DA EDUCAÇÃO INCLUSIVA
EMPREENDEDORIMO_Aula_Introdutoria_Gestão_e_Negócios
ATÉ_QUE_NADA_MAIS_IMPORTE_Como_viver_longe_de_um_mundo_de_performances.pdf
EQUIPE CARLOS.pdffffffffffffffffffffffffffffffffff

Auto scaling

  • 1. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Melhorando a disponibilidade e reduzindo custos utilizando Auto Scaling Marcelo Leal Enterprise Solutions Architect
  • 2. Tópicos que veremos hoje… • Introdução ao “Auto Scaling” • Benefícios da utilização do Auto Scaling • Controlar tempo de resposta das aplicações e utilização dos recursos • Sustentar demanda cíclica e eventos metereológicos inesperados • Aumentar Disponibilidade • Controle de Custos • Testes de performance para estabelecer estratégias de escalabilidade • Tratar variações abruptas na demanda e “bounciness” • Controle de Custos AWS The Weather Channel iba Dreambox
  • 3. Oportunidades de utilização do Auto Scaling Lançar instâncias EC2 a partir de templates reutilizáveis Escalar conforme necessário automaticamente Substituição automática de instâncias e manutenção de capacidade EC2
  • 4. Cenários Comuns • Agendar um único “scale out” e flip para produção • Acompanhar ciclos diários, semanais, ou mensais • Provisionar capacidade dinamicamente, baseando-se em consumo de CPU, memória, nr. de requisições, tamanho da fila, nr. de usuários, etc. • Adicionar “tag” às instâncias automaticamente • Substituir instâncias que falham (checagem ELB ou EC2) • Balancear automaticamente instâncias em múltiplas zonas de disponibilidade. Preparar para o lançamento Ajustar capacidade Estar pronto para picos Simplificar alocação de Custos Manter capacidade estável Implementar Multi-AZ
  • 5. Novidades no Auto Scaling Melhor Integração • Suporte na console EC2 • Agendar politicas de escalonamento em templates CloudFormation • ELB connection draining • Anexar IP’s púbilicos automaticamente em VPC • Spot + Auto Scaling Mais APIs • Criar grupos com base em instâncias em execução • Criar configurações de lançamento com base em instâncias em execução • Anexar instâncias em execução ao grupo • Descrever limites de conta para grupos e configurações de lançamento
  • 6. Por que Auto Scaling? Escalabilidade Controle de CustosAumentar disponibilidade
  • 7. The Weather Company • Segundo canal de televisão mais visto nos EUA • 85% das empresas aéreas dos EUA dependem das suas previsões • 163 milhões de visitantes únicos entre TV e web
  • 8. Wunderground Radar e Mapas 100 milhões de hits em um dia 1 bilhão “data points” por dia Migração do sistema de radar de mapeamento em tempo real wunderground.com para nuvem AWS
  • 10. Por que Auto Scaling?
  • 11. Por que Auto Scaling?
  • 12. Por que Auto Scaling?
  • 13. Por que Auto Scaling? Hurricane Sandy
  • 14. Antes da Migração – Modelo IT Tradicional não escala bem Servidores (110 Servidores) Média de Carga de CPU Tempo de resposta HTTP (~6000 ms) Tempo de resposta HTTP (5-15ms) Servidores (de 110 para 170 Instâncias) Média de Carga de CPU Depois da Migração - Wunderground Aplicação Radar
  • 15. Escalar para garantir performance consistente durante alta demanda
  • 16. Por que Auto Scaling? Escalabilidade Controle de Custos Aumentar Disponibilidade
  • 17. “iba e AWS - Aumento de disponibilidade, autonomia, gerência, capacidade de entrega e o melhor, com redução significativa de custos” “Escolhemos a AWS por ser a opção com maior gama de produtos e serviços do mercado. Eles possuem casos conhecido de sucesso e isso gera confiança” - Luis Barrionuevo, CTO do iba • O iba é a loja (e-commerce) mais completa de publicações digitais do Brasil, contando com mais de 20 mil títulos entre e-books, revistas e jornais digitais. • É uma empresa do Grupo Abril, responsável pela plataforma de venda e entrega de conteúdo digital da própria editora e parceiros.
  • 18. O Desafio • Migrar de uma infraestrutura convencional para a nuvem da Amazon um produto digital que exige alta disponibilidade, possui importante audiência e é parte do core business na Diretoria de Negócios Digitais; • Como reduzir nossos custos com data center e aumentar a disponibilidade da plataforma? • Estávamos em um momento que ocorriam muitos projetos paralelos originados na área de produtos e instabilidades na plataforma afetariam diretamente nosso processo de migração; • Substituição de hosts físicos e de grande porte de banco de dados e cache para instancia EC2.
  • 19. Papel da AWS e Benefícios alcançados • Tivemos uma redução de ~60% de custos em relação a infraestrutura anterior; • Triplicamos a nossa capacidade de entrega. • Aumentamos nosso SLA e nossa nova meta é de 99,90% de disponibilidade; • Aplicação do auto scaling no ambiente de produção e desativação dos ambientes de desenvolvimento (dev, QA, Stage e CI) .
  • 20. Por que Auto Scaling? Escalabilidade Controle de CustosAumentar Disponibilidade
  • 22. Um pouco sobre nossa aplicação • Ruby on Rails • Unicorn • Ensinamos Matemática às crianças!
  • 24. Carga de trabalho perfeita para utilização do Auto Scaling
  • 25. Escalando com alarmes do CloudWatch
  • 26. O que é um alarme? • Métricas no CloudWatch • Acima ou abaixo de um limite, um alarme é acionado • O qual pode disparar uma ação de Auto Scaling
  • 27. Testes de performance para criar um “baseline” • Descobrir o número ideal de processos “workers” por servidor – Poucos e gera desperdício de recursos – Muitos e a performance sofre com aumento da carga • Conseguir a carga máxima apropriada por servidor – Nossos testes de performance medem a quantidade de usuários simultâneos • Achar o “Chokepoint“ (limite) – Para nós, isto foi utilização de CPU
  • 29. Identificar o ponto para escalar “Breaking point” foi cerca de 400 usuários por servidor
  • 30. Nosso primeiro metodo para identificar os pontos de escalabilidade • Provisionar uma quantidade estática de servidores que nós sabemos que conseguem sustentar a carga de pico • Ajustar os alarmes para escalabilidade (para cima/para baixo) com base no aumento e diminuição de carga observados • Funcionou, mas foi super ineficiente, tanto no tempo quanto dinheiro gasto
  • 31. Um pouco de matemática – Identificar as variáveis Independente • Usuários simultâneos Dependente • Utilização de CPU • Utilização de Memória • I/O de Disco • I/O de Rede
  • 32. Mais matemática… • Cerca de 1600 usuários por hora • O que é cerca de 27 por minuto • Sabemos que nós conseguimos sustentar um máximo de cerca de 400 usuários por servidor, utilizando 80% de CPU • O que é cerca de 0.2% de uso de CPU por usuário
  • 33. Mais matemática – Quando escalar? • Sabemos (dos nossos testes) que leva cerca de 5 minutos para um novo nó estar online • Estamos adicionando 27 usuários por minuto • O que significa que temos que começar a lançar novos nodos quando estamos com cerca de 135 usuários ( 27 x 5 ) por nó faltando para chegar ao máximo • O que é cerca de 53% de utilização: (80% - (0.2% * 135))
  • 34. Equações de ponto de escalabilidade 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑚á𝑥. 𝑝𝑜𝑟 𝑛ó − (𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑎𝑑𝑖𝑐. 𝑝𝑜𝑟 𝑚𝑖𝑛. ∗ 𝑡𝑒𝑚𝑝𝑜 𝑎𝑡é 𝑜𝑛𝑙𝑖𝑛𝑒) 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 400 − (27 ∗ 5) 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 usuários por nó 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑝𝑜𝑟 𝑛ó ∗ 𝑐𝑝𝑢 𝑝𝑜𝑟 𝑢𝑠𝑢á𝑟𝑖𝑜 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 265 ∗ .2 𝑠𝑐𝑎𝑙𝑖𝑛𝑔 𝑝𝑜𝑖𝑛𝑡 = 53% cpu por nó 𝑐𝑝𝑢 𝑛𝑜𝑑𝑒 = 𝑢𝑠𝑢á𝑟𝑖𝑜𝑠 𝑛𝑜𝑑𝑒 ∗ 𝑐𝑝𝑢 𝑢𝑠𝑢á𝑟𝑖𝑜
  • 35. Quanto escalar? • O mínimo que podemos escalar é 1 nó por AZ, de outra forma ficaríamos sem redundância • Para nós, isto significa mais 800 usuários de capacidade em 5 minutos, mais que suficiente para suportar nossa taxa de adicionar 1600 usuários por hora • Adicionando 800 usuários de capacidade a cada 5 minutos, nós podemos suportar 9600 usuários adicionais por hora
  • 36. Avaliação de nossas descobertas • No mundo real, “sobrou” recursos escalando a partir de 53% • Nosso teste de performance foi um pouco mais pesado que o mundo real • Números oriundos do seu teste de performance são tão apurados quanto a simulação de tráfego que você configurou nos testes de performance.
  • 38. Aceleração na carga não é constante Contador de requisições para um período de 24 horas
  • 39. Não podemos utilizar apenas um modelo • Escalar muito agressivamente – Provisionar mais que o necessário: aumenta o custo – “Bounciness”: adicionamos mais do que precisamos e temos que em seguida desprovisionar, o que aumenta o custo • Escalar de maneira insuficiente – Performance ruim – Indisponibilidade devido a falta de capacidade
  • 40. “Bounciness and steepness” • Adicionar pontos de escalonamento agendado para eliminar “bounciness” • Escalabilidade agendada para os pontos de queda abrupta da curva de demanda • Deixar a escalabilidade dinâmica cuidar das escalabilidade mais linear
  • 41. Curva de escalabilidade antes… minmin min min min
  • 44. O custo de NÃO escalar • Nossa curva de utilização • Mínimo cerca de 5 usuários simultâneos • Max cerca de 10,000 usuários simultâneos
  • 45. O custo de NÃO escalar • Sem autoscaling • 672 horas de instâncias EC2 • $302.40 em preços “on-demand”
  • 46. O custo de NÃO escalar • Auto Scaling quatro vezes por dia • 360 horas de instâncias EC2 • $162 em preços “on-demand” • Economia de 46% vs sem autoscaling
  • 47. O custo de NÃO escalar • Autoscaling quando necessário, 12 vezes/dia • 272 horas de instância EC2 • $122.40 em preços on-demand • Economia de 24% vs escalar 4 vezes/dia • Economia de 60% vs SEM autoscaling
  • 48. O custo de NÃO escalar $302/dia $162/dia $122/dia
  • 49. Curva da demanda alinhada com a curva de utilização…
  • 50. …e uma (geralmente) curva de tempo de resposta mais constante
  • 51. Auto Scaling nos permitiu uma grande economia; Com um pouco de matemática, a flexibilidade da AWS nos permitiu economizar ainda mais, alinhando nossa curva de demanda com a curva de utilização.
  • 52. Por que Auto Scaling? Escalabilidade Controle de CustosAumentar Disponibilidade