| Data de elaboração | 28/11/2024 |
|---|---|
| Responsável pelo estudo | Vinicius da Rosa Pereira |
| Equipe do estudo | Liderança Técnica |
| Alvo | Mitigar risco de sobrecarga dos serviços atuais do esquadrão |
| Origem | O estudo investigativo sobre os existentes serviços do esquadrão. |
| Objetivo | Descobrir quais serviços estão rodando em servidores compartilhados e criar estratégias para migrá-los caso necessário. |
Este estudo tem como objetivo descobrir quais serviços estão rodando em servidores compartilhados e criar estratégias para migrá-los caso necessário. A ideia é garantir que os serviços mais importantes sejam melhor alocados, diminuindo riscos e aumentando o controle sobre a infraestrutura.
Atualmente o projeto e-estado possui algumas dependência de serviços externos, são eles RabbitMQ e Redis.
O RabbitMQ é um sistema de mensageria usado para gerenciar e rotear mensagens entre aplicações. Ele permite que sistemas diferentes se comuniquem de forma assíncrona, garantindo alta escalabilidade, desempenho e confiabilidade. O RabbitMQ é amplamente utilizado em arquiteturas de microsserviços, filas de tarefas e sistemas distribuídos.
O Redis é um banco em memória, conhecido por sua alta velocidade e versatilidade. Ele é usado como cache, broker de mensagens e armazenamento de dados chave-valor.
Atualmente, ele está em um contêiner separado com dois endereços IP fixos: um dedicado ao registro de eventos dentro da aplicação e-estado, e outro exclusivo para comunicação assíncrona entre microsserviços. Este último é utilizado principalmente para executar tarefas em larga escala, como a geração de relatórios e a importação de dados.
Igual ao serviço anterior, o Redis, está na plataforma OpenShift que é utilizado para o gerenciamento de aplicações.
A gerência demonstrou preocupação com o fato de alguns serviços estarem compartilhando o mesmo servidor. Essa configuração trazia o risco de, em situações de alto processamento, os serviços ficarem sobrecarregados e eventualmente saírem do ar. No entanto, essa situação já foi resolvida: os serviços foram migrados para servidores separados, eliminando o risco de interrupções causadas por sobrecarga. Com essa divisão, cada serviço agora opera de forma independente, garantindo maior estabilidade e desempenho.
O MongoDB é um banco de dados NoSQL, orientado a documentos, que armazena dados em formato JSON. Ele é escalável, flexível e ideal para aplicações que lidam com grandes volumes de dados ou precisam de esquemas dinâmicos.
Esse serviço é amplamente utilizado em algumas operações da SETIC e, durante sua implementação, foi identificado o risco de sobrecarga devido ao aumento de demanda. Um exemplo disso foi uma situação anterior em que o armazenamento do servidor atingiu sua capacidade máxima, causando instabilidade. Esse problema foi resolvido com a adição de mais recursos ao servidor, o que garantiu a continuidade dos serviços.
Atualmente, o serviço está distribuído em três ambientes distintos: desenvolvimento (dev), teste/homologação (staging) e produção (production), o que melhora a organização, facilita os testes e minimiza os riscos de impacto em ambientes críticos. Além disso, em conversas com a equipe de infraestrutura, foi confirmado que o serviço agora opera de forma isolada em um contêiner, garantindo maior segurança, escalabilidade e controle sobre os recursos utilizados. Essa abordagem reduz consideravelmente o risco de novos episódios de sobrecarga, mesmo com o aumento da demanda no futuro.
Este estudo tem caráter exploratório e busca compreender os serviços em execução no ambiente compartilhado da VM Esquadrão, além de analisar possíveis riscos associados à migração para a plataforma OpenShift. Durante a análise, foram identificadas melhorias significativas já realizadas, como a separação dos serviços em contêineres individuais e a implementação de práticas que promovem maior estabilidade, escalabilidade e controle sobre os recursos da infraestrutura.
Com as ações já aplicadas, incluindo a utilização de contêineres e a organização dos ambientes em dev, staging e production, os riscos de sobrecarga ou falhas foram substancialmente reduzidos. Nesse contexto, o ambiente atual apresenta estabilidade e não demanda intervenções imediatas ou decisões urgentes.
Dessa forma, o estudo cumpre sua função ao oferecer um panorama abrangente da infraestrutura existente e criar uma base sólida para possíveis ajustes ou migrações futuras, caso novas necessidades ou mudanças estratégicas venham a surgir.