sql >> Databáze >  >> NoSQL >> MongoDB

Přehled Atlasu MongoDB:Část první

Cloud computing řeší některé problémy spojené s provozováním systémů zpracování dat. Společnosti založené na datech prosazují rychlou obchodní transformaci pomocí cloudových služeb a mnozí vidí cloudové služby jako podstatné vylepšení automatizace, spolehlivosti a škálování na vyžádání než tradiční modely infrastruktury, které byly dříve. Povaha on-demand paradigmatu Software-as-a-Service (SaaS) znamená, že organizace mohou nakupovat, co potřebují, když to potřebují. Rozhodující jsou samozřejmě nákladové a nákladově efektivní aspekty, ale ne jediné.

Při navrhování systémových architektur vždy hledáme systémy, které vyhovují správnému počtu uživatelů a na správné úrovni výkonu pro každého. Chceme se vyhnout problémům s výkonem a úzkým místům, a pokud k těmto problémům dojde, chceme systém, který se přizpůsobí měnící se poptávce.

Chceme také věci rychleji. Agilní vývojový proces je stále populárnější; hlavně proto, že urychluje dodání počáteční obchodní hodnoty a (prostřednictvím procesu nepřetržitého plánování a zpětné vazby) může zajistit maximalizaci ROI.

Nakonec chceme snížení složitosti. Klíčovým rysem MongoDB je jeho vestavěná redundance. Pokud máte dva nebo více datových uzlů, lze je nakonfigurovat jako sadu replik nebo fragmenty mongodb. Bez správné automatizace to může být opakující se úkol pro několik týmů (síť, úložiště, OS atd.). Cloudová automatizace vám může pomoci snížit závislosti mezi různými skupinami ve vaší organizaci. Například při vytváření nového databázového systému možná nebudete muset zapojit síťový tým.

Cloudová automatizace nejen šetří čas a peníze, ale také zvyšuje konkurenceschopnost vaší organizace na náročném trhu.

V tomto blogu se podíváme na Atlas, řešení od MongoDB, které se snaží vyřešit všechny tyto problémy.

Začínáme s MongoDB Atlas

Chcete-li začít s Atlasem MongoDB, přejděte na https://cloud.mongodb.com. V registračním formuláři musíte uvést naprosté minimum informací, jako je e-mail, společnost, země a číslo mobilního telefonu.

MongoDB Atlas odvádí vynikající práci při zajišťování a nastavení infrastruktury. Celý proces využívá dynamické webové rozhraní, které vás provede různými možnostmi nasazení. Je to snadné, intuitivní a nevyžaduje speciální znalosti.

Po prvním přihlášení budete požádáni o vytvoření prvního clusteru v jeden ze tří nejvýznamnějších mraků. Atlas spolupracuje s Amazon AWS, Google Cloud a Microsoft Azure. Na základě vašeho výběru si můžete vybrat umístění preferovaného umístění datového centra. Chcete-li zvýšit dostupnost, můžete nastavit Multi-Region, Workload Isolation nebo nastavit různé možnosti replikace. Každý projekt Atlas podporuje až 25 clusterů, ale po kontaktu s podporou byste měli být schopni hostovat další.

Musíte vybrat vhodnou velikost serveru spolu s IO a kapacita skladu. V tomto článku budeme používat bezplatnou verzi. Je zdarma začít s MongoDB Atlas pro prototypování, raný vývoj nebo se učit. Kreditní karta není potřeba, takže se nemusíte obtěžovat skrytými náklady. Bezplatná edice s názvem M0 Sandbox je omezena na:

  • 512 MB úložiště
  • vCPU sdílené
  • Sdílená paměť RAM
  • Maximálně 100 připojení
  • Je omezen jeden klastr M0 na projekt.

U vyhrazených clusterů je MongoDB Atlas účtován každou hodinu podle toho, kolik toho využíváte. Sazba závisí na řadě faktorů, především na velikosti a počtu serverů, které používáte. Cena začíná na 0,08/h (M10, 2GB RAM, 10GB úložiště, 1vCPU) až po M700 se 768GB RAM, 4096 GB úložiště, 96vCPU od 33,26 $/h. Je zřejmé, že budete muset zahrnout další nákladové faktory, jako jsou například náklady na zálohování.

Podle výpočtů MongoDB by vás AWS, 3-uzlová replika sady M40 a její provoz 24 hodin denně 7 dní v týdnu po dobu jednoho měsíce s použitím přiloženého 80 GB standardního blokového úložiště, stála přibližně 947 $.

Základní nastavení funguje s replikací. Pokud potřebujete sharding instance M30 je minimum (8GB RAM, 40GB úložiště, 2vCPU, cena od 0,54 $/hod).

Počáteční nastavení přístupu k síti MongoDB Atlas

Jedním z prvních kroků, které musíme po vytvoření clusteru udělat, je povolení seznamu povolených IP adres. Chcete-li povolit přístup odkudkoli, můžete nastavit položku whitelistu na 0.0.0.0/0, ale nedoporučuje se to. Pokud neznáte svou IP adresu, Atlas vám ji pomůže identifikovat.

Aby bylo vaše připojení bezpečnější, můžete také nastavit síťové peeringové připojení . Tato funkce není dostupná pro clustery M0, M2 a M5. Síťový peering umožňuje konektivitu mezi MongoDB VPC a vaším poskytovatelem cloudu. Peer VPC síť umožňuje různým VOC komunikovat v soukromém prostoru, provoz neprochází veřejným internetem.

Chcete-li začít pracovat s novým clusterem, vytvořte prvního uživatele. Udělejte to na kartě Přístup k databázi. MongoDB používá autentizační mechanismus Salted Challenge Response. Je to bezpečnostní mechanismus založený na SHA-256, uživatelských pověřeních proti uživatelskému jménu, heslu a ověřovací databázi.

Migrace stávajícího clusteru MongoDB do Atlasu MongoDB

Existuje také možnost migrovat váš stávající on-prem cluster do Mongo Atlas. Provádí se to prostřednictvím specializované služby s názvem Live Migration Service. Proces Atlas Live Migration streamuje data přes aplikační server řízený MongoDB.

Živá migrace funguje tak, že udržuje cluster v MongoDB Atlas synchronizovaný s vaší zdrojovou databází. Během tohoto procesu může vaše aplikace pokračovat ve čtení a zápisu z vaší zdrojové databáze. Protože proces sleduje nadcházející změny, všechny budou replikovány a migraci lze provést online. Sami se rozhodnete, kdy změnit nastavení připojení aplikace a provést přerušení. Aby byl proces méně náchylný, Atlas poskytuje možnost Validate, která kontroluje přístup k IP adresám, konfiguraci SSL, CA atd.

Důležité zde je, že služba je bezplatná.

Pokud nepotřebujete online migraci, můžete také použít mongoimport. Použijte mongo shell s minimální verzí 3.2.7 vždy používejte SSL. Zde můžete získat testovací data.

​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.

Chcete-li zkontrolovat data, přihlaste se pomocí mongo shell.

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>

Závěr

To je vše pro část první. V příštím článku se budeme zabývat monitorováním, zálohováním, každodenní správou a novou službou MongoDB pro budování Data Lakes. Zůstaňte naladěni!


  1. Oprava „$pullAll vyžaduje argument pole, ale dostal double“ v MongoDB

  2. Meteor vrací chybu neplatného hexadecimálního řetězce při pokusu o vytvoření ObjectID?

  3. Připojujete se přímo k Redis pomocí javascriptu (na straně klienta)?

  4. Co skutečně znamenalo, že MongoDB nevyhovuje ACID před v4?