SlideShare uma empresa Scribd logo
1 de 56
Do 502 Bad
Gateway
ao recorde de
200 Ok
MaxMilhas
MaxMilhas
A MaxMilhas é um site de busca e compra de passagens
aéreas mais baratas. Aqui, as pessoas encontram as
melhores combinações de tarifas, com até 50% de
desconto. E isso é possível porque fazemos a emissão de
passagens com as milhas de quem quer vender.
Melhor agência de viagens online do Reclame Aqui
+2 milhões de passagens emitidas
Mais de 1,5 milhão de clientes cadastrados
Líder no segmento de venda de passagens aéreas emitidas com
milhas de terceiros
Inovação no setor de viagens do Brasil
Um dos maiores cases de bootstrapping do país
Crescimento de 3 dígitos por ano
Vencedora do Prêmio E-commerce Brasil 2018
5ª melhor empresa para se trabalhar em MG, segundo o GPTW
Ranking do LinkedIn Top Startups
Finalista do Prêmio ReclameAqui 2018
Hypergrowth
Contínuo crescimento
percentual na ordem de
centenas
Caio (Bigode)
DevOps
bhz
Analogic
Random
Cervejeiro
Ex jogador profissional
de dota 2
Poker
Bruno Paiuca (Paiuca)
Sysadmin
Bad Coder
DevOps
Palmeirense 🐽🐽🐽
‘Fan’ de tennis (R. Nadal)
E automobilismo
Desafio
Entregar uma plataforma
capaz de suportar alto
volume de acessos para
eventos de grande porte.
Entender o cenário de incerteza
Ser altamente escalável
Entregar com baixíssima latência
Atender expectativa do mercado
Atender expectativa dos usuários
Atender expectativa da empresa
study done by Amazon almost 10
years ago proved that, even then, a
100-millisecond decrease in
page-loading time translated to a
1% increase in its revenue.
According to surveys done by Akamai and
Gomez.com, nearly half of web users expect
a site to load in 2 seconds or less, and they
tend to abandon a site that isn’t loaded
within 3 seconds. 79% of web shoppers who
have trouble with web site performance say
they won’t return to the site to buy again and
around 44% of them would tell a friend if
they had a poor experience shopping online.
Vamos aos
Números
+10M requests por dia
+300 Instâncias EC2
+30 aplicações
+20 buscas por segundo
9 providers de busca de vôos
3 grandes Hubs de busca de
vôos
Mas e a volumetria de acessos
durante o hypergrowth que
estava por vir?
def stress_test(_target, _concorrency_users):
host_target= “https://” + _target
estressa_essa_parada(host_target,_concorrency_users)
incerteza = stress_test(“www.maxmilhas.com.br/search”,20000)
MaxMilhas
Resultados
do primeiro
teste de
carga:
O que
fazer??
Entender o cenário de cada
aplicação, principalmente aquelas
que sofreram no teste de carga
Por que elas capotaram
Volumetria de acessos
Tempo de resposta esperado
Inputs e Outputs
Frequência da mudança do Output
Impacto da reutilização do Output
Quick wins
Ações:
Cache a nível de HTTP
Server Side Include (SSI)
Controle de throttling
Proxy queue para os providers de busca de voos
ProxySQL
Anti-bot (30% do nosso acesso eram de bad bots)
Tunning de Kernel
Revisão de limites na AWS
Utilização de instâncias spots (spotinst) para escalar
mais com menor custo
Revisão de throughput de IOPS nos BD
Arquitetura
inicial
Arquitetura
proposta
Tunning
Kernel
vm.swappiness = 0
net.ipv4.ip_local_port_range=1024 65535
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_fin_timeout = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_fastopen = 1
Nginx
worker_rlimit_nofile 165535;
proxy_http_version 1.1;
proxy_set_header Connection "";
upstream app {
.
.
keepalive 64;
}
ProxySQL
SSI
server {
.
.
ssi on;
location /minhacontabox {
allow 127.0.0.1;
deny all;
proxy_pass https://app
}
location /home {
proxy_cache_key $scheme$host$uri
proxy_pass https://app
}
}
<html>
<body>
<!--# include file="/minhacontabox" →
<p>Minha HOME</p>
</body>
</html>
Proxy Queue
Controller
Controlar Max_conns -> Conexões Simultâneas
API Response Time
Queue Size
Active Connections
Fizemos outro
teste de carga
...
Ele foi muito melhor que o primeiro e
tínhamos alguns ajustes pontuais para
fazer
Mas o teste de
carga não
contemplava o
tal do BFF
Mas que raios é BFF?
Backend for Frontend, é uma aplicação que
acopla várias aplicações backend para se
comunicar com o frontend (manipulações e
transformações de dados), o que era essencial
para o funcionamento da mecânica das
campanhas
E lá vamos nós, ao terceiro
teste carga, agora com os
ajustes finais e com o BFF
Resultado:
eaí,
o que fazer
agora??
É O AXIOS DA BFF !!!!
TO FALANDO DESDE A
CONCEPÇÃO DO
NEGÓCIO!!
Trocamos a lib de
request do BFF e
fomos para o
quarto teste de
carga...
Resultado:
Estávamos
prontos para o
Hypergrowth
e deu bom!!!
Números do
Hypergrowth
MaxMilhas
+15M req por hora durante o pico
+4.5k req por segundo
+80 buscas por segundo em média
+1000% de usuários simultâneos
+3TB de informações de vôos
+23TB de dados trafegados
Perguntas?

Mais conteúdo relacionado

Semelhante a Do 502 BadGateway ao record de 200

Cloud iot novos requisitos software
Cloud iot novos requisitos softwareCloud iot novos requisitos software
Cloud iot novos requisitos softwareRoberto C. Mayer
 
Impulsionando startups com api publica
Impulsionando startups com api publicaImpulsionando startups com api publica
Impulsionando startups com api publicaFábio Rosato
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Edlaine Zamora
 
Android Debug Bridge para testes
Android Debug Bridge para testesAndroid Debug Bridge para testes
Android Debug Bridge para testesAndré Mendes
 
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital Jorge Biesczad Jr.
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresJoao Galdino Mello de Souza
 
Clientes Splunk Brasil
Clientes Splunk BrasilClientes Splunk Brasil
Clientes Splunk BrasilSplunk
 
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...akamud
 
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TIVIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TILuciano Condé
 
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
FISL16 ::  Escalabilidade - de uma máquina para múltiplos data centersFISL16 ::  Escalabilidade - de uma máquina para múltiplos data centers
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centersLeandro Moreira
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo SummitAmazon Web Services
 
Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoRicardo Longa
 
AutomationEdge Quality Nextech
AutomationEdge Quality NextechAutomationEdge Quality Nextech
AutomationEdge Quality NextechJorge Biesczad Jr.
 
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTfulOs 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTfulKleber Bacili
 
Audit¢rio 10 tendàncias em aplicaá‰es m¢veis - soledad dematteo
Audit¢rio 10   tendàncias em aplicaá‰es m¢veis - soledad dematteoAudit¢rio 10   tendàncias em aplicaá‰es m¢veis - soledad dematteo
Audit¢rio 10 tendàncias em aplicaá‰es m¢veis - soledad dematteofsolari
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas InternetLuiz Domingues
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningDevCamp Campinas
 

Semelhante a Do 502 BadGateway ao record de 200 (20)

Cloud iot novos requisitos software
Cloud iot novos requisitos softwareCloud iot novos requisitos software
Cloud iot novos requisitos software
 
Impulsionando startups com api publica
Impulsionando startups com api publicaImpulsionando startups com api publica
Impulsionando startups com api publica
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
Android Debug Bridge para testes
Android Debug Bridge para testesAndroid Debug Bridge para testes
Android Debug Bridge para testes
 
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
AutomationEdge Robotic Process Automation Quality Nextech Service Desk Digital
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
 
Clientes Splunk Brasil
Clientes Splunk BrasilClientes Splunk Brasil
Clientes Splunk Brasil
 
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
Indo além do Enterprise: fazendo aplicativos para usuários finais com Xamarin...
 
Construindo um sistema distribuido usando rest
Construindo um sistema distribuido usando restConstruindo um sistema distribuido usando rest
Construindo um sistema distribuido usando rest
 
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TIVIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
VIII Encontro de Parceiros Microsoft - Visão da Microsoft para Plataforma de TI
 
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
FISL16 ::  Escalabilidade - de uma máquina para múltiplos data centersFISL16 ::  Escalabilidade - de uma máquina para múltiplos data centers
FISL16 :: Escalabilidade - de uma máquina para múltiplos data centers
 
TDC 2015 Florianopolis
TDC 2015 FlorianopolisTDC 2015 Florianopolis
TDC 2015 Florianopolis
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
 
Big Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenhoBig Data como Serviço: da captura à visualização de dados com alto desempenho
Big Data como Serviço: da captura à visualização de dados com alto desempenho
 
Microsoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web ServicesMicrosoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web Services
 
AutomationEdge Quality Nextech
AutomationEdge Quality NextechAutomationEdge Quality Nextech
AutomationEdge Quality Nextech
 
Os 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTfulOs 7 Pecados Capitais na exposição de APIs RESTful
Os 7 Pecados Capitais na exposição de APIs RESTful
 
Audit¢rio 10 tendàncias em aplicaá‰es m¢veis - soledad dematteo
Audit¢rio 10   tendàncias em aplicaá‰es m¢veis - soledad dematteoAudit¢rio 10   tendàncias em aplicaá‰es m¢veis - soledad dematteo
Audit¢rio 10 tendàncias em aplicaá‰es m¢veis - soledad dematteo
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas Internet
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
 

Do 502 BadGateway ao record de 200

Notas do Editor

  1. outros players oneram os providers de busca de voos
  2. 502 nas comapanhias
  3. outros players oneram os providers de busca de voos
  4. outros players oneram os providers de busca de voos