Muito além da Black Friday: 6 ações para a TI se preparar para a alta demanda
Texto reúne estratégias para o departamento de tecnologia da informação lidar com este e outros picos de demanda.
Por Marcelo Christianini*
A Black Friday é um evento muito aguardado pelos consumidores uma vez que, em um curto espaço de tempo, eles possuem chances de realizar compras em condições mais vantajosas. Muitas dessas compras acontecem de forma digital, com campanhas e promoções incentivando os clientes a tomar uma ação imediata, em uma corrida pelo "wallet share" dos mesmos.
Para as empresas, uma oportunidade perdida na Black Friday provavelmente é uma oportunidade perdida para sempre. Qualquer demora ou erro no processo de compras pode levar o cliente a fechar negócio com um concorrente ou mesmo a desistir da compra.
-Leia mais: Cinco razões para migrar para a Oracle Cloud
Este cenário altamente demandante é um momento crucial para a operação do varejo, em particular para as áreas de TI (Tecnologia da Informação), pois o desempenho financeiro do negócio está atrelado diretamente à disponibilidade e capacidade das plataformas digitais em atender as grandes demandas desse dia.
Visando atender a este e outros picos de demanda, nossos especialistas desenvolveram algumas estratégias. Confira abaixo!
1) Capacidade para suportar o aumento de demanda
As visitas de clientes e demanda podem atingir 20 vezes ou mais o volume de acesso normalmente observados na plataforma, o que geralmente é suficiente para exaurir os recursos computacionais da empresa, resultando em perdas de vendas e insatisfação de clientes.
Para lidar com esse volume, geralmente é necessário provisionar capacidade extra de recursos como rede e processamento para endereçar o aumento esperado e inesperado de demanda.
Com o advento da computação em nuvem, como a Oracle Cloud Infrastructure (OCI), há um alto dinamismo e flexibilidade para fornecer essa aumento temporário de capacidade, pagando recurso somente pelo uso. Em nuvem é muito fácil provisionar mais containers, servidores, aumentar processadores, velocidade de armazenamento, colocar mais balanceadores, bancos de dados e muitos outros recursos.
O aumento de capacidade pode ser realizado de maneira antecipada e através do autoscaling, que é uma inteligência que ajusta rapidamente a quantidade de recursos computacionais em resposta à necessidade, conforme regras que podem ser adaptadas à sua necessidade de negócios. Ambas as estratégias podem ser utilizadas simultaneamente, pois alguns componentes da sua arquitetura podem responder bem ao autoscaling, enquanto que outros nem tanto.
Muitas grandes empresas escolhem aumentar a capacidade com dias ou semanas de antecedência ao pico sazonal de demanda, para estudar o comportamento da aplicação.
2) Utilização de caching de conteúdos, redução de elementos não cruciais
Outra maneira muito comum de aumentar sua capacidade de lidar com aumento de demanda é adicionando caching. O caching é uma tecnologia que armazena, geralmente em memória, imagens, dados e resultados que são frequentemente e repetidamente acessados.
Quando bem utilizado, ele reduz o tempo de resposta das requisições e reduz o uso de capacidade computacional para todos os componentes que precisariam processar a requisição.
Existem diversas formas de caches, como CDNs (Content Delivery Network) para conteúdos, caches para APIs, caches para aplicações e microserviços – como Redis, Memcached, e os próprios mecanismos de caching dentro das bases de dados.
Por exemplo, o Oracle Autonomous Database automaticamente otimiza para responder mais rapidamente às requisições. Uma boa prática é provisionar os caches com antecedência, para verificar métricas importantes como hit ratio que desejamos (geralmente maior que 90%) para que a ferramenta tenha efeito desejado.
Uma outra estratégia que pode ser empregada é a redução temporária de alguns elementos custosos ou pesados para o seu site e aplicação. Limpar bem scripts, otimizar imagens, reduzir uso de APIs e algoritmos complexos são estratégias comuns. Um exemplo é verificar se durante a Black Friday o cálculo dinâmico de preços será utilizado, ou até mesmo eliminar personalização da sua página principal. Pode-se deixar a landing page da Black Friday mais leve que as outras, com menos componentes, pois será a página mais acessada.
Finalmente, existem técnicas de controle de fluxo, que podem ser empregadas em diferentes camadas – inclusive na entrada do seu site. É parecido com o conceito de criar a fila para entrar em lojas durante grandes lançamentos, e você deixa somente uma quantidade máxima de clientes entrar por vez. Entretanto este recurso pode ser mais “invasivo” para a experiência do cliente e deve ser utilizado com cautela.
3) Autonomia dos sistemas de vendas e atendimento
A prioridade em um período de alta demanda é conseguir atender bem os seus clientes, independente do que aconteça. Atualmente muitas APIs são utilizadas nos sites e aplicações, sejam internas ou externas, e um equívoco muito comum é não considerar a possibilidade que elas possam ficar lentas ou até indisponíveis, exatamente quando você mais precisa.
APIs ou serviços de validação de CEP, scoring de riscos, crédito, frete, checagens de diversos tipos ou até mesmo outras menos importantes podem afetar diretamente o fluxo de navegação de seus clientes.
Existem técnicas de microserviços como circuit breakers que permitem identificar uma lentidão ou indisponibilidade e que uma ação precisa ser tomada, para talvez contornar o uso dessa API / serviço ou usar algum alternativo.
Uma possibilidade, se você não tiver um fornecedor alternativo ou como retirar do seu fluxo, pode ser criar e deixar provisionado um “dummy” para simular uma resposta que permita o cliente seguir com a compra.
4) War Room e Estabelecimento de Observabilidade e Diagnóstico
Qualquer época de alta demanda ou promoção de vendas requer uma visão rápida, abrangente e precisa da operação. Em caso de problemas, o tempo de resposta dos times de suporte e atendimento são essenciais, pois uma resolução de horas pode causar grande perda de receita e comprometer a imagem da empresa. Por conta disso, é bastante comum ter todos os squads atentos, monitorando e analisando todos os aspectos, logs, métricas e eventos.
Muitas empresas provisionam ferramentas extras para entender a entrada dos clientes, seus fluxos de navegação, eventuais quebras de pipeline e tempos de respostas de tudo: páginas, APIs, micro-serviços, caches, servidores, banco de dados.
O Oracle Management Cloud, por exemplo, permite olhar de forma unificada o que acontece nos diferentes componentes da sua aplicação, permitindo entender o desempenho e encontrar rapidamente a causa-raiz de uma lentidão ou falha. O tempo para encontrar o problema é tão importante quanto o tempo para solucioná-lo.
5) Planos de Resiliência para eventuais falhas de componentes
Mesmo com todo o planejamento e monitoramento, algo pode acontecer de forma inesperada durante um pico de demanda. Um erro de operação, um bug inédito em software ou outras tantas possibilidade que estão fora de controle. O objetivo neste caso não é falar de técnicas de alta disponibilidade e disaster recovery, mas sim de planos alternativos para manter sua capacidade de receber pedidos.
Uma boa prática é de sempre conseguir a distribuição da sua aplicação por diversos data centers (Availability Domains), em diferentes regiões. A Oracle Cloud Infrastructure permite flexibilidade de uso em quaisquer das +20 Regiões distribuídas por todo o mundo com mais SLAs de missão crítica. Caso não consiga empregar este tipo de arquitetura, é aconselhado ter planos de mitigação para eventuais indisponibilidades.
Como exposto anteriormente, pode-se preparar uma versão mais “estática” ou reduzida do seu site, API ou aplicação que possa ser rapidamente provisionado e roteado, em caso de intercorrência. Enquanto o suporte trabalha para rapidamente restabelecer seus serviços, o cliente continua dentro de seu site.
6) Testes de Desempenho para averiguar limites e gargalos
Por fim, mas não menos importante, é a realização dos testes de tudo que falamos neste blog post. Testes realizados com semanas ou até meses de antecedência vão fornecer insights sobre o comportamento e fraquezas da sua aplicação, site, APIs e banco de dados quando submetidos à situação de stress.
Novamente, com a Oracle Cloud Infrastructure a realização desses exercícios fica muito dinâmica pois pode-se subir a capacidade temporariamente, restabelecer serviços e ainda pagar apenas pelo tempo utilizado.
É a oportunidade de entender e isolar os gargalos de sua aplicação, realizar o tuning de algoritmos e queries, além de verificar os componentes que respondem bem ao autoscaling e a falhas.
Recomenda-se fazer testes destrutivos, utilizando a idéia apresentada em Chaos Engineering que lhe permitirá construir uma aplicação mais resiliente, realmente derrubando micro-serviços, bancos, apis, containers, servidores, caches e outros componentes utilizados em sua arquitetura. Conforme a sua maturidade com tema, o princípio indica planejar e realizar experimentos de Chaos em produção, com estratégia para contenção do impacto através de menores testes possíveis que te tragam aprendizado.
Espero que essas estratégicas ajudem você a se preparar e que tenha uma excelente Black Friday. E conte com a Oracle para ajudar nos próximos picos de demanda!
*Marcelo Christianini é Diretor Sênior de Cloud Engineering na Oracle