Havia a necessidade de rodar análises estatísticas dos dados (boletos pagos) que eram armazenados em uma grande base de dados SQL; porém – devido ao grande volume – o servidor não tinha capacidade de processamento para armazenar os documentos recebidos e fazer as análises simultaneamente. O objetivo era gerar relatórios diários e de forma rápida sobre os milhões de boletos pagos diariamente de forma a não causar impacto nos ambientes de produção, evitando a concorrência de acesso às bases de dados.
Sobre o projeto
Desafios na implementação
Qualquer nova solução a ser implementada na Caixa já é um desafio por si só: devido aos volumes e ao legado de mais de 180 anos de história. Neste projeto:
- Por questões de segurança o tráfego de dados precisavam ser criptografados entre as máquinas.
- Era necessário fazer um redimensionamento de cotas que já estavam configuradas no storage
- Os processos complexos, burocráticos e necessários da governança de TI, que é muito atuante dentro de instituições financeiras devido ao compliance;
Solução implementada
A solução foi o uso de um banco de dados noSQL que passou a receber simultaneamente os mesmos dados da base SQL através de uma réplica em tempo real para que nele fossem feitas as análises estatísticas, não afetando a performance dos sistemas de produção que buscam os dados no banco de dados SQL. Desta forma foi implementado um cluster de MongoDB em sharding , para atender os requisitos de alta disponibilidade, onde as transações entre os nós era feito através de certificado digital e criptografia, para atender o compliance de segurança.
Benefícios e resultados
- Com o banco de dados MongoDB, atingiu-se uma performance superior as 8 mil requisições de escrita por segundo demandadas pelo projeto.
- As buscas abertas dentro de uma base com 1 bilhão de documentos passaram a ser respondidas em questão de segundos.
- O banco de dados SQL continua sendo usado como banco de dados de produção em sintonia com o banco noSQL.
- O uso da versão community do MongoDB deu agilidade ao processo de implantação. Não haveria tempo para um processo licitatório.