fbpx
Atende Simples – Migração para Arquitetura Serverless

Este estudo de caso foi publicado no blog da AWS. Confira aqui: https://amzn.to/2mrWX8M

Sobre o Atende Simples

O Atende Simples é uma solução empresarial completa de relacionamento telefônico. As ferramentas oferecidas permitem que pequenas, médias e grandes empresas escalem seu atendimento com automação, inteligência e integração com diversos sistemas. O Atende Simples iniciou suas atividades em 2012 e hoje atende mais de 1.500 empresas, entre elas Banco Neon, Baterias Moura, Braspag, Trigg e Lojas Melissa.

Diante do crescimento acelerado da solução, a empresa decidiu buscar alternativas ao modelo monolítico usado. Assim, esperava-se aumentar a performance, flexibilidade e escalabilidade da aplicação, além de otimizar custos. De acordo com essas expectativas, a Solvimm foi escolhida para arquitetar a nova aplicação baseada em serverless e microsserviços.

O Desafio

A camada física da solução do Atende Simples é constituída por equipamentos em dois data centers distintos em São Paulo e diversos links redundantes de conexão com as operadoras e a camada de aplicação, onde está o centro do processamento de chamadas. Com o modelo de aplicação monolítico usado, os recursos não eram bem aproveitados, já que era necessário alocá-los mesmo que somente uma pequena parte da aplicação fosse usada.

Além disso, conforme o código da aplicação aumentava, a etapa de desenvolvimento também levava mais tempo para ser concluída, sendo que somente os testes automatizados para deploy levavam quase uma hora. A agilidade é uma necessidade da solução do Atende Simples, que tem características específicas, como complexidade e imprevisibilidade do volume de processamento.

Como a quantidade de chamadas oscila ao longo do dia e da semana, de centenas por segundo a poucas ligações (em alguns horários, como durante a madrugada, são feitas poucas ou nenhuma chamada), a elasticidade da aplicação, de acordo com a demanda real do sistema, impactaria a redução de custos nos momentos ociosos. Mas um dos principais desafios encontrados pelo Atende Simples era adaptar a aplicação monolítica para essa realidade.

A Solução

Como a migração de uma aplicação monolítica para a arquitetura de microsserviços é complexa, adotou-se a estratégia de desenvolver novas funcionalidades e recursos na nova arquitetura, além de migrar as refatorações do código. Isso iniciou o processo de estrangulamento da aplicação monolítica.

A arquitetura proposta contou com um ambiente serverless usando o serviço AWS Lambda para a execução das funções. O Lambda tem a capacidade de aplicar diferentes regras de negócios para cada evento, de maneira altamente disponível e escalável. Diversos eventos de diferentes fontes acionam as funções, que aplicam regras de negócios e transformam os dados para consumo da aplicação monolítica legada.

O API Gateway e o AWS AppSync são usados como proxy de chamada das funções Lambda e demais recursos da AWS que precisam ser acessados pela aplicação monolítica. Esses recursos são o DynamoDB, como banco de dados, e SQS e SNS como mensageria e envio de mensagens. O DynamoDB permite armazenar os eventos gerados pelas chamadas com rapidez na escrita e a recuperação em milisegundos na leitura, possibilitando relatórios quase em tempo real.

A aplicação consome os eventos lendo uma fila do SQS, que cuida automaticamente de aumentos súbitos no número de eventos, sendo que outra fila foi preparada para os eventos que possam dar erro no consumo pela aplicação.

O Resultado

O uso da arquitetura serverless permitiu a entrega de novas features com agilidade. Além disso, a integração com a aplicação monolítica foi feita com o mínimo de alteração na aplicação.

Com a utilização de microsserviços na AWS, paga-se apenas pelo o que está de fato sendo utilizado dos serviços. Isso difere de uma infraestrutura tradicional, onde o cliente precisaria ter uma quantidade de servidores que aguentasse os momentos de pico e que mantivesse os recursos ociosos em períodos em que o número de chamadas fosse baixo.

Em um mês, são feitas cerca de 10 milhões de requisições Lambda à aplicação do Atende Simples, 5 milhões de requisições ao Amazon SQS, 32 milhões de requisições de leitura e 9.9 milhões de requisições de escrita ao Amazon DynamoDB. O poder computacional exigido para suportar essa carga é enorme, o que dificilmente seria feito em um ambiente on-premises.

Entre em Contato

Se tiver interesse em saber como a Solvimm pode ajudar a solucionar desafios, entre em contato conosco e converse com os nossos especialistas.