Observações da Blackfriday 2018
Este ano fiz algumas observações sobre a Blackfriday olhando de fora, por curiosidade relacionada com o trabalho que já fiz com empresas de e-commerce. Eu gosto de observar operações de larga escala e estes eventos são interessantes para aprender e entender o impacto de sistemas sob cargas dificeis de estimar.
Com alguns robôs que navegam nestes sites simulando operações de busca, ver produtos, calcular frete, colocar produtos em carrinhos e outros que só medem a disponibilidade da maneira tradicional, coleto métricas em um banco de timeseries.
Em 2017 publiquei um post sobre observabilidade que explica a diferença entre estar 100% up e ser funcional, uma divisão que nem sempre é clara e pode fazer diferença em estratégias de tecnologia durante o ano.
A Blackfriday tem duas entradas grandes: uma próxima das 21h na quinta feira e meia noite, que é a virada tradicional simulando abertura de lojas. Durante a semana todas as plataformas já experimentam picos de carga.
O investimento em publicidade que atrai publico de televisão e portais cria um efeito de estouro de manada no acesso, justificando os investimentos das empresas de e-commerce em medidas como adotar uma CDN, aumentar, reservar capacidade de computação e rede e outras técnicas para proteger as "landing pages".
Com o crescimento da navegação móvel outro vetor de trafego apareceu forte, push notifications. As pessoas estão sempre atenta aos celulares e quando uma notificação sobre promoções chega o acesso é imediato.
Na entrada das 21h do dia 22 de Novembro eu publiquei um gráfico da minha monitoração apontando que a latência já estava alta. Vou explicar o motivo.
Esta monitoração navega os sites com listas de produtos e calcula frete e disponibilidade para várias regiões do Brasil. Este é um teste interessante pois frete depende de tantas regras que a maioria das empresas reluta em usar artifícios como caching. Algumas destas regras tem a ver com disponibilidade e prometer a entrega de algo que não é possível é um problema para as empresas.
Ao mesmo tempo navegando nas paginas de entrada a lentidão não era sempre visível mas estava lá — e é um fato conhecido no meio de e-commerce o resultado de estudos da Amazon e Walmart que falam sobre a relação entre baixa latência e conversão.
Usei os dados do Walmart para ilustrar mas todos players apresentaram isso. Não é um problema, só uma constatação.
Eu fechei 3 compras em sites diferentes e notei que estavam bem lentos, um deles pedindo para repetir o pedido. A confirmação da compra, email ou pagina de confirmação demorou em dois deles. Este é um efeito colateral — se o backend que gerencia as compras é responsável pela função de envio de email, estes podem se atrasar sob uma carga anormal.
E pode acreditar — já vi até stored procedure em banco de dados mandando email e plataformas grandes caindo porque os clientes que fecharam as compras ficaram dando reload nos seus pedidos no site até terem certeza que seu cartão passou. Outro vetor de acesso pesado que se depender dos mesmos componentes que fazem a venda vão tirar o player do ar.
Já era tradição no Brasil que pelo menos 3 players principais ficassem fora do ar espetacularmente por motivos diversos que eu gosto de chamar de "devopadas" mas ano passado parece que implementaram medidas para degradar sua performance ao invés de medidas emergenciais para lidar com o aumento do trafego.
Este ano aparentemente foi melhor, eu não cheguei a ver as "salas de espera", que pessoalmente ficava frustrado de serem usadas.
O gráfico acima mostra uma série de picos acima da marca de 5s para o calculo de frete. É um tempo alto, e é um sinal que outros sistemas dependente destes dados ou features podem estar sob pressão. Os picos estão marcados no percentil 90 e em max (100%).
Eu recomendo esta palestra sobre latência do Gil Tene para entender porque medir latência desta forma não é interessante se você quer se defender falando que "90% dos nossos usuários estão vendo tempos abaixo de 5s".
Se comparar com as amostras de monitoração da pagina principal
Olhando para a pagina aonde o trafego entra, são poucos picos acima de 1s ao mesmo tempo que muita coisa acontecia nos bastidores.
Fica minha admiração pelas pessoas que operam estas Blackfridays, que fazem mágica para lidar com inesperadas e grandes mudanças de planos nas semanas próximas, que passam o ano pedindo mudanças nos sistemas mas tem que esperar até setembro ou outubro para consegui-las, que tem que ouvir comparações com empresas que tem os mesmos problemas, que passa vergonha com devops, que tem que trabalhar enquanto a empresa está fazendo desfile de samba ou festa do Star Wars nerds e tudo mais. Vocês são bons !