Escolar Documentos
Profissional Documentos
Cultura Documentos
do MongoDB
Os conceitos fundamentais que sustentam a
arquitetura do MongoDB
Guia de Arquitetura
do MongoDB
Introdução
Dados e software estão no núcleo de todos os ° Cargas de trabalho transacionais,
negócios. Mas para muitas organizações, alcançar analíticas, de pesquisa e móveis
todo o potencial da economia digital continua anteriormente separadas estão
sendo um desafio significativo. Desde o início do convergindo para criar aplicativos ricos
MongoDB, entendemos que os maiores desafios orientados por dados e experiências do
que os desenvolvedores enfrentam estão cliente. No entanto, cada carga de
relacionados ao trabalho com dados: trabalho tem sido tradicionalmente
alimentada por seu próprio banco de
° As demandas por maior produtividade e dados, criando silos de dados duplicados
menor tempo de lançamento no unidos com pipelines ETL frágeis,
mercado estão sendo retidas por acessados por diferentes APIs de
modelos de dados relacionais rígidos que desenvolvedor.
não combinam com o código moderno e
impõem interdependências complexas Para enfrentar alguns desses desafios, bancos de
entre as equipes de engenharia. dados não tabulares (às vezes chamados de
° As organizações não conseguem trabalhar NoSQL ou não relacionais) foram rapidamente
ou extrair insights da enorme e crescente adotados na última década. Mas muitos desses
quantidade de dados gerados por bancos de dados NoSQL são simplesmente
aplicativos modernos, incluindo séries curativos, oferecendo um conjunto de
temporais, dados geoespaciais e funcionalidades de nicho.
polimórficos.
O problema é que os bancos de dados NoSQL
° Bancos de dados legados frágeis e
típicos fazem uma ou duas coisas bem. Eles
monolíticos estão inibindo a mudança de
podem oferecer mais flexibilidade no modelo de
atacadistas para sistemas distribuídos e
dados do que bancos de dados tradicionais ou
computação em nuvem que oferecem a
escalonar facilmente. Mas para fazer isso, eles
resiliência e a escala exigidas pelos
descartam os recursos mais valiosos dos bancos
negócios digitais e oferecem suporte para
de dados relacionais. Muitas vezes sacrificam a
novas demandas regulatórias de
privacidade de dados. integridade dos dados e a capacidade de
trabalhar com dados das maneiras necessárias
para criar aplicativos ricos e valiosos — sejam
eles novos pontos de contato digitais com os
clientes de uma organização ou processos de
negócios de back-end centrais modernizados.
2
Guia de Arquitetura
do MongoDB
O modelo de documento
O MongoDB foi lançado em 2009 como uma
Suporte aprimorado
classe completamente nova de banco de dados
de uso geral e rapidamente se estabeleceu
como um dos bancos de dados mais populares para dados de série
entre os desenvolvedores. O MongoDB retém os
melhores aspectos dos bancos de dados
temporal
relacionais e NoSQL enquanto fornece uma base Dados de série temporal são dados que
tecnológica que permite que as organizações representam como um sistema, um processo ou
atendam às demandas de aplicativos modernos. um comportamento muda ao longo do tempo. Ele
Ele consegue isso substituindo as rígidas tabelas pode ser capturado em intervalos de tempo
de bancos de dados relacionais por documentos constantes, como uma medição do dispositivo por
flexíveis que mapeiam a maneira como os segundo, ou em intervalos de tempo irregulares,
desenvolvedores pensam e codificam. Em vez como alertas e auditorias de eventos. Os dados de
de armazenar dados em colunas e linhas, os séries temporais são essenciais para aplicativos
bancos de dados de documentos podem modernos, em particular para IoT, negociação de
armazenar dados como JSON (Notação de ações,fluxo de cliques e redes sociais. Com a
Objetos em JavaScript). Um banco de dados de mudança de sistemas em lote para sistemas em
documentos pode armazenar qualquer tipo de tempo real, a eficiência da captura e da análise de
dados e a estrutura dos documentos pode ser dados de séries temporais permitem que as
facilmente modificada. Isso permite que os organizações detectem e respondam melhor a
desenvolvedores sejam muito mais produtivos e eventos antes de seus concorrentes, melhorem a
construam ou iterem seus aplicativos com mais eficiência operacional e reduzam custos e riscos.
rapidez. Você pode adicionar novos campos sem
afetar outros documentos na coleção, o Graças à flexibilidade do MongoDB, as equipes
equivalente do MongoDB de uma tabela em um utilizam o banco de dados para armazenar dados
banco de dados relacional. E você pode criar de séries temporais há anos. No entanto, criar
modelos de dados de qualquer maneira modelos dos dados de forma correta para obter
adequada ao aplicativo, por exemplo, como uma solução de alto desempenho nem sempre foi
pares de valor-chave , como bordas ou nós de direto. Com coleções de séries temporais — um
um gráfico ou como estruturas aninhadas que novo tipo de coleção introduzido com o MongoDB
representam relacionamentos. 5.0 — e novos recursos, como indexação em
cluster e funções de janela, as equipes podem
trabalhar e armazenar dados de séries temporais
sem precisar se preocupar com a otimização do
modelo de nível baixo. O MongoDB irá otimizar
automaticamente seu esquema para alta eficiência
de armazenamento, consultas de baixa latência e
análises em tempo real em relação a dados
temporais.
3
Guia de Arquitetura
do MongoDB
1. Intuitivo: mais
rápido e fácil para Com o modelo de dados de documento, não
desenvolvedores há necessidade de decompor dados em
tabelas, executar JOINs caros ou integrar uma
Os documentos no banco de dados são mapeados camada de mapeamento objeto-relacional (ORM)
diretamente para os objetos em seu código, separada. Os dados que são acessados juntos
portanto, é muito mais natural para trabalhar com geralmente são armazenados juntos, portanto,
eles. você tem menos código para escrever e seus
usuários obtêm maior desempenho.
O exemplo a seguir de um documento JSON no
MongoDB evidencia como um objeto de cliente é
modelado em uma única estrutura de documento
com dados relacionados incorporados como
subdocumentos e arranjos. Essa abordagem reduz
o que de outra forma seriam sete tabelas pai-filho
separadas vinculadas por chaves estrangeiras em
um banco de dados relacional. “A parte mais bonita é
o modelo de dados. Tudo é
um documento JSON
natural. Portanto, para os
desenvolvedores, é fácil —
muito fácil — trabalhar
rapidamente. Eles estão
utilizando seu tempo na
criação de valor do negócio
em vez de modelagem de
dados.”
— Filip Dadgar, gerente de TI, Toyota
Material Handling Europe
4
Guia de Arquitetura
do MongoDB
alterações
3. Universal: os
O esquema de um documento é dinâmico e
autodescritivo, portanto, você não precisa
documentos
predefini-lo no banco de dados. Os campos JSON estão em
podem variar de documento para documento, e toda parte
você pode modificar a estrutura a qualquer
momento, permitindo integrar constantemente Leve e independente do idioma, o JSON se tornou
novas funcionalidades de aplicativos sem lidar um padrão estabelecido para comunicação e
com migrações de esquema disruptivas. armazenamento de dados. Os documentos
Quando você precisa fazer alterações no modelo de permitem que você estruture os dados da maneira
dados, o banco de dados de documentos continua a que seu aplicativo precisar — objetos ricos, pares
armazenar os objetos atualizados sem a necessidade de valor-chave, tabelas, dados geoespaciais e de
de realizar operações caras de “ALTER TABLE séries temporais e os nós e bordas de um gráfico.
[ALTERAR TABELA]”, atualizar uma camada de Como resultado dessas propriedades, você pode
middleware de ORM separada e coordenar todas atender a muito mais classes de aplicativos com
essas alterações em múltiplos desenvolvedores, DBA um único banco de dados.
e equipe de operações. Os documentos permitem O MongoDB armazena dados como documentos
que várias versões do mesmo esquema existam no JSON em uma representação binária chamada
mesmo espaço de tabela. Aplicativos antigos e novos BSON (Binary JSON). Ao contrário da maioria dos
podem coexistir. bancos de dados que armazenam dados JSON
O MongoDB também oferece validação de esquema como cadeia de caracteres e números primitivos,
para que você possa aplicar regras que regem a a codificação BSON estende a representação
estrutura de seus documentos. Isso é útil à medida JSON para incluir tipos adicionais como int, long,
que seus aplicativos entram em produção, pois você date, float point e decimal128. Isso facilita muito
pode controlar seu esquema sem precisar escrever para os aplicativos que utilizam o MongoDB
controles na camada do aplicativo. Com a validação processar, classificar e comparar dados de
maneira confiável.
5
Guia de Arquitetura
do MongoDB
6
Guia de Arquitetura
do MongoDB
Arquitetura distribuída:
Escalável, resiliente e de
missão crítica
Por meio de conjuntos de réplicas e fragmentação ° Heartbeat e status de conectividade com a
nativa, o MongoDB permite escalonar seus aplicativos maioria dos outros membros do conjunto de
com disponibilidade sempre ativa. Você pode distribuir réplicas
dados para acesso de usuários de baixa latência
° Prioridades definidas pelo usuário atribuídas
enquanto aplica controles de soberania de dados para aos membros do conjunto de réplicas
regulamentos de privacidade de dados, como RGPD.
Ao estender a proteção de dados, os desenvolvedores
podem configurar conjuntos de réplicas para fornecer
Disponibilidade e proteção de durabilidade ajustável e de vários nós e
dados com conjuntos de reconhecimento geográfico. Por meio da preocupação
com a escrita do MongoDB, você pode garantir que as
réplicas operações de gravação se propaguem para a maioria
das réplicas em um cluster. Com o MongoDB 5.0, a
Os Conjuntos de réplicas do MongoDB permitem que você garantia de durabilidade padrão foi elevada à
crie até 50 cópias de seus dados, que podem ser preocupação com a escrita majoritária (w:majority). O
provisionadas em nós, centros de processamento de sucesso da gravação agora só será reconhecido no
dados e regiões geográficas separados. aplicativo depois que ele for confirmado e persistido
Os conjuntos de réplicas são projetados no disco na maioria das réplicas.
predominantemente para resiliência. Se um nó primário Escolher o novo padrão em comparação com o antigo
sofrer uma interrupção ou for removido para padrão w:1 permite uma garantia de durabilidade mais
manutenção, o cluster do MongoDB elegerá forte, onde os dados reconhecidos podem sobreviver a
automaticamente um substituto em alguns segundos, eleições de conjuntos de réplicas e falhas completas de
alternando as conexões do cliente e repetindo qualquer nós. A nova configuração padrão w:majority é totalmente
operação com falha para você. ajustável, para que você possa manter o padrão w:1
O processo de eleição do conjunto de réplicas é anterior ou qualquer preocupação de gravação
controlado por algoritmos sofisticados baseados em personalizada configurada anteriormente.
uma implementação estendida do protocolo de Você também pode criar preocupações de gravação
consenso Raft. Antes que uma réplica secundária seja personalizadas que visam membros específicos de um
promovida, os algoritmos de eleição avaliam uma série conjunto de réplicas, implantados localmente e em regiões
de parâmetros, incluindo: remotas.
° Análise de identificadores de eleição, registros
temporais e persistência de registro para
identificar os membros do conjunto de réplicas
que aplicaram as atualizações mais recentes da
réplica primária
7
Guia de Arquitetura
do MongoDB
Isso garante que os escritos sejam reconhecidos Com políticas sofisticadas, como leituras
apenas quando as políticas personalizadas forem protegidas, o cluster irá alternar
cumpridas, como gravar em pelo menos um automaticamente as consultas aos dois nós mais
primário e uma réplica em uma região, e pelo menos próximos (medidos pela distância de ping),
uma réplica em uma segunda região. Isso reduz o retornando os resultados da réplica mais rápida.
risco de perda de dados no caso de uma falha Isso ajuda a minimizar as consultas em espera em
regional completa. um nó que poderia estar ocupado, reduzindo a
latência de leitura do 95° e 99° percentual.
Além da resiliência, os conjuntos de réplicas
Observe que as leituras protegidas estão
também podem ser usados para escalonar as
disponíveis apenas em clusters compartilhados.
operações de leitura, alternando de forma
inteligente as consultas para uma cópia dos dados
fisicamente mais próxima do usuário.
Escalabilidade vertical,
horizontal e ao longo de
camadas de armazenamento
Como a maioria dos bancos de dados, você pode Você também tem a flexibilidade de refinar ou
escalonar o MongoDB verticalmente movendo alterar sua chave de fragmentação — que determina
para tamanhos de instância maiores ou menores. como os dados são distribuídos em um cluster
Como um sistema distribuído, o MongoDB pode fragmentado — sob demanda sem afetar a
executar uma reinicialização contínua do conjunto disponibilidade do sistema. Conforme sua chave de
de réplicas, permitindo que você se mova entre fragmentação é modificada ou conforme você altera
diferentes instâncias sem tempo de inatividade do a topologia do cluster, o MongoDB reequilibrará
aplicativo. automaticamente os dados entre os fragmentos
conforme necessário, sem intervenção manual.
Por meio da fragmentação nativa, o MongoDB
também pode escalonar seu banco de dados em Com o simples hash de um valor-chave primário,
vários nós para lidar com cargas de trabalho de muitos bancos de dados distribuídos espalham dados
gravação intensiva e tamanhos de dados crescentes. aleatoriamente em um cluster de nós, impondo
A fragmentação com o MongoDB permite escalonar penalidades de desempenho quando os dados são
continuamente o banco de dados à medida que seus consultados ou adicionando complexidade ao
aplicativos crescem além dos limites de hardware de aplicativo quando você precisa localizar dados em
um único servidor, e isso sem adicionar uma região específica. Ao expor múltiplas políticas de
complexidade ao aplicativo. fragmentação aos desenvolvedores, o MongoDB
oferece uma abordagem melhor. Os dados podem ser
Para responder às demandas de carga de trabalho distribuídos de acordo com padrões de consulta ou
em evolução, você pode adicionar e remover requisitos de posicionamento de dados, oferecendo
fragmentos a qualquer momento. escalabilidade muito maior em um conjunto mais
diversificado de cargas de trabalho.
8
Guia de Arquitetura
do MongoDB
Zona 4
Frankfurt
Zona 2
Norte da Zona 5
Zona 1
Virgínia Tóquio
Norte da
Califórnia
Zona 3
Latência de gravação aproximada São Paulo
Zona 6
Ideal (0 – 100ms) Sydney
Aceitável (101 – 249ms)
Aceitável (101 – 249ms)
Não Ideal (250ms+)
Figura 1: Atendendo aplicativos sempre ativos, distribuídos globalmente e de gravação em todos os lugares com o MongoDB Atlas Global Clusters
9
Guia de Arquitetura
do MongoDB
Privacidade e segurança
Com a crescente economia digital, vem um Com a criptografia no nível de campo (FLE) do
aumento na supervisão governamental de lado do cliente, você tem acesso a alguns dos
privacidade e segurança de dados. O MongoDB controles de proteção de dados mais avançados
inclui amplos recursos para defender, detectar e em qualquer lugar. A FLE torna ainda mais seguro
controlar o acesso aos dados: armazenar seus dados mais confidenciais na
nuvem porque é completamente inacessível para
° Autenticação: O MongoDB oferece um
qualquer pessoa que não tenha as chaves de
forte mecanismo de desafio-resposta
criptografia, incluindo aqueles que operam o
baseado em SCRAM-256, juntamente com
banco de dados para você.
integração à infraestrutura de segurança
corporativa, incluindo LDAP, Windows A FLE também facilita a conformidade com as
Active Directory, Kerberos, certificados condições de “direito ao esquecimento” nos
x.509 e AWS IAM. regulamentos de privacidade, como o RGPD e a
° Autorização: O controle de acesso CCPA. Simplesmente destrua a chave do cliente e
baseado em função (RBAC) permite os dados pessoais associados se tornarão inúteis.
configurar permissões granulares para um
Com a FLE, você pode criptografar seletivamente
usuário ou aplicativo com base nos
campos de documentos individuais, cada um
privilégios necessários para realizar seus
opcionalmente protegido com sua própria chave e
trabalhos.
descriptografado perfeitamente para o cliente. No
° Auditoria: Para conformidade regulatória,
MongoDB, a FLE é totalmente separada do banco
os administradores de segurança podem de dados, tornando-a transparente para o
utilizar o log de auditoria nativo do MongoDB
servidor. Em vez disso, é tratada exclusivamente
para registrar todas as atividades e alterações
dentro dos drivers MongoDB no cliente. Todos os
do banco de dados.
campos criptografados no servidor —
° Isolamento da rede: Para usuários que armazenados na memória, nos logs do sistema,
executam bancos de dados totalmente em repouso e em backups — são renderizados
gerenciados no MongoDB Atlas, os dados
como texto cifrado, tornando-os ilegíveis para
do usuário e os sistemas subjacentes são
qualquer parte que não tenha tanto o acesso de
totalmente isolados de outros usuários. Os
cliente quanto as chaves necessárias para
recursos de banco de dados são associados
a um grupo de usuários, que está contido descriptografar os dados. Essa é uma abordagem
em sua própria nuvem privada virtual diferente e mais abrangente do que a criptografia
(VPC). O acesso pode ser concedido de coluna usada em muitos bancos de dados
apenas por whitelist de IP ou relacionais. A maioria desses bancos de dados lida
emparelhamento da VPC. com a criptografia no lado do servidor, então os
dados ainda podem ser acessados pelos
° Criptografia em todo lugar: Os dados
do MongoDB podem ser criptografados administradores que têm acesso à própria
enquanto estão em trânsito na rede, em instância do banco de dados, mesmo que não
uso no banco de dados e em repouso, seja tenham privilégios de acesso de cliente.
em disco ou em backups.
10
Guia de Arquitetura
do MongoDB
11
Guia de Arquitetura
do MongoDB
Modelo de
documento
Pares de valor-
Geoespacial
chave
Relações Gráficos
Objetos
Pesquisa Móvel
Arquitetura
Segurança distribuída
Multicloud
12
Guia de Arquitetura
do MongoDB
13
Guia de Arquitetura
do MongoDB
14
Guia de Arquitetura
do MongoDB
16
Guia de Arquitetura
do MongoDB
Execute o MongoDB
gratuitamente com nossas
ferramentas
O MongoDB Community Server é a versão gratuita Também ajuda a identificar problemas antes
e disponível no código-fonte do software de banco que se tornem emergências e agilizar as
de dados. Ele foi baixado centenas de milhões de operações. Com o Cloud Manager, você pode
vezes e inclui todas as principais funcionalidades monitorar tendências, ver características de
de banco de dados — modelo de documento carga de trabalho em tempo real, configurar
flexível, API de consulta expressiva, replicação e alertas e obter sugestões de otimização de
fragmentação — para oferecer suporte à criação desempenho.
de uma ampla variedade de aplicativos.
Conectores
MongoDB Compass
O MongoDB Connector para Apache Spark expõe
Você pode interagir facilmente com seus dados todas as bibliotecas do Spark, incluindo Scala, Java,
do MongoDB utilizando o MongoDB Compass, a Python e R. Os dados do MongoDB são
GUI do MongoDB. Por meio do Compass, você materializados como DataFrames e Datasets para
pode explorar e manipular dados, criar consultas análise com aprendizado de máquina, gráfico,
e pipelines de agregação visualmente a partir da streaming e APIs de SQL.
GUI e exportá-los como código para seu
Com o MongoDB Connector para Apache Kafka,
aplicativo, visualizar e criar índices, criar regras
você pode criar pipelines de dados robustos que
de validação de esquema e muito mais.
movem eventos entre sistemas em tempo real,
utilizando o MongoDB como fonte e coletor para
Cloud Manager Kafka. O conector é suportado pelo MongoDB e
verificado pelo Confluent.
O Cloud Manager é a plataforma de Você pode utilizar qualquer distribuição de
gerenciamento baseada em nuvem que Kubernetes para gerenciar o ciclo de vida
permite implantar, monitorar, fazer backup e completo de seus clusters do MongoDB, onde
escalonar o MongoDB. Ele permite automatizar quer que você escolha executá-los, desde a
tarefas de administração como implantação, infraestrutura local até a nuvem pública. Com as
monitoramento e alertas, escalonamento, integrações de Kubernetes do MongoDB, você
atualizações, backup e otimização de pode executar e escalonar seus clusters com
desempenho. facilidade, independentemente da topologia de
infraestrutura escolhida.
17
Guia de Arquitetura
do MongoDB
Iniciando
Todos os setores estão passando por uma Neste guia, exploramos os conceitos
transformação digital. Muitas empresas não fundamentais que sustentam a arquitetura do
conseguem realizar todo o potencial de seus MongoDB. Outros guias sobre tópicos como
investimentos porque não modernizam sua desempenho, operações e práticas recomendadas
arquitetura de dados. Conforme você cria ou de segurança podem ser encontrados em
refaz sua empresa para o mundo digital, a MongoDB.com.
velocidade, medida pela rapidez com que você
cria aplicativos, escalona-os e obtém insights Você pode começar agora com o MongoDB da
dos dados que eles geram, é importante. Essas seguinte forma:
são as chaves para aplicativos que 1. Revisar o whitepaper de orientação de
proporcionam melhores experiências ao cliente: caso de uso para identificar casos de
permitir insights mais profundos e orientados uso aplicáveis para o MongoDB.
por dados e possibilitar novos produtos ou 2. Ativar um cluster do MongoDB
modelos de negócios. O MongoDB permite que totalmente gerenciado na camada
você atenda às demandas de aplicativos gratuita do Atlas ou baixando o
modernos com uma plataforma completa de MongoDB para desenvolvimento local.
dados de aplicativos que inclui todos os serviços
3. Revisar os manuais e tutoriais do MongoDB
complementares que os desenvolvedores em nossa documentação.
precisam.
Porto Seguro
O lançamento e tempo de quaisquer recursos ou recursos descritos para os nossos produtos permanecem a
nosso exclusivo critério. Essas informações destinam-se apenas a delinear nossa direção geral do produto e
não devem ser consideradas na tomada de decisão de compra nem são um compromisso, promessa ou
obrigação legal de entregar qualquer material, código ou funcionalidade.
18