fbpx

Gerenciamento de Infraestrutura Serverless com IaC no Atende Simples

Voiced by Amazon Polly
Sobre o Atende Simples

O Atende Simples é uma solução empresarial completa de atendimento telefônico.

A plataforma oferece diversas ferramentas para gestão de atendimento como menu e mensagens customizadas, gravação, horário de atendimento e relatórios gerenciais para que seus clientes tenham total controle sobre o seu atendimento, com informações completas e análises, e pode ser integrado ao CRM, Help Desk, Analytics, entre outras APIs, com apenas um clique.

O Desafio

O Atende Simples precisava evoluir sua aplicação monolítica para entrega de novas funcionalidades utilizando os serviços da AWS e que a criação e gestão do recursos fosse padronizado e entregue de forma ágil.

Era importante que as novas funcionalidade não impactassem a aplicação atual e que a migração da aplicação monolítica para uma aplicação em microsserviços ocorresse de forma gradual e segura.

Além disso, devido ao crescimento da plataforma e cada vez mais agilidade para novos deploys, a empresa precisava garantir que as entregas seriam feitas de forma segura e de acordo com as melhores práticas operacionais na nuvem.

O time de desenvolvimento realiza em torno de 10 deploys por dia e a solução possui mais de 200 funções Lambda em sua arquitetura de microsserviços. Por isso, a automatização do pipeline de entrega e o gerenciamento eficiente da infraestrutura na AWS se tornam um desafio ainda maior.

Solução

Foi utilizado o Serverless Framework como ferramenta para criação e gestão do recursos na AWS. Com o Serverless Framework, é possível criar templates do CloudFormation padronizados seguindo as boas práticas recomendadas da AWS.

Para cada funcionalidade do sistema, é criado como um novo projeto no Serverless Framework que gera uma nova stack no CloudFormation, composta por serviços serverless como Lambda, API Gateway e DynamoDB, SNS e SQS. Assim, cada projeto pode ser gerenciado de forma independente ,e caso tenham recursos que precisam ser compartilhados, é utilizado o conceito de cross-stack com a exportação de recursos de uma stack para uso em outra stack.

Como os projetos contêm tanto o código quanto o template do Serverless, foi utilizado o GitHub como repositório de versionamento e foi criado um fluxo de pipeline de deploy usando do serviço CodePipeline para a orquestração do fluxo de deploy de homologação e produção, que é iniciado quando é feito o envio do código para o branch do repositório git no GitHub correspondente ao ambiente correto. Para a execução de testes automatizados do código, é utilizado o CodeBuild e a execuções dos comandos do Serverless para a transformação do template e deploy da stack no CloudFormation. Nessa etapa, são executados os testes unitários de cada função lambda, validando as regras de negócio e as funcionalidades em cada teste. Caso durante o deploy seja necessário popular com dados alguma tabela utilizada pelo novo projeto, é utilizado o Custom Resource do CloudFormation com um script presente no Lambda para execução. Assim, garantimos que o necessário para colocar o projeto em uso está presente na stack do projeto.

O Resultado

Na solução atual, que está em constante desenvolvimento, há aproximadamente 20 CloudFormations diferentes para cada ambiente (prod, staging, dev). As funções Lambda são invocadas aproximadamente 20 milhões de vezes por mês, enquanto há também mais de 70 milhões de chamadas no DynamoDB.

Depoimento

A parceria com a Solvimm foi sempre baseada na total transparência e entendimento profundo dos nossos desafios para projetar a melhor solução possível dentro da nossa realidade.

Entre em Contato

Quer conhecer mais sobre boas práticas operacionais em ambientes serverless? Entre em contato com os nossos especialistas!/p>