Gente… Que saudade das nossas conversas aqui no blog!
Para marcar a volta em grande estilo, escrevi um post (um pouco atrasado) falando da versão mais recente do MongoDB.
Eu sempre fico muito ansiosa pelas novas versões, porque elas sempre trazem algumas novidades muito esperadas e outras que são inacreditáveis! Como o blog estava meio parado, resolvi voltar com a corda toda! Trazendo inicialmente um resumo das novidades, e depois vamos ver de forma mais detalhada cada uma delas!
Qual versão eu uso?
Sendo muito sincera, quando eu começo um projeto, eu sempre opto pela mais recente e estável para o ambiente de produção, e sendo assim hoje (setembro de 2021), eu optaria pela versão 5.0, que está disponível para download no site da MongoDB.
A minha escolha pela versão mais recente está pautada no fato de que pode ser extremamente desgastante evoluir a versão de um SGBD usada em produção (vai por mim, em algumas empresas é quase impossível!).
Outro ponto extremamente importante quando falamos de MongoDB, é a necessidade de lembrar que existem o SGBD Community e o Enterprise. Se a sua empresa opta por usar a versão Community (que não requer pagamento), esteja muito atento aos termos da licença para não fazer nada errado.
Agora vamos para as novidades!
Todas as novidades descritas aqui, foram anunciadas pela própria MongoDB, no documento de lançamento da versão 5.0, e eu ainda não testei todos os itens!
Mas nos próximos posts, muito mais do que contar qual a novidade, eu conto qual minha opinião e como fiz o teste.
API Versionada: Será o fim da quebradeira com a troca das versões?
Você já precisou atualizar a versão do MongoDB? Vou te contar que a maior dificuldade é manter as aplicações funcionando, porque a troca de versão do SGBD implica na atualização da API.
Os comandos e parâmetros usados pela API (a partir do MongoDB 5.0) não serão alterados com a evolução do banco de dados. Ou seja, a compatibilidade será mantida, de forma que:
- Podemos ter um driver em uma versão específica da API do MongoDB com a confiança de que o código do seu aplicativo continuará ok e inalterado por anos, sem interrupção, mesmo que o banco de dados seja atualizado e melhorado.
- Vamos separar o ciclo de vida do aplicativo do ciclo de vida do banco de dados, porque poderemos atualizar a versão do MongoDB sem precisar alterar o driver usado por todas as aplicações.
Time Series no MongoDB: que sonho!!!
Tudo indica que alguns casos de streaming de dados, serão levados para outro patamar! Este recurso é tão fofo, que vai ilustrar o próximo post aqui do blog!
Séries temporais são muito usadas em projetos de IOT, análises financeiras, logística…
Existem bancos de dados super legais que trabalham só com este tipo de dado, como o InfluxDB. Isso é ótimo, mas ter mais um SGBD acrescenta complexidade aos projetos.
O MongoDB 5.0 torna mais rápido e reduz o custo de construir e executar aplicativos de série temporal ao oferecer suporte nativo a todo o ciclo de vida deste tipo de dado – ingestão, armazenamento, consulta, análise em tempo real e visualização até a expiração automatizada conforme os dados envelhecem.
As novas coleções de séries temporais do MongoDB armazenam este tipo de dado automaticamente em um formato altamente otimizado e compactado, reduzindo o armazenamento, bem como I/O para obter maior desempenho e escala. Essas otimizações eliminam longos ciclos de desenvolvimento, permitindo que você crie rapidamente um esquema ajustado para as demandas analíticas de séries temporais.
Mudanças lindas no Sharding: Live Resharding!!!
Para quem não lembra Sharding é o modo do MongoDB dividir os dados de uma coleção entre diversos servidores.
Já conversamos sobre este recurso poderoso, aqui no blog, veja este link em caso de dúvidas.
Uma das partes mais complexas ao usar o sharding, era escolher a shard key, um atributo que seria usado para dividir os dados. Digo isso porque uma vez escolhida a shard key, não era possível alterá-la.
O Live Resharding fornece escalonamento sem caos, lágrimas e dores… permitindo que você altere a shard key da sua coleção, sob demanda conforme seu aplicativo evolui, e o melhor, sem tempo de inatividade do banco de dados.
Esse recurso era muito desejado por mim, e será o segundo tópico abordado nos próximos posts.
Client-Side Field Level Encryption
O Field Level Encyptation (FLE) foi introduzido em 2019. Ele usa os drivers do MongoDB para criptografar os campos confidenciais em seus documentos antes de saírem do aplicativo.
O FLE foi lançado inicialmente com integração ao Key Management Service (KMS) da Amazon. Com o MongoDB 5.0, o suporte nativo agora está em GA para o Azure Key Vault e Google Cloud KMS também.
Esse recurso fofo permite que você faça três coisas que você não poderia fazer apenas com a criptografia em trânsito ou em repouso:
• Protege os dados enquanto eles estão em uso, na memória da instância de banco de dados. O banco de dados nunca vê texto simples, e ainda sim os dados podem ser consultados.
• Torna os dados ilegíveis para qualquer pessoa que esteja executando o banco de dados ou que tenha acesso à infraestrutura dele – isso inclui MongoDB SREs executando os serviços do Atlas, bem como o pessoal do provedor de nuvem.
• Simplifica a gestão do direito de esquecimento, que é um direito do titular dos dados, existente em regulamentações de privacidade modernas, como a LGPD e GDPR. Isso ocorre porque você simplesmente destrói a chave que criptografa, e seus dados ficarão ilegíveis e irrecuperáveis - na memória, em repouso, em backups e em registros.
Troca de certificados e Auditoria
Outra novidade no MongoDB 5.0 é a capacidade de trocar certificados x509 sem reiniciar o cluster de banco de dados.
Quanto a auditoria, o log foi aprimorado para capturar mais mensagens de auditoria dos eventos do sistema, fornecendo uma visão mais holística das atividades do seu banco de dados. Agora você também pode reconfigurar os filtros de registro de auditoria como uma operação online. Esses filtros permitem que você controle os eventos específicos e atividades do usuário que você está capturando no registro de auditoria, permitindo que você responda rapidamente a novos negócios ou demandas regulatórias
Outras mudanças que valem a pena ficar de olho!
- MongoDB Atlas escalando automaticamente – isso significa que você escolhe a região onde seus dados ficarão armazenados, e o MongoDB Atlas alocará recursos automaticamente, de acordo com a demanda da sua aplicação. E você só pagará pelo que usar.
- Melhorias no Ops Manager, incluindo possibilidades de automação de backup e restore! Para quem não conhece, o Ops Manager é a plataforma de gerenciamento do MongoDB. Com ela fica fácil de implantar, monitorar, fazer backup e dimensionar o MongoDB em sua própria infraestrutura.
- MongoDB Shell vem mais amigável;
- PyMongoArrow – API lindinha que permite fazer uma consulta no MongoDB e devolver o resultado para aplicação em outro formato, como por exemplo um data frame do Pandas.
- Melhorias na validação de schema: Esta eu estava esperando muito!!! As mensagens de erro foram aprimoradas, facilitando a identificação dos problemas.
Para terminar
A versão 5.0 do MongoDB tem muita coisa bacana! Além das novidades, vários recursos foram aprimorados e alguns problemas de antigamente resolvidos.
Por isso que eu recomendo começar um projeto já com a versão mais atual. Agora se você usa outras versões do MongoDB e está na dúvida se migra ou não para a versão 5.0… É preciso analisar as suas aplicações e o impacto que esta mudança trará para o projeto existente. Tenha paciência e faça uma análise criteriosa, e testes consistentes.
Este post não tem pretensão de esgotar o assunto (até porque ainda estou experimentando as mudanças), e sim te mostrar bons motivos para utilizar essa versão fofinha.
Aguardem os novos posts, agora quinzenais (eu juro!)
Novidade – vem aí o livro de MongoDB da Dani
Meus amigos, eu não estava aguentando guardar esta novidade!
Em novembro será lançado o meu livro sobre MongoDB!!! Já estou terminando a revisão e em breve teremos novidades!
Para ser um dos primeiros a saber do lançamento acesse www.LivroDaDani.com! Não perca, porque está bem legal!!!
Aquele descontinho maneiro!
Conheça a SPEsportes, e use o nosso cupom para ter um desconto de 20%! o Código é DB4BEGINNERS.