Como uma estratégia de cache de trinta segundos utilizando Azure API Management e .NET diminuiu as requisições na origem em 38%.
Eventos como a Black Friday são conhecidos por trazerem um aumento significativo no tráfego de um e-commerce. Essa explosão de requisições pode sobrecarregar os sistemas e causar instabilidades, impactando negativamente a experiência do usuário e consequentemente na taxa de conversão da loja virtual. Como a utilização de cache diretamente no Azure API Management pode ser uma estratégia eficiente para aliviar a pressão no banco de dados e garantir a estabilidade de uma API de um e-commerce durante períodos de alto tráfego, trazendo benefícios tanto em termos de recursos computacionais quanto para o negócio em si.
Existem diversas opções de serviços e plataformas igualmente eficientes para implementar a estratégia de cache, além do Azure API Management. Uma opção que destaco é o uso de uma CDN (Content Delivery Network), que também oferece excelentes resultados em termos de entrega eficiente.
Resumo Executivo
- Eventos como a Black Friday podem sobrecarregar os sistemas de um e-commerce, impactando negativamente a experiência do usuário e a taxa de conversão.
- A utilização de cache no Azure API Management pode ser uma estratégia eficiente para aliviar a pressão no banco de dados e garantir a estabilidade durante períodos de alto tráfego.
- Benefícios técnicos incluem redução da carga nos servidores de origem, melhoria do tempo de resposta e maior eficiência dos recursos computacionais.
- Benefícios para o negócio incluem maior disponibilidade da loja virtual, melhoria da taxa de conversão dos clientes, redução de custos operacionais e capacidade de lidar com picos de tráfego sazonais.
Como preparar um e-commerce para Black Friday?
Ninguém está preparado para ter sua loja online indisponível na Black Friday, ou melhor, ninguém se prepara para falhar na Black Friday. Sem dúvidas, este é um dos erros mais cometidos pelos varejistas online.
São 12 anos de Black Friday no Brasil e muitos varejistas online não aprenderam a lição de que é necessário planejamento para ter um bom evento. Quando falo de planejamento, não me refiro a começar dois meses antes da Black Friday ou no dia anterior, como muitos decidem.
Muitos varejistas utilizam a semana ou até mesmo o mês para diluir as vendas e, eventualmente, reduzir a possibilidade de queda do site. Afinal, não se aposta todas as fichas de uma só vez, o que resultaria em perda da meta do mês ou até mesmo do ano.
Compreendendo cache
O uso de cache é uma estratégia importante para melhorar o desempenho e a eficiência de um sistema. Ao considerar a implementação do cache, diversos fatores devem ser levados em conta. É fundamental observar a latência e a eficiência de uma dependência com uma taxa de solicitação específica, bem como identificar padrões de solicitação irregulares que podem levar ao controle da utilização ou hot-key/hot-partition. Além disso, a escolha do tempo de expiração adequado, o tamanho do cache e a política de remoção dos itens são considerações cruciais.
Existem diferentes tipos de caches, como os caches locais implementados na memória do processo e os caches externos. Os caches locais são mais simples de implementar, porém podem apresentar problemas de consistência e sobrecarga nos serviços dependentes. Já os caches externos reduzem esses problemas, mas exigem maior complexidade operacional. A escolha entre caches em linha e caches auxiliares também é importante, levando em conta a transparência do cache, a disponibilidade e a carga nos serviços dependentes.
Em relação à expiração do cache, é necessário determinar o tempo de vida útil dos objetos armazenados com base nos requisitos do cliente e na dinâmica dos dados. Além disso, é essencial considerar a segurança do cache, protegendo os dados em trânsito e prevenindo ataques de envenenamento ou temporização. O monitoramento contínuo do desempenho do cache e a avaliação das métricas são essenciais para garantir sua eficácia e identificar possíveis problemas.
O que é o Azure API Management e qual é a responsabilidade do cache?
O Azure API Management é um serviço gerenciado da Microsoft que atua como um ponto de entrada para as APIs de um sistema. Ele fornece recursos avançados de gerenciamento, segurança e monitoramento para as APIs. Dentro do Azure API Management, existe uma funcionalidade muito importante chamada de cache. O cache permite armazenar temporariamente as respostas das requisições feitas às APIs, de forma a reduzir a carga no backend e melhorar o desempenho geral do sistema.
O cache funciona da seguinte maneira: quando uma requisição é feita para a API, o Azure API Management verifica se a resposta correspondente está armazenada em cache. Se sim, a resposta é retornada imediatamente a partir do cache, evitando a necessidade de processar a requisição novamente no backend. Essa estratégia de cache traz vários benefícios. Em primeiro lugar, ela reduz a latência, já que as respostas podem ser entregues mais rapidamente, uma vez que não é necessário acessar o backend toda vez. Isso resulta em uma melhor experiência do usuário, com tempos de resposta mais rápidos.
Além disso, o cache ajuda a reduzir a carga no backend, como o banco de dados, por exemplo. Com as respostas sendo armazenadas em cache, menos requisições precisam ser processadas pelo backend, aliviando a pressão sobre os recursos computacionais. Isso é especialmente importante em eventos de alto tráfego, como a Black Friday, em que o volume de requisições pode ser muito alto.
No Azure API Management, é possível configurar o cache de acordo com as necessidades específicas da API. É possível definir o tempo de expiração do cache, ou seja, por quanto tempo a resposta deve ser armazenada antes de ser considerada inválida. Também é possível controlar a capacidade de armazenamento do cache e definir regras de invalidação para garantir que as respostas em cache sejam atualizadas quando necessário.
A estratégia de cache por traz da API de disponibilidade de um produto
Adotamos uma abordagem de cache anterior ao servidor de origem, que nos permite aliviar a carga e a pressão sobre o servidor. Embora não utilizemos especificamente o Redis como cache, implementamos um conceito de cache eficiente que nos permite armazenar temporariamente os dados frequentemente acessados antes que eles cheguem ao servidor. Essa estratégia nos ajuda a otimizar o desempenho do sistema, reduzindo a necessidade de processamento repetitivo no servidor de origem e melhorando a velocidade de resposta para os usuários.
A API de consulta de disponibilidade de produto em estoque é altamente requisitada pelo e-commerce, com uma média de 600 requisições por segundo em dias normais. É importante ressaltar que Google Merchant, sellers de marketplaces, lojas físicas e vários outros, fazem uso dessa API constantemente. Durante a Black Friday, o acesso à API aumenta para aproximadamente 4000 requisições por segundo.
Quando ativamos o cache, conseguimos reduzir significativamente a carga nos servidores. Em média, passamos de aproximadamente 4000 requisições por segundo diretamente nos servidores para pouco menos de 3000 requisições, considerando que o tempo de cache é de 30 segundos. Se houver uma quantidade ainda maior de acessos, a tendência é que a carga nos servidores diminua ainda mais à medida que o cache é ampliado.
Essa abordagem de otimização do cache é conhecida como planejamento de capacidade na Site Reliability Engineering. O planejamento de capacidade envolve dimensionar adequadamente os recursos de um sistema para lidar com as demandas de tráfego, garantindo que a infraestrutura seja capaz de suportar a carga sem comprometer o desempenho ou a estabilidade.
As métricas essenciais a serem consideradas nos servidores de origem são o tempo de resposta e o número total de requisições. Além disso, é importante destacar que há uma tendência de diminuição dos recursos computacionais, como CPU e memória, uma vez que as requisições diretas aos servidores de origem serão reduzidas.
Quais foram os benefícios técnicos ao adotar essa estratégia de cache?
A implementação de um cache, como o Azure API Management, ofereceu uma série de benefícios técnicos para a infraestrutura do sistema. Em primeiro lugar, ao reduzir a carga direta nos servidores de origem, há uma diminuição significativa no número de requisições direcionadas a esses servidores. Isso resulta em uma redução da carga computacional, permitindo que os servidores de origem processem as solicitações restantes de maneira mais eficiente e com recursos computacionais menos exigentes, como CPU por exemplo.
Além disso, o uso de um cache ajuda a melhorar o tempo de resposta do sistema como um todo. Ao armazenar temporariamente os dados frequentemente solicitados, o cache pode fornecer respostas mais rápidas às requisições subsequentes, eliminando a necessidade de acessar os servidores de origem para obter os dados novamente. Isso resulta em tempos de resposta menores e uma experiência mais ágil para os usuários finais.
Como decisões técnicas por exemplo, estratégia de cache, pode ajudar o negócio a obter melhores resultados?
Ao adotar um sistema de caching, a disponibilidade da loja virtual é amplamente beneficiada. Isso significa que o site permanecerá no ar mesmo durante campanhas que tragam um aumento significativo de tráfego. A estabilidade proporcionada pela utilização do cache garante que os clientes tenham acesso contínuo aos produtos, evitando quedas no sistema que possam prejudicar a experiência do usuário e resultar em perda de vendas.
Além da disponibilidade, outro benefício fundamental é a melhoria da taxa de conversão dos clientes. Com um sistema de caching eficiente, o tempo de resposta do site é reduzido, o que permite que os clientes naveguem e concluam suas compras de forma mais rápida e fácil. Ao oferecer uma experiência de compra ágil e fluida, as chances de abandono de carrinho são reduzidas, resultando em uma maior taxa de conversão.
Além desses benefícios, há outros aspectos positivos que podem ser destacados. Um deles é a redução dos custos operacionais, uma vez que o cache ajuda a diminuir a carga nos servidores de origem, permitindo uma melhor utilização dos recursos computacionais disponíveis. Isso pode resultar em economia de custos relacionados à infraestrutura de servidores adicionais e ao consumo de energia.
Outro benefício é a capacidade de lidar com picos de tráfego sazonais, como na Black Friday ou outras datas promocionais. Com o cache em operação, o sistema é capaz de suportar uma maior demanda de acessos sem comprometer seu desempenho ou disponibilidade. Isso garante que o e-commerce esteja preparado para aproveitar ao máximo essas oportunidades de venda sem sofrer com problemas de instabilidade ou lentidão.
Conclusão
A utilização de cache no Azure API Management é uma estratégia eficiente para preparar um e-commerce para eventos de alto tráfego, como a Black Friday. Essa abordagem oferece benefícios técnicos, como redução da carga nos servidores de origem e melhoria do tempo de resposta, permitindo que os recursos computacionais sejam utilizados de forma mais eficiente. Além disso, traz benefícios para o negócio, incluindo maior disponibilidade da loja virtual, melhoria da taxa de conversão dos clientes, redução de custos operacionais e capacidade de lidar com picos de tráfego sazonais. Ao adotar essa estratégia, os varejistas online podem garantir uma experiência do usuário satisfatória, evitar perdas de vendas e obter melhores resultados durante eventos de grande demanda.
FAQ: Perguntas Frequentes
1. O que é cache?
Cache é uma estratégia que consiste em armazenar temporariamente os dados frequentemente acessados para melhorar o desempenho e a eficiência de um sistema.
2. Como o cache pode ajudar a preparar um e-commerce para Black Friday?
Ao utilizar cache, é possível reduzir a carga nos servidores de origem, melhorar o tempo de resposta e garantir a estabilidade do sistema durante períodos de alto tráfego, como a Black Friday.
3. Quais são os benefícios técnicos da estratégia de cache no Azure API Management?
Os benefícios técnicos incluem redução da carga nos servidores de origem, melhoria do tempo de resposta do sistema e maior eficiência dos recursos computacionais.
4. Quais são os benefícios para o negócio ao adotar a estratégia de cache?
Os benefícios para o negócio incluem maior disponibilidade da loja virtual, melhoria da taxa de conversão dos clientes, redução de custos operacionais e capacidade de lidar com picos de tráfego sazonais, como na Black Friday.
5. Como o cache é configurado no Azure API Management?
No Azure API Management, é possível configurar o tempo de expiração do cache, controlar a capacidade de armazenamento e definir regras de invalidação para garantir que as respostas em cache sejam atualizadas quando necessário.