O blog da AWS

Como a Wiipo utiliza a Amazon Web Services para entregar mais de 1 milhão de holerites por mês em uma arquitetura de alta elasticidade e baixo custo

Por Márcio Ge ovani Jasinski,
Ronaldo Tadeu Murguero Junior,
Alberto Frocht e
Felipe Brito

 

A Wiipo é uma fintech do grupo Senior que oferece serviços financeiros para empresas e pessoas físicas. Com pouco mais de 2 anos, apresenta em seu portfólio produtos como: Holerite Digital, Contratação de Consignado, Gestão de Recebíveis, Clube de Vantagens e uma solução completa de Benefícios Flexíveis, o Wiipoflex. Nesse post, vamos compartilhar como a Wiipo desenvolveu sua solução de holerite digital explorando os benefícios de uma arquitetura serverless na AWS.

Introdução

Uma das principais necessidades do RH das empresas é levar informações até os colaboradores de forma simples e rápida. Pensando em agilidade, simplicidade e eficácia, a ferramenta mais adequada é o smartphone. Atentando-se a isso, a Wiipo lançou o produto de Holerite Digital em 2020, que se integra com o sistema de pagamentos Senior utilizado pelo cliente e entrega, individualmente, todas as informações da folha de pagamento de cada funcionário através de um aplicativo mobile.

Mensalmente, o aplicativo Wiipo atende aproximadamente mais de 1.700 empresas e 1 milhão de usuários, tendo já acumulado 25 milhões de holerites no total. Para atender esses números, dois requisitos principais foram levantados. O primeiro é sobre a experiência de uso, que deve ser a mais fluida possível, e o segundo, é sobre a viabilidade de custo do produto a longo prazo.

Este blog mostra como a Wiipo, em conjunto com a Amazon Web Services (AWS), desenvolveu uma arquitetura serverless de alto desempenho e baixo custo, garantindo que o serviço de Holerite Digital funcione de maneira escalável e elástica.

Arquitetura

A arquitetura é composta por dois fluxos. O primeiro trata do processo de integração e coleta de informações da folha de pagamento do sistema de gestão de pessoas do cliente para o ambiente AWS. Já o segundo fluxo consiste em um backend para atender as requisições do aplicativo mobile, que permite as consultas dos funcionários às informações da folha de pagamento.

A figura 01 a seguir detalha, em alto nível, a arquitetura implementada para o processo de integração e coleta de informações do sistema de pagamentos do cliente.

Figura 1 – Arquitetura implementada para o processo de integração e coleta de informações do sistema de pagamentos do cliente.

O primeiro desafio desse fluxo foi montar uma estrutura capaz de processar as informações de folha de maneira escalável. Para a etapa de coleta de informações, a solução conta com um elemento importante, o Integrador Wiipo. Este é um componente externo que é instalado e executado em conjunto com o sistema de folha do cliente (on-premises ou nuvem). O integrador realiza o envio de mais de 370GB/mês de informações para o ambiente AWS da Wiipo.

As informações coletadas são enviadas, de maneira criptografada, para um bucket de Amazon Simple Storage Service (Amazon S3). Para realizar a transferência, o integrador realiza requisições para uma AWS Lambda que autoriza o envio das informações ao bucket através de uma Signed URL. A Lambda é disponibilizada via Amazon API Gateway, que fica atrás do AWS WAF. Utilizamos o WAF com regras sobre endereços IP bloqueados e permitidos para assim evitar possíveis ataques, além de rate-limits e políticas de segurança. Uma vez autorizado, o integrador faz o envio dos dados criptografados diretamente para o Amazon S3.

Ao chegar no S3 as informações recebidas são processadas. O processamento consiste na leitura dos dados e “transformação” dos mesmos para objetos de fácil leitura, porém criptografados, por uma instância de A instância é executada através de uma regra do Amazon EventBridge que roteia o evento de chegada para a mesma. Uma vez processadas, as informações são armazenadas no Amazon S3 e no Amazon DynamoDB. No Amazon S3 fica armazenado, de forma criptografada, O detalhamento de cada folha de pagamento do usuário. As informações pessoais do usuário ficam no Amazon DynamoDB para acesso com mais desempenho no processo de autenticação e apresentação do aplicativo. Estes serviços foram escolhidos por garantirem alta escalabilidade e performance, e seguem o modelo de pagamento por utilização (pay-as-you-go) que garante otimização quanto aos custos gerais da arquitetura.

A figura 2 a seguir apresenta o fluxo de consulta com o aplicativo mobile, onde as requisições são processadas para atender as demandas do App. Através de um Amazon API Gateway, todas as requisições são enviadas para um backend executado de modo Serverless, através de funções AWS Lambda. O armazenamento dos dados processados é feito no Amazon DynamoDB e no Amazon S3. Informações de acesso rápido ficam no Amazon DynamoDB, com chaves que permitem a busca de dados complementares no Amazon S3. Através desses serviços, o ambiente se mantém estável, mesmo em dias de pico na consulta do holerite.

Figura 2 – Fluxo de consulta com o aplicativo mobile

Serverless – Elasticidade e Baixo Custo

Por seguir o modelo de execução serverless, a aplicação acompanha a demanda de forma elástica, sem gastos fixos com recursos continuamente alocados. Devido a este modelo, independentemente do aumento do volume ser linear ou exponencial, o aumento de custo é logarítmico. Isto permite um equilíbrio pois o custo acompanha de perto o consumo dos serviços.  A relação custo x elasticidade pode ser melhor observada na Figura 3, que exibe a quantidade de consultas realizadas no aplicativo. Nos primeiros dias do mês, a quantidade de requisições atinge uma faixa de 5 a 6 milhões/dia, porém, em boa parte do mês esse consumo fica na faixa de 1 milhão de requisições/dia. Em volume de dados, são mais de 465 GB/mês de download que é trafegado para atender essa demanda.

Figura 3 – Quantidade de requisições dos aplicativos ao longo de vários dias

Outra vantagem identificada foi no indicador de custo por usuário da plataforma. De 2020 para 2021, foram adicionados 568.891 usuários, um aumento de 4,17 vezes na base e ao mesmo tempo, o custo por usuário caiu 44,40%. Já em 2022, foram adicionados 704.181 usuários, um aumento de 1,94 vezes na base, com o custo por usuário reduzindo 64,29% em relação ao ano anterior. Esse ritmo tem se mantido em 2023, com aumento de 235 mil novos usuários e redução de 10,08% no custo por usuário.

Além da capacidade de atender a demanda de volume, a arquitetura permite manter uma latência baixa. Mesmo em momentos de maior acesso, onde são recebidas mais de 120 requisições por segundo, o serviço mantém tempos de resposta abaixo de 200 ms, conforme a Figura 4.

Figura 4 – Tempo médio da latência obtido com a arquitetura serverless

Considerações finais

Gerenciar um aplicativo com milhões de requisições por dia é sempre um desafio técnico considerável, principalmente devido ao fato de o volume facilmente impactar de forma significativa em custo. Para a Wiipo, o modelo serverless permitiu encontrar equilíbrio para que o custo acompanhe a demanda de forma simples e direta, com reduzido esforço de implementação e de gestão dos recursos.

A principal vantagem de recursos gerenciados como o Amazon S3, Amazon DynamoDB e AWS Lambda está na capacidade de resposta e resiliência que esses serviços oferecem. Em todo histórico de aumento de usuários da Wiipo, o holerite digital sempre demonstrou resiliência sobre a carga recebida, isto fica mais evidente em vista que para produtos recentemente implantados como o recibo de férias e o informe de rendimentos, utilizamos a mesma estrutura utilizada para o holerite.

 


Sobre os autores

Márcio Geovani Jasinski é CTO da Wiipo e apaixonado por tecnologia e desenvolvimento de software. Procura levar inovações para as soluções através de arquiteturas sustentáveis, de baixo custo e alta escalabilidade.

 

 

 

 

 

Ronaldo Tadeu Murguero Junior é desenvolvedor da Wipo apaixonado por tecnologias que auxiliem as pessoas em seu dia a dia, que visa sempre procurar por soluções escaláveis, sustentáveis e de fácil manutenção.

 

 

 

 

Alberto Frocht é arquiteto de soluções para parceiros na AWS, focado em apoiar os ISVs (fabricantes de software independentes) a desenvolver as melhores soluções para seus clientes. Possui larga experiência em projetos de infraestrutura, segurança e resiliência.

 

 

 

 

Felipe Brito é arquiteto de soluções na AWS e atua guiando clientes nas melhores práticas de arquitetura na nuvem. Possui experiência com projetos de desenvolvimento de software e Analytics.

 

 

 

 

Revisores

Diego Rocha é arquiteto de soluções na AWS e atua no segmento de ISV. Possui grande experiência em projetos de infraestrutura, identidade e DevOps.

 

 

 

 

Tiago Reichert é arquiteto de soluções na AWS focado em ajudar parceiros ISV em sua jornada na nuvem. Tiago tem interesse em SaaS, Containers e cultura DevOps.