Pages

Monday, November 26, 2018

MongoDb Atlas in Azure vs Azure CosmosDb

Intro

At the beginning of our developing on one of my projects we planned that we will use Azure CosmosDB for Mongo database hosting. Mainly we chose Cosmos because it is easy to set up, good features like autoscaling, autoindexing, SLA, and we can work with it as with black box without any big expertise in that technology. But during the development process, we have found some disadvantages for us. Two main limitations for us:
  1. CosmosDB does not support API version of MongoDB greater than 3.4. We could not use many important Mongo features like transactions, schema validations etc.
  2. There is no normal CosmosDB emulator for local dev environment.

Description

MongoDB Atlas is a fully-managed cloud database developed by the same people that build MongoDB. Atlas handles all the complexity of deploying, managing, and healing your deployments on the cloud service provider of your choice (AWS, Azure, and GCP). Follow the links below to get started.

Main advantages and disadvantages

Fully MongoDB API version support
We confidently can work with a local MongoDB database on dev environments.

We should choose between sharded cluster and replica set. Also, we should deal with Global Clusters and Global Write Zones and Zone Mapping.
Anyway, we should have more expertise in MongoDB.

Comparison with CosmosDB

MongoDB Connector for BI

The MongoDB Connector for Business Intelligence (BI) allows users to create queries with SQL and visualize, graph, and report on their MongoDB Enterprise data using existing relational business intelligence tools such as TableauMicroStrategy, and Qlik.
The MongoDB Connector for BI acts as a layer that translates queries and data between a mongod ormongos instance and your reporting tool. The BI Connector stores no data, and purely serves to bridge your MongoDB cluster with business intelligence tools.


User Authentication and Authorization with LDAP - Connect to your clusters via LDAP / Active Directory

Connect via BI Connector for Atlas 

Database Auditing - Audit activity on your database

MongoDB Stitch - Create a serverless application

MongoDB Charts - Visualize data in MongoDB

Cluster Tier selection

Select your preferred cluster instance size. The selected instance size dictates the memory, storage, and IOPS specification for each data-bearing server [1] in the cluster.
Atlas categorizes the instance sizes into tiers as follows:

Shared Clusters

Sandbox replica set clusters for getting started with MongoDB. These instances deploy to a shared environment with access to a subset of Atlas features and functionality. For complete documentation on shared cluster limits and restrictions, see Atlas M0 (Free Tier), M2, and M5 Limitations.

Dedicated Development Clusters

Instances that support development environments and low-traffic applications.
These instances support replica set deployments only, but otherwise, provide full access to Atlas features and functionality.

Dedicated Production Clusters

Instances that support production environments with high traffic applications and large datasets.
These instances support replica set and sharded cluster deployments with full access to Atlas features and functionality.
The following table highlights key differences between an M0 Free Tier cluster, an M2 or M5 shared starter cluster, and an M10+ dedicated cluster.


Atlas M0 (Free Tier), M2, and M5 Limitations

Maximum of 100 operations per second allowed for M0 Free Tier and M2/M5 shared clusters.
M0 Free Tier and M2/M5 shared clusters are allowed a maximum of 100 connections.
M0/M2/M5 clusters limit the total data transferred into or out of the cluster as follows:
  • M0: 10 GB per week
  • M2: 20 GB per week
  • M5: 50 GB per week
Atlas throttles the network speed of clusters which exceed the posted limits.
M0 Free Tier and M2/M5 shared clusters have a maximum of 100 databases and 500 collections total.

Global Clusters

Atlas Global Clusters uses a highly curated implementation of sharded cluster zones to support location-aware read and write operations for globally distributed application instances and clients. Global Clusters support deployment patterns such as:
  • Low-latency read and write operations for globally distributed clients.
  • Uptime protection during partial or full regional outages.
  • Location-aware data storage in specific geographic regions.

How does MongoDB Atlas deliver high availability?

Billing

Deploying clusters onto Microsoft Azure

All MongoDB docs: https://docs.mongodb.com/
MongoDB Connector for BI docs: https://docs.mongodb.com/bi-connector/current/