Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Banco de dados»NoSql»Lições aprendidas com MongoDB Serverless

    Lições aprendidas com MongoDB Serverless

    Jhonathan SoaresBy Jhonathan Soares27 de março de 20246 Mins Read NoSql
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    No meu último post sobre bancos de dados serverless, especificamente sobre MongoDB fiz uma introdução sobre o assunto, coloquei alguns prós e contras e dei um overview geral sobre preços da utilização de uma infraestrutura serverless com MongoDB. Hoje quero aprofundar com vocês algumas lições aprendidas e trazer alguns números de benchmarks públicos e pessoais que vão corroborar com a minha opinião sobre a adoção dessa arquitetura. Devido à natureza variável dos benchmarks, que dependem do caso de uso específico, da configuração e do tipo de carga de trabalho, os dados apresentados são estimativas baseadas em cenários de uso comum, visando fornecer uma base sólida para comparação e análise.

    Antes de mais nada, as minhas recomendações e lições iniciais ainda são válidas e por isso as trarei novamente aqui como reforço:

    O que eu posso recomendar para você após 6 meses rodando o projeto?

    • Modelagem ainda é uma preocupação. “Garbage in, garbage out”.
    • Parece óbvio, mas você paga pelos testes de carga.
    • Use e abuse da paginação feita direto no banco. $skip e $limit são seus amigos.
    • Coloque alertas! Alertas de billing, de consumo, erros e latência.
    • Persistência poliglota sempre, um bom serviço de cache ajuda muito na performance e redução de custos!
    • Mantenha seu driver atualizado, melhorias sempre surgem e você precisa aproveitar isso.
    • Considere o tempo de latência em ambientes produtivos, isso em larga escala pode fazer bastante diferença!

    Características e Vantagens do MongoDB Serverless

    O MongoDB Serverless é projetado para oferecer uma gestão de banco de dados NoSQL altamente escalável, flexível e eficiente em custos. Suas principais vantagens incluem:

    • Escalabilidade Automática: Ajusta dinamicamente os recursos disponíveis para atender às demandas do aplicativo, sem intervenção manual.
    • Modelo de Pagamento conforme o Uso: O custo é baseado na quantidade de dados armazenados, lidos e escritos, permitindo uma otimização de recursos e custos.
    • Simplificação Operacional: Elimina a necessidade de gerenciamento de infraestrutura, permitindo que os desenvolvedores se concentrem na lógica do aplicativo.

    Benchmarks de Desempenho do MongoDB Serverless

    Operações de Leitura e Escrita: Em um cenário de teste comum, operações de leitura e escrita no MongoDB Serverless apresentam uma latência média de cerca de 20ms para leituras e 25ms para escritas, sob uma carga moderada. Este valor compara-se a uma latência de aproximadamente 10-15ms para operações similares em instâncias MongoDB Atlas dedicadas, indicando um overhead de latência no contexto serverless de aproximadamente 5-10ms por operação.

    IOPS (Input/Output Operations Per Second): Para um banco de dados serverless configurado com 10GB de armazenamento, o MongoDB Serverless pode oferecer até 3.000 IOPS para operações de leitura e 1.000 IOPS para escritas. Este número é dinamicamente ajustado com o escalonamento do armazenamento; por exemplo, um aumento para 20GB de armazenamento pode dobrar a capacidade de IOPS disponível. É importante notar que esses números são aproximados e podem variar com base na carga de trabalho específica e outros fatores operacionais.

    Conexões Simultâneas: O MongoDB Serverless suporta até 1.500 conexões simultâneas por instância. Para aplicações que exigem um número maior de conexões, recomenda-se avaliar o uso de estratégias de pooling de conexões ou considerar a distribuição de carga entre múltiplas instâncias serverless.

    Limitações de Tamanho e Tempo de Transações: As transações no MongoDB Serverless têm um limite de tempo de execução de 60 segundos, com um tamanho máximo de 16MB por operação. Estas restrições exigem que as aplicações sejam projetadas para operações eficientes, evitando longas transações ou grandes operações batch que poderiam exceder esses limites.

    Estudo de Caso Quantitativo: Promoções relâmpagos em E-commerce

    Durante uma promoção relâmpago, um e-commerce típico utilizando MongoDB Serverless pode experimentar um aumento de até 10x no volume de transações e consultas. Considerando uma base de 100.000 operações por hora em um dia normal, esse número pode escalar para 1.000.000 de operações por hora durante o pico da promoção.

    A preparação para este evento envolve o ajuste do MongoDB Serverless para otimizar o desempenho e o custo. Por exemplo, a otimização de índices pode reduzir a latência média de consulta de 20ms para 15ms, um ganho significativo sob alta carga. Além disso, a implementação de caching para consultas frequentes pode reduzir o número total de operações no banco de dados em até 30%, aliviando a carga no sistema e melhorando a experiência do usuário.

    Qual é a minha opinião sobre MongoDB Serverless?

    Acredito que com uma boa margem de segurança, se respeitadas as limitações, a topologia serverless pode ser fácilmente aplicada não só em ambientes de desenvolvimento e homologação como ambientes produtivos, apenas tenha em mente algumas coisas importantes:

    1. Tenha em mente da latência variável, se você precisa de garantia forte da latência mínima, um cluster dedicado dentro de uma região favorável acaba sendo a melhor escolha
    2. Tenha em mente o tamanho e complexidade do banco de dados. Como existe uma limitação de tamanho de banco (1TB) e algumas features (trigger, sharding etc) pode ser que bancos mais simples sejam mais recomendados
    3. O BI Connector ainda não funciona para serverless, então se você depende dessa funcionalidade, infelizmente não irá conseguir utilizar
    4. Tenha MUITO cuidado com a quantidade de requisições que você vai fazer nesse banco, aqui você paga por consulta e não por tamanho do banco, isso pode ser uma dor de cabeça no futuro.

    O MongoDB Serverless representa uma solução poderosa para o gerenciamento de bancos de dados NoSQL em ambientes dinâmicos e variáveis. Seu modelo de escalabilidade automática e pagamento conforme o uso oferece uma combinação atraente de flexibilidade e eficiência de custos. No entanto, as limitações técnicas e os benchmarks de desempenho sublinham a importância de um planejamento cuidadoso e uma implementação otimizada. O estudo de caso citado ilustra como, com estratégias adequadas, é possível maximizar a eficácia do MongoDB Serverless, mesmo sob condições extremas de demanda. Portanto, ao considerar o MongoDB Serverless para aplicações futuras, é essencial avaliar tanto suas potencialidades quanto suas restrições, garantindo uma implementação que atenda às necessidades específicas do projeto e maximize o retorno sobre o investimento.

    Resumindo… Faça testes! Faça o seu próprio benchmark, só assim você saberá com clareza se a tecnologia se aplica ao seu cenário

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples

    NoSql 7 de fevereiro de 20255 Mins Read

    Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL

    NoSql Sql 14 de janeiro de 20257 Mins Read

    Entendendo os diferentes tipos de locks em bancos de dados e como evitá-los

    NoSql Sql 2 de julho de 20248 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile