fbpx

Atende Simples – Arquitetura de Microsserviços

Sobre o Atende Simples

O Atende Simples é uma solução empresarial completa de relacionamento telefônico. As ferramentas oferecidas permitem que pequenas e médias empresas escalem seu atendimento com automação, inteligência e integração com diversos sistemas. Hoje, o Atende Simples tem mais de 1.500 empresas clientes.

O Desafio

Diante do crescimento acelerado da solução, a empresa decidiu buscar alternativas ao modelo monolítico usado, que não se mostrava eficiente a longo prazo. Assim, esperava-se aumentar a performance, flexibilidade e escalabilidade da aplicação. De acordo com essas expectativas, a Kendoo Solutions foi escolhida para arquitetar e desenvolver a nova aplicação baseada em serverless e microsserviços.

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.

Sendo que a quantidade de chamadas oscila ao longo do dia e da semana, com alguns horários, como durante a madrugada, com poucas ou nenhuma chamada, escalar a 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.

Depois que as funções são processadas, o API Gateway age 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 armazenamento 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

A utilização de uma arquitetura orientada a microsserviços e serverless permite a entrega de novas funcionalidades com maior agilidade. Além disso, paga-se apenas pelo o que está de fato sendo utilizado dos serviços, reduzindo custos.

Adicione um comentário