Logo E-Commerce Brasil

Como garantir um sistema estável na Black Friday

Por: Bruno Stemposki

Engenheiro formado pelo ITA com 20 anos de experiência em TI desenvolvendo soluções robustas, escaláveis e de alta disponibilidade para processamento de pagamentos.

O ano de 2020 foi chave para o e-commerce. Vimos 13 milhões de consumidores realizando a sua primeira compra online, assim como negócios reorganizando as prioridades para lançar operações digitais em tempo recorde. Mas, apesar de todos os aprendizados, é só nos aproximarmos de novembro para que varejistas de todos os tamanhos voltem a se perguntar: será que meu negócio está pronto para a Black Friday?

E chegar a uma resposta confiável para essa pergunta é algo bastante complexo. Isso porque na maioria das vezes o raciocínio precisa levar em conta os mais diversos fatores, como disponibilidade de produtos, logística de envio, além de um marketing bem feito com ofertas relevantes para a data. Contudo, ainda que todos esses pontos sejam importantes para o sucesso de uma estratégia de Black Friday, contar com uma boa infraestrutura de TI é vital para manter a estabilidade das operações do e-commerce.

É inegável que a complexidade aumenta quando há um grande volume de compras concentradas em um curto espaço de tempo. Por isso, não basta investir em servidores e esperar que tudo corra perfeitamente. É preciso também olhar com cuidado para a parte de arquitetura de sistemas, incluindo a estratégia de utilização de servidores e armazenamento de dados.

Se para alguns pode parecer excesso de zelo, vale destacar que uma experiência negativa pode afastar novos clientes e resultar em perda de vendas. Então, trago aqui alguns princípios de arquitetura que todo negócio precisa levar em conta para não ficar fora do ar e entregar uma boa experiência na data mais concorrida do varejo.

Dividir para conquistar

A popularização dos servidores em nuvem é de grande ajuda para os varejistas em períodos como a Black Friday e o Dia das Mães. Com o autoscaling, é possível aumentar e diminuir os recursos computacionais sendo utilizados pelo sistema de forma automática, levando em conta a demanda dos usuários. Ou seja, quando muitos clientes acessam e compram online, o e-commerce automaticamente aciona mais servidores para lidar com aquele pico. Mas de nada adianta contar com a tecnologia sem que haja uma boa estratégia de arquitetura por trás.

Um primeiro ponto importante é a forma como se escalona a utilização de servidores, que pode ser feita de forma vertical e horizontal. Na primeira, há uma adição direta de poder de processamento (tanto por CPU quanto por memória RAM) no servidor utilizado. Essa é a forma mais tradicional de escalonamento, já largamente implementada antes da adoção em massa de servidores em nuvem. Na outra, a abordagem é buscar aumentar o número de servidores, e assim dividir a carga de trabalho.

Para ficar mais claro, podemos fazer uma analogia com os caixas de um supermercado. O escalonamento vertical seria o mesmo que manter um só caixa aberto, mas contratar alguém mais rápido para realizar as cobranças. Já o horizontal corresponderia a abrir mais caixas para absorver a demanda, tendo vários processos correndo em paralelo e podendo recrutar mais funcionários sempre que necessário. Por isso, o escalonamento horizontal é o mais indicado: além de ser mais barato, ele diminui a dependência de um só servidor.

Ainda no que diz respeito à arquitetura, além do escalonamento horizontal também é importante analisar como você está guardando as informações de navegação dos consumidores. O melhor é que essas informações não sejam todas armazenadas em um servidor específico, mas sim distribuídas em diferentes sistemas. Assim, se houver um problema com um servidor, você não corre o risco de perder todas as compras em andamento neste servidor específico.

Vale analisar quais dados não são tão sensíveis e podem ser guardados em cookies do lado do comprador, por exemplo, e quais são mais complexos e precisam ser armazenados do seu lado. Em termos técnicos, é sempre melhor optar por uma arquitetura que seja stateless, e não statefull.

Armazenamento inteligente

Todo e-commerce conta com uma série de informações que precisam ser armazenadas. Mas quando tudo é guardado no backend, parte do sistema que é mais difícil escalar, é provável que surja um gargalo na operação.

Existem dois passos que podem ajudar a evitar esse tipo de problema. O primeiro é analisar quais dessas informações são estáticas, ou seja, não mudam. Aqui entram landing pages, imagens e outros tipos de arquivo. Para não sobrecarregar o backend sem necessidade, vale procurar serviços especializados em cacheamento, os chamados CDNs (content delivery network, na sigla em inglês), que entregam isso de forma fluída e deixam você se concentrar nas informações mais relevantes para o seu negócio.

Um segundo passo seria então identificar quais das informações dinâmicas são frequentemente atualizadas e quais são mais estáveis. A dica é guardar as últimas no sistema de frontend mesmo, e só manter as primeiras no backend. Assim você diminui a dependência dos servidores de backend e evita eventuais gargalos.

Estratégia para evitar gargalos

Imagine um sistema de engrenagens encadeadas. À primeira vista, o processo parece eficiente, certo? Mas do ponto de vista de sistemas, ele é falho. Isso porque se uma das engrenagens emperrar, o processo inteiro é interrompido.

O mesmo funciona para o e-commerce, principalmente em datas de pico de demanda. O melhor nesses casos é ter uma operação desacoplada que funcione com filas de processamento: quando uma termina, começa a outra. Se há um problema em uma das partes, as outras não são afetadas.

Vamos imaginar que um e-commerce tenha problemas com o processamento de pagamentos na Black Friday. Em um sistema organizado como as engrenagens, tudo pararia: os consumidores sequer conseguiriam fazer pedidos e o site poderia até sair do ar. Já no segundo modelo, a empresa conseguiria continuar a receber e guardar os pedidos, que entrariam em uma fila para serem processados depois que o consumidor concluísse a compra. Assim, a experiência de compra não seria prejudicada e a equipe de infraestrutura conseguiria resolver o problema sem precisar lidar com o caos de um eventual site fora do ar.

Monitorar, monitorar e monitorar

Nas semanas que antecedem a Black Friday, é normal que toda a operação do e-commerce passe por uma lupa. Mas nunca é demais reforçar a importância do monitoramento em tempo real, inclusive da performance dos servidores. Pode parecer óbvio, mas por mais que você tenha uma equipe experiente e siga as melhores práticas de arquitetura, treino é treino, jogo é jogo. Ou seja, só monitorando tudo de perto você consegue fazer o ajuste fino e identificar problemas de performance, que podem ser causados por uma alteração recente na plataforma.

Nesse sentido, é importante ir além do uso de CPU e da memória RAM. Vale acompanhar também os processos, a quantidade de transações recebidas, as etapas que estão com boa performance, o número de pedidos autorizados e eventuais quedas. Imprevistos podem acontecer tanto dentro do seu sistema quanto com parceiros, e só fazendo do monitoramento também uma prioridade é possível resolver essas questões rapidamente.

Temos que lembrar que, para o consumidor, muitas vezes a experiência de compra se resume em sucesso ou frustração. Por isso, a arquitetura de sistemas é parte fundamental da equação e deve ser levada em conta com antecedência, para que mudanças sejam realizadas em tempo hábil. Afinal, depois de tanto trabalho de planejamento, não dá para perder vendas nem afastar clientes devido à instabilidade do sistema.