Disponibilidade e performance na Black Friday
A Black Friday é o segundo período mais importante para o comercio eletrônico brasileiro, perdendo em nível de faturamento apenas para o natal. Em 2019, as vendas nos 4 dias de Black Friday foram de R$ 3,2 bilhões segundo a revista Veja, aumento de 23,6% em relação ao ano anterior.
Ainda que em 2020 o comercio em geral tenha tido baixas devido ao COVID-19, a expectativa é que a Black Friday deste ano tem potencial de vendas ainda acima do ano anterior, sendo assim, é esperado que neste ano de 2020 a Black Friday no Brasil siga crescendo em faturamento.
Tecnicamente, a Black Friday é um grande desafio para equipes de infraestrutura de TI que precisam preparar suas aplicações para lidar com o aumento expressivo de tráfego da data, iniciando seu planejamento (na maioria dos casos) com meses de antecedência, regrados a testes de volumetria e escalabilidade.
Normalmente, times de infraestrutura buscam desenvolver aplicações escaláveis e que possam se adequar de acordo com o volume de tráfego e requisições que suas aplicações recebem, sempre buscando otimizar custos. É o desafio de operar algo complexo com o menor custo possível.
Neste artigo, falaremos um pouco sobre a aplicação de cache e CDN em comércios eletrônicos com o objetivo de apresentar soluções para lidar com o alto volume de tráfego da data.
Como a CDN pode ajudar na Black Friday:
Utilizar um recurso de CDN é essencial, principalmente se seu e-commerce tem a expectativa de receber um alto volume de tráfego durante a Black Friday.
Basicamente, a CDN faz cache de aplicações e passa a entrega-las através de múltiplos pontos, acelerando a entrega (por reduzir latência) e dando mais escalabilidade para aplicações. Caso queira conhecer mais sobre CDN, recomendamos a leitura dessa pagina – O que é CDN
Por exemplo, uma aplicação convencional normalmente é composta por um servidor de hospedagem que está preparado para receber um determinado volume de tráfego. Se eventualmente se este site recebe mais tráfego do que está preparado, haverá problemas de lentidão ou até mesmo, queda da infraestrutura.
Agora, se pensarmos nesta mesma infraestrutura utilizando uma CDN, este mesmo site passa a ser entregues através de outros pontos de distribuição, trazendo maior redundância para a infraestrutura de hospedagem e dando mais escalabilidade para a aplicação, uma vez que este site não precisa mais lidar com todas as requisições, já que boa parte será absorvida pelo serviço de CDN.
Porém, é fundamental entender que apenas utilizar uma CDN não é sinônimo de escalabilidade, afinal, por padrão, a grande maioria dos serviços de CDN faz cache de assets estáticos (imagens, js, css…), lendo automaticamente a extensão dos objetos, o que pode reduzir o uso e largura de banda de sua aplicação, mas ainda será necessário que elementos dinâmicos (como html, json…) sejam entregues diretamente de sua infraestrutura de hospedagem, sendo assim, para efetivamente dar mais escalabilidade para seu comercio eletrônico com uma CDN, é fundamental implementar estratégias de cache dinâmico.
Cuidados para implementar cache dinâmico em e-commerce:
Em boa parte dos casos, implementar cache dinâmico em um e-commerce é algo simples de ser feito, e na grande maioria dos casos, pode ser resolvido através de regras de cache (aqui na GoCache, chamamos de Smart Rules).
Primeiro, é necessário avaliar como seu site lida com carinhos de compras, áreas logadas, checkout de pagamento, etc.. É necessário nesta primeira etapa avaliar todo o conteúdo que pode ser “sensível a cache”.
Um exemplo são aplicações em Magento 1 em que normalmente os usuários logados recebem os cookies frontend e adminhtml, sendo assim, uma boa prática seria definir na CDN que qualquer usuário com esses cookies não recebam itens dinâmicos em cache. Outro exemplo, ainda pensando em Magento 1 é excluir alguns patchs do cache, como por exemplo /add /administrator /customer /index.php /cart.
Já as aplicações em Magento 2, normalmente utilizam carrinhos em ajax e que podem ser configurados para não fazer cache por padrão, trazendo ainda mais eficiência de cache para essas aplicações, mas ainda assim, é aconselhável entender os cookies que identificam sessões e usuários, como por exemplo admin, PHPSESSID e private_content_version que normalmente são excluídos do cache e os patchs /checkout /sales /admin /customer /rest /intelipost_quote /wishlist /giftcard /reward /review /newsletter que normalmente são configurados para não fazer cache.
Outro CMS bastante utilizado é o WordPress, mais especificamente em sua versão Woocomerce, destinada para e-commerce.
Por padrão, o Woocomerce inseri alguns cookies sempre que um usuário coloca algo no carinho, como por exemplo, woocommerce_cart_hash e woocommerce_items_in_cart, sendo assim, uma boa prática para essa plataforma é deixar de fazer cache dinâmico para usuários com esses cookies. Além disso, também é interessante excluir de cache áreas mais sensíveis, como /carrinho /cart /minha-conta entre outros.
Basicamente, precisamos avaliar cada aplicação para entender seu funcionamento, evitando que informações sensíveis sejam cacheadas, comprometendo a experiência de seus usuários finais.
Além do poder de escala, a CDN também pode acelerar seu e-commerce:
Deve-se levar em consideração que além do aumento de disponibilidade e escalabilidade que a CDN pode trazer para sua aplicação, ela também pode contribuir bastante para que seu e-commerce ganhe performance de entrega.
Conforme citamos anteriormente, o cache dinâmico é um ótimo recurso para trazer escala, porém, ele também pode ajudar na frente de performance, já que o usuário final receberá o conteúdo de seu site com mais rapidez, através de uma entrega de capilaridade.
Por exemplo, vamos supor que sua infraestrutura de hospedagem esteja em São Paulo, mas seu site recebe tráfego de todas as partes do país. Neste caso, todos os acessos precisam obrigatoriamente ser direcionado até São Paulo, aumentando latência e o volume de saltos. Agora, se pensarmos em uma distribuição via CDN com múltiplos pontos de presença no país, sua aplicação deve ser entregue com mais velocidade, já que a latência de entrega será menor.
É muito comum ver e-commerces que aplicam cache dinâmico, reduzir suas métricas de TTFB, Start Render e Load Time.
Esperamos que nossas dicas possam ajudar seu site a ter mais escalabilidade durante a Black Friday. Caso tenha qualquer dúvida, por favor, deixei seu comentário logo abaixo.
&
new RDStationForms(‘newsletter-artigos-blog-842f5cbb60b7ed599409’, ‘UA-47041721-1’).createForm();;