MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Uma visão geral do MongoDB Atlas:parte um

A abordagem de computação em nuvem aborda alguns dos desafios associados à execução de sistemas de processamento de dados. As empresas orientadas por dados estão promovendo a rápida transformação dos negócios com serviços em nuvem, e muitas veem os serviços em nuvem como um aprimoramento substancial em automação, confiabilidade e dimensionamento sob demanda do que os modelos tradicionais de infraestrutura que vieram antes. A natureza sob demanda do paradigma Software-as-a-Service (SaaS) significa que as organizações podem comprar o que precisam, quando precisam. Claro, os aspectos de custo e custo-benefício são cruciais, mas não os únicos.

No projeto de arquiteturas de sistemas, estamos sempre procurando os sistemas que se encaixam no número certo de usuários, no nível certo de desempenho para cada um. Queremos evitar problemas de desempenho e gargalos e, se esses problemas acontecerem, queremos um sistema que se adapte às mudanças na demanda.

Também queremos que as coisas sejam mais rápidas. O processo de desenvolvimento ágil está se tornando cada vez mais popular; principalmente porque acelera a entrega do valor inicial do negócio e (através de um processo de planejamento e feedback contínuos) pode garantir que o ROI seja maximizado.

Por último, queremos uma redução na complexidade. Um recurso importante do MongoDB é sua redundância integrada. Se você tiver dois ou mais nós de dados, eles poderão ser configurados como um conjunto de réplicas ou fragmentos do mongodb. Sem a devida automação, pode ser uma tarefa recorrente para várias equipes (rede, armazenamento, SO, etc.). A automação na nuvem pode ajudá-lo a reduzir as dependências entre os vários grupos da sua organização. Por exemplo, talvez você não precise envolver a equipe de rede ao criar um novo sistema de banco de dados.

A automação em nuvem não apenas economiza tempo e dinheiro, mas também torna sua organização mais competitiva no mercado desafiador.

Neste blog, vamos dar uma olhada no Atlas, a solução do MongoDB que tenta resolver todos esses problemas.

Introdução ao MongoDB Atlas

Para começar com o MongoDB Atlas, acesse https://cloud.mongodb.com. No formulário de registro, você precisa fornecer informações mínimas como e-mail, empresa, país e número de celular.

MongoDB Atlas faz um excelente trabalho no provisionamento e configuração de infraestrutura. Todo o processo usa uma interface web dinâmica que orienta você por várias opções de implantação. É fácil, intuitivo e não requer conhecimento especializado.

Após o primeiro login, você será solicitado a construir seu primeiro cluster em uma das três nuvens mais significativas. A Atlas trabalha com Amazon AWS, Google Cloud e Microsoft Azure. Com base em sua escolha, você pode escolher a localização do data center preferido. Para aumentar a disponibilidade, você pode definir Multi-Region, Workload Isolation ou definir várias opções de Replication. Cada projeto Atlas suporta até 25 clusters, mas após o contato com o suporte, você poderá hospedar mais.

Você precisa selecionar o tamanho apropriado do servidor, juntamente com IO e capacidade de armazenamento. Neste artigo, usaremos a versão gratuita. É gratuito começar com o MongoDB Atlas para prototipagem, desenvolvimento inicial ou para aprender. O cartão de crédito não é necessário, então você não precisa se preocupar com custos ocultos. A edição gratuita chamada M0 Sandbox é limitada a:

  • 512 MB de armazenamento
  • vCPU compartilhada
  • RAM compartilhada
  • máximo de 100 conexões
  • Há um limite de um cluster M0 por projeto.

Para clusters dedicados, o MongoDB Atlas é cobrado por hora com base em quanto você usa. A taxa depende de vários fatores, o mais importante, o tamanho e o número de servidores que você usa. O preço começa com 0,08/h (M10, 2 GB de RAM, 10 GB de armazenamento, 1 vCPU) a M700 com 768 GB de RAM, 4.096 GB de armazenamento, 96 vCPUs a partir de US$ 33,26/h. Obviamente, você precisaria incluir outros fatores de custo como, por exemplo, o custo dos backups.

De acordo com os cálculos do MongoDB, um AWS, um conjunto de réplicas de 3 nós de M40s e executá-lo 24 horas por dia, 7 dias por semana, por um mês, usando os 80 GB de armazenamento em bloco padrão, custaria cerca de US$ 947.

A configuração básica funciona com replicação. Se você precisar de fragmentação, o tipo de instância M30 é mínimo (8 GB de RAM, 40 GB de armazenamento, 2 vCPUs, preço a partir de US$ 0,54/h).

Configuração inicial de acesso à rede do MongoDB Atlas

Uma das primeiras etapas que precisamos fazer após a criação do cluster é habilitar uma lista de permissões de IP. Para habilitar o acesso de qualquer lugar, você pode definir a entrada da lista de permissões como 0.0.0.0/0, mas isso não é recomendado. Se você não souber seu endereço IP, o Atlas ajudará você a identificá-lo.

Para manter sua conexão mais segura, você também pode configurar uma conexão de peering de rede . Esse recurso não está disponível para clusters M0, M2 e M5. O peering de rede permite a conectividade entre o MongoDB VPC e seu provedor de nuvem. A rede peer VPC permite que diferentes VOC ti se comuniquem em espaço privado, o tráfego não atravessa a internet pública.

Para começar a trabalhar com seu novo cluster, crie um usuário inicial. Faça isso na guia Acesso ao Banco de Dados. O MongoDB usa o Mecanismo de Autenticação de Resposta de Desafio Salgado. É um mecanismo de segurança baseado em SHA-256, credenciais do usuário em relação ao nome do usuário, senha e banco de dados de autenticação.

Migração do cluster MongoDB existente para o Atlas MongoDB

Também existe a possibilidade de migrar seu cluster local existente para o Mongo Atlas. Isso é feito por meio de um serviço dedicado chamado Live Migration Service. O processo Atlas Live Migration transmite dados por meio de um servidor de aplicativos controlado pelo MongoDB.

A migração ao vivo funciona mantendo um cluster no MongoDB Atlas sincronizado com seu banco de dados de origem. Durante esse processo, seu aplicativo pode continuar lendo e gravando no banco de dados de origem. Como o processo observa as próximas mudanças, tudo será replicado e a migração poderá ser feita online. Você decide quando alterar a configuração de conexão do aplicativo e faz a transição. Para tornar o processo menos propenso, o Atlas fornece a opção Validar que verifica o acesso IP à lista de permissões, configuração SSL, CA, etc.

O importante aqui é que o serviço é gratuito.

Se você não precisa de migração online, você também pode usar mongoimport. Use o shell mongo com a versão mínima 3.2.7 sempre use SSL. Você pode obter dados de teste aqui.

​mongoimport --host TestCluster-shard-0/testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-****.azure.mongodb.net:27017,testcluster-shard-******.azure.mongodb.net:27017 --ssl --username admin --authenticationDatabase admin  --type JSON --file city_inspections.json

2019-08-15T21:53:09.921+0200 WARNING: ignoring unsupported URI parameter 'replicaset'

2019-08-15T21:53:09.922+0200 no collection specified

2019-08-15T21:53:09.922+0200 using filename 'city_inspections' as collection

Enter password:



2019-08-15T21:53:14.288+0200 connected to: mongodb://testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017/?replicaSet=TestCluster-shard-0

2019-08-15T21:53:17.289+0200 [........................] test.city_inspections 589KB/23.2MB (2.5%)

2019-08-15T21:53:20.290+0200 [#.......................] test.city_inspections 1.43MB/23.2MB (6.2%)

2019-08-15T21:53:23.292+0200 [##......................] test.city_inspections 2.01MB/23.2MB (8.6%)

...

2019-08-15T21:55:09.140+0200 [########################] test.city_inspections 23.2MB/23.2MB (100.0%)

2019-08-15T21:55:09.140+0200 81047 document(s) imported successfully. 0 document(s) failed to import.

Para verificar os dados, faça login com o shell do mongo.

mongo "mongodb+srv://testcluster-*****.azure.mongodb.net/test" --username admin

MongoDB shell version v4.2.0

Enter password:

connecting to: mongodb://testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017/test?authSource=admin&compressors=disabled&gssapiServiceName=mongodb&replicaSet=TestCluster-shard-0&ssl=true

2019-08-15T22:15:58.068+0200 I  NETWORK [js] Starting new replica set monitor for TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.069+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-01-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.070+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-00-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.070+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-02-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.801+0200 I  NETWORK [ReplicaSetMonitor-TaskExecutor] Confirmed replica set for TestCluster-shard-0 is TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017

Implicit session: session { "id" : UUID("6a5d1ee6-064b-4ba8-881a-71aa4aef4983") }

MongoDB server version: 4.0.12

WARNING: shell and server versions do not match

MongoDB Enterprise TestCluster-shard-0:PRIMARY> show collections;

city_inspections

MongoDB Enterprise TestCluster-shard-0:PRIMARY> db.city_inspections.find();

{ "_id" : ObjectId("56d61033a378eccde8a83557"), "id" : "10284-2015-ENFO", "certificate_number" : 9287088, "business_name" : "VYACHESLAV KANDZHANOV", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Misc Non-Food Retail - 817", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2655 } }

{ "_id" : ObjectId("56d61033a378eccde8a83559"), "id" : "10302-2015-ENFO", "certificate_number" : 9287089, "business_name" : "NYC CANDY STORE SHOP CORP", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Cigarette Retail Dealer - 127", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2653 } }

...

{ "_id" : ObjectId("56d61033a378eccde8a8355e"), "id" : "10391-2015-ENFO", "certificate_number" : 3019415, "business_name" : "WILFREDO DELIVERY SERVICE INC", "date" : "Feb 26 2015", "result" : "Fail", "sector" : "Fuel Oil Dealer - 814", "address" : { "city" : "WADING RIVER", "zip" : 11792, "street" : "WADING RIVER MANOR RD", "number" : 1607 } }

Type "it" for more

MongoDB Enterprise TestCluster-shard-0:PRIMARY>

Conclusão


Isso é tudo para a parte um. No próximo artigo, abordaremos monitoramento, backups, administração do dia a dia e o novo serviço do MongoDB para construção de Data Lakes. Fique atento!