O blog da AWS
Como a UNICFC diminuiu custos e melhorou a performance de seus produtos
Por Francieli Librelotto, Diretora Administrativa da UNICFC,
Sirleno Vidaletti, Fundador GMV Consulting e Consultor da UNICFC,
Rodrigo Fernandes, Account Manager em Amazon Web Services e
Michelle Perez, Arquiteta de Soluções em Amazon Web Services
Apresentação
A UNICFC é uma empresa de tecnologia voltada ao desenvolvimento de sistemas para Formação de Condutores, atendendo principalmente Centros de Formação de Condutores (CFCs) de todo o Brasil.
O objetivo central da empresa é a prestação de serviços tecnológicos para todas as necessidades dos CFCs, contando atualmente com os produtos de Monitoramento de aulas práticas (www.unicfcmonitoramento.com.br), Plataforma de EAD e Aulas Remotas (www.unicfcead.com.br) e Editora de Livros para Primeira Habilitação. Para a oferta de quase todos os produtos, a UNICFC passa por credenciamentos e homologações juntos aos Departamentos Estaduais de Trânsito (DETRANs), bem como à Secretaria Nacional de Trânsito (SENATRAN).
Desde a concepção da empresa, a UNICFC se apoiou na AWS para prestar um serviço de qualidade e excelência, visando a disponibilidade e atendimento integral.
Em dois anos, a UNICFC monitorou mais de 01 (um) milhão de aulas práticas de 1ª habilitação e permitiu a realização de mais de 130mil aulas teóricas de forma remota.
Em 2022, o foco será a ampliação de sua atuação para dois novos produtos, expandindo seu público-alvo em potencial e diversificando sua forma de ação.
Contexto
Em 2020, com a pandemia, após regulamentação do CONTRAN, a UNICFC criou o produto Sala de Aula Virtual, que expandiu rapidamente para três Estados e exigiu uma escalabilidade muito maior do que a infraestrutura estava configurada na época, devido aos acessos simultâneos necessários para o uso do sistema. Além disso, em agosto daquele ano, a empresa se viu inserida em um contexto de ataques como ação anticompetitiva, o que intensificou os investimentos em segurança e controle de vulnerabilidades.
Desafios
As principais aplicações da UNICFC foram desenvolvidas seguindo uma modelagem de arquitetura monolítica, que é um sistema único, que roda em um único processo, não sendo divididos em módulos ou microsserviços. É basicamente uma aplicação em que diferentes componentes estão ligados a um único programa dentro de uma mesma plataforma. Conforme a aplicação foi aumentando, o código ficou cada vez mais complexo e o desafio de fazer alterações rápidas e gerar releases foi cada vez maior.
As principais aplicações da UNICFC recebem aproximadamente 3 mil sessões simultâneas nos horários de maior pico. Além do alto número de acessos em determinados momentos, as aplicações gerenciam vídeos e imagens de aulas teóricas e práticas dos CFC`s, somando aproximadamente a volumetria de 140TB que são armazenados no serviço Amazon S3, que é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e performance.
Na figura abaixo está apresentada a arquitetura com os principais componentes de infraestrutura na AWS. O serviço Amazon CloudFront é um serviço de rede de entrega de conteúdo (CDN) criado para alta performance, segurança e conveniência do desenvolvedor. O AWS Auto Scaling, serviço que monitora os aplicativos e ajusta automaticamente a capacidade para manter um desempenho constante e previsível pelo menor custo possível, que foi configurado com regras baseadas em horário e consumo de recursos (CPU e memória).
Um dos principais desafios de uma arquitetura como esta é o tempo necessário para o scaling da infraestrutura, deploy e adição dos servidores no load balancer. Para conseguir atender a demanda necessária, foi preciso escalar mais servidores para que a aplicação não fique com recursos sobrecarregados, porém, com isso, os custos com Amazon EC2 ficaram cada vez maiores.
Solução
Com o aumento da carteira de clientes e consequentemente o número de usuários conectados, foi necessário iniciar um trabalho para modificar a arquitetura das aplicações, para que fosse possível escalar o ambiente de uma forma mais ágil e também reduzir os custos com infraestrutura que em determinados momentos ficam acima do necessário. Como era necessária uma solução mais rápida, em um primeiro momento os serviços mais requisitados e críticos foram migrados para microsserviços hospedados em uma arquitetura serverless, utilizando o serviço AWS Lambda.
Desta forma, foi aliviado boa parte do processamento executado nos servidores do Amazon EC2.
Além disso, como os processos foram separados em procedimentos menores, o deploy, controle de erros e escalabilidade ficaram mais ágeis, ao mesmo tempo em que os custos de execução ficaram menores. Outra vantagem desta abordagem foi a escolha de outras linguagens para desenvolvimento dos serviços, uma vez que os mesmos foram desacoplados da aplicação principal.
Após a implantação dos principais serviços utilizando arquitetura serverless, iniciou-se um trabalho de migração dos serviços e aplicações para o serviço Amazon Elastic Kubernetes Services (EKS). Além disso, foram criadas pipelines de CI/CD para garantir a integridade dos processos de build, integração e deploy. A figura abaixo apresenta a arquitetura para gestão e execução das aplicações e serviços em containers, sendo executada no serviço de container gerenciado que permite executar e escalar aplicações do Kubernetes – o Amazon EKS.
A tecnologia de containers trouxe muitos benefícios nesse caso de uso e combinada com o uso de um serviço gerenciado como o Amazon EKS, as principais vantagens foram:
- Economia com manutenções e mão de obra: Não existe necessidade de configurar e manter sistemas operacionais. Os profissionais que antes faziam este papel ficam liberados para focar em tarefas diretamente ligadas ao produto do negócio;
- Melhora da disponibilidade com a independência dos servidores e descentralização da aplicação.
- Otimização de processos – O foco é unicamente nas aplicações;
- Redução de custos – A tecnologia de containers permitiu manter uma infraestrutura mais otimizada.
Resultados
- Custos
Com a utilização dos serviços AWS Lambda e Amazon EKS, obteve-se uma redução considerável em custos. Até o momento se observa uma redução de 30% no custo total com a AWS. Após a finalização da migração para a arquitetura de containers, utilizando o EKS, a estimativa é de uma redução de 40%.
- Disponibilidade
Um dos maiores desafios era manter a disponibilidade dos sistemas próxima a 100%, tendo em vista a criticidade de eventos de lentidão ou paralisação dos serviços. Após a implementação das melhorias, o percentual mensal de disponibilidade é de 99.995%
- Performance
Com a nova arquitetura, os tempos de resposta das aplicações melhoraram consideravelmente. Além de um melhor tempo de resposta se observa consistência nos tempos para resposta das páginas e serviços. A melhoria observada nos tempos de resposta é de 75% em relação a arquitetura anterior das aplicações.
Sobre os autores
Francieli Librelotto é Diretora Administrativa da UNICFC e Advogada. Auditora Líder da ISO 27001. Sócia fundadora da empresa, responsável pela criação de novos produtos.
Sirleno Vidaletti é fundador GMV Consulting e Consultor da UNICFC. Mestre em Ciências da Computação pela PUCRS e MBA em Gestão Estratégica de T.I na FGV.
Rodrigo Fernandes é Account Manager em Amazon Web Services.
Michelle Perez é Arquiteta de Soluções em Amazon Web Services.
Sobre os revisores
Ligia Harumi Yamamoto é Arquiteta de Soluções com foco em Analytics.
Gustavo Barbosa é Arquiteto de Soluções em Amazon Web Services.