O blog da AWS

Como o Uffa® diminuiu em 30 vezes o tempo de processamento utilizando soluções serverless da AWS

Por Helton Alves, Phelipe Fabres, Danilo Muniz e Pedro Pisa

O Uffa® é uma startup SaaS – B2B Enterprise, especializada em acionamento de clientes associada à gestão de recebíveis. A comunicação digital personalizada com base no comportamento e nas características contratuais, combinada com alto poder de escalabilidade e automação, permite às empresas reduzir os custos de campanhas, aliviar a carga sobre as equipes internas e aumentar os resultados operacionais, sem prejudicar o relacionamento com os clientes.

Neste blogpost, vamos detalhar como o Uffa, em parceria com a e-Core, conseguiu diminuir em 30 vezes o tempo de processamento na geração e disparo de meios de pagamento em larga escala, além de reduzir 10% o custo total em cloud após migração para a AWS.

Introdução

Na gestão do recebível e no acionamento aos clientes de forma geral, as empresas têm dificuldade em automatizar o processo associando estratégias que tenham ganho de eficiência à médio e longo prazo. Isso por que, a rotina processual é na maioria das vezes diária e com muitas atividades manuais do backoffice. O processamento de boletos é um trabalho moroso ou terceirizado, que não envolve inteligência de disparo por canais, customização dinâmica dos comunicados ou tratamento dos dados cadastrais.

Com objetivo de melhorar a eficiência processual e o mecanismo de gestão de recebíveis o Uffa® criou o Uffa® Power Channel, uma plataforma SaaS.

Ela permite segmentar clientes, disparar ações multicanais de forma coordenada e automatizada com a qualificação do dado cadastral (score acoplado) e da resposta do cliente para futuras campanhas, associando quaisquer meios de pagamentos necessários aos disparos em larga escala.

Inicialmente, o Uffa® Power Channel contava com 600 mil disparos por mês nos diversos canais integrados e com uma base de 2 milhões de contratos provenientes dos clientes B2B. Porém, à medida que a base de clientes crescia, foram encontrados desafios de escalabilidade especialmente relacionados a performance e aos custos a longo prazo.

Os processos mais desafiadores eram os disparos de E-mail e Whatsapp, além da geração dos boletos. Em média, 5 horas ao dia eram gastos para processar esta rotina. Essa baixa performance resultava em altos custos operacionais.

Para resolver este desafio, o Uffa®, em parceria com a e-Core, como consultoria especializada, e a Amazon Web Services (AWS) desenvolveram uma solução com arquitetura moderna serverless de alta performance e baixo custo. Além disso, a migração para AWS foi fundamental, proporcionando não apenas a modernização dos disparos com serviços serverless, mas também proporcionando escalabilidade, segurança e confiabilidade para toda operação.

Migração

Como a migração foi realizada a partir de um sistema legado e produção não poderia ser interrompida, o Uffa utilizou o padrão de projeto Strangler Fig (Figo Estrangulador) que é uma abordagem de modernização gradual de sistemas legados.

Neste padrão, um novo sistema é construído em torno do sistema existente, envolvendo-o gradualmente até que o sistema legado se torne obsoleto e possa ser descartado. Essa técnica possibilita a migração incremental de funcionalidades do sistema antigo para o novo, minimizando riscos e permitindo que a transição ocorra sem interrupções significativas nos serviços.

Cada nova funcionalidade é implementada no novo sistema, estrangulando lentamente o sistema legado até que todo o código antigo seja substituído. Esse processo iterativo permite que o sistema legado permaneça operacional durante a migração, reduzindo o impacto nos usuários e evitando uma grande reformulação completa. O padrão Strangler Fig é amplamente utilizado em projetos de modernização de software, pois oferece uma abordagem segura e controlada para lidar com sistemas complexos e críticos para o negócio.

No planejamento, foram definidos os dois serviços que seriam migrados: geração de boletos e o serviço de disparos de mensagens massivas. A arquitetura proposta foi baseada em serviços serverless totalmente gerenciados pela AWS buscando uma redução dos custos operacionais devido as características inerentes e esses recursos como elasticidade, escalabilidade e alta disponibilidade. Isso para acompanhar o ritmo acelerado do Uffa® na aquisição de novos clientes e de bases cada vez maiores.

Arquitetura

O primeiro passo foi dar maior disponibilidade ao serviço de disparos. Sendo assim, foi implementado um sistema integração por filas utilizando o Amazon Simple Queue Service (SQS). Ao colocar uma fila para receber as mensagens, foi adicionado um mecanismo de assincronismo na arquitetura o que proporcionou um desacoplamento entre os recursos.

Arquitetura do Uffa para disparos de e-mail

Arquitetura do Uffa para disparos de e-mail

Após isso, o serviço de disparos foi migrado para uma função AWS Lambda, antes estava alocado em uma máquina virtual. Como o AWS Lambda é um serviço de computação serverless, somente quando uma mensagem chegar na fila esse recurso será executado, isso reduziu o tempo ociosidade que ocorria no modelo anterior, algo em torno de 12 horas por dia. Como tempo ocioso gera desperdício de recurso, o pagamento por utilização gerou também uma economia de custo.

AWS Lambda é um serviço escalável horizontalmente e nesse cenário cada mensagem (ou lotes de mensagens) tem sua própria função associada. Isso faz com que o provisionamento ocorra de acordo com a demanda. Sendo assim, houve um aumento de performance dos disparos do nosso serviço, quanto maior a demanda mais recursos são alocados automaticamente. Outra razão para o alto desempenho foi a execução dos AWS Lambdas em concorrência, o que possibilita o processamento simultâneo de múltiplos eventos, maximizando a eficiência e reduzindo o tempo de resposta do sistema.

Mas e se alguma mensagem falhar? Foi implementada uma fila de mensagens que falham (DLQ), isso possibilitou tanto com novas tentativas de execução quanto com a separação do erro. Sendo assim, uma falha não trava o fluxo do sistema aumentando a tolerância a falhas como um todo.

Por último, foi identificado que a maior carga de exigência computacional estava na geração do boleto. Foi criado então um novo serviço com uma função AWS Lambda, para geração do boleto que é chamado por uma API do Amazon API Gateway. Com a divisão em dois serviços, cada elemento do sistema pode agora realizar uma ação apenas o que aumentou a capacidade de escala e flexibilidade de alocação de recursos. Isso também diminuiu os custos devido ao menor tempo de execução.

Resultados

A transformação arquitetural dos processos de disparos (E-mail, SMS, Whatsapp e URA) e geração dos boletos diminuiu o tempo de execução de mais de 5 horas para pouco menos de 10 minutos, gerando um retorno de investimento aprimorado das campanhas para os nossos clientes e criando uma estrutura escalável. Além disso, a modernização desses dois processos resultou numa diminuição de custos totais de cloud chegando na casa de mais de 10%.

Conseguimos proporcionar aos nossos clientes disparos programados em larga escala em menor granularidade de tempo agendado, tornando a campanha mais customizada e efetiva.

Considerações finais

Equilibrar o foco no core business e a criação de um sistema escalável, de baixo custo operacional, alta performance e elasticidade é um desafio constante para as empresas. No Uffa®, não foi diferente. No entanto, com o auxílio da e-Core e da AWS, conseguimos alcançar esse equilíbrio. Adotamos uma arquitetura serverless com serviços totalmente gerenciados, o que nos permitiu atender às necessidades de negócios e financeiras de forma eficiente e econômica.


Sobre os autores

Helton Alves Helton Alves é Tech Lead no Uffa, responsável por toda modernização e migração para AWS.
Phelipe Fabres é Arquiteto de Soluções da AWS especializado em arquiteturas modernas Serverless e generative AI com Ph.D em Teoria dos Grafos.
Danilo Muniz é Gerente de Contas focados em Startups de larga escala há mais de 5 anos da AWS.
Pedro Pisa é Global Delivery Manager na e-Core e fundador da Solvimm com mais de 16 anos de experiência em tecnologia.