MongoDB Atlas is a topic of conversation for many of the people who use MongoDB on a day-to-day basis, so I thought that I would quickly throw together a blog outlining what Atlas is and when/why you should use it.
What
MongoDB Atlas is MongoDB’s managed MongoDB as a Service. That means that Atlas takes the responsibility of hosting, patching, managing and securing your MongoDB cluster, and leaves you free for putting it to good use.
Atlas makes installing MongoDB as easy as clicking a button and answering 4 questions. Once that is complete you will have a MongoDB cluster running a few minutes later. Creating users and allocating limited permissions is easy and done through a nice UI.
Atlas also handles growing/shrinking your cluster when the need arises, and patching/upgrading your MongoDB cluster when new version is released. If metrics are your thing ther are some nice metrics and alerts to keep you abreast of whats going on in your database. It even has a cool real time dashboard!
Example of the nice metrics you get from the Atlas dashboard
Why
MongoDB Atlas takes the responsibility of doing the boring stuff of running MongoDB clusters away and leaves you to just use the fun stuff and not worry about your data or apps status. This means that most people who use MongoDB should be using MongoDB Atlas.
The only time you should NOT be using Atlas is:
- Your app runs on-prem and contracts or privacy statements dont allow you to store data with a 3rd party.
- You need large storage but not much query power.
- There is other privacy/compliance issues.
- Your app does not have internet access (firewalls, isolated environments)
- You are running 3rd party applications that require a very old version of MongoDB
If your app does not fall in one of the categories above then you should be using MongoDB Atlas.
Pricing/Sizing
MongoDB Atlas has many pricing and sizing options which helps keeps costs down when you start but allows you to grow your cluster to a production size quickly and easily when apps go live.
There are three MongoDB Atlas cluster tiers
Shared Clusters
Shared Clusters are the cheapest and smallest clusters that are priced perfectly for getting started with MongoDB. They are clusters of MongoDB instances that are shared with other MongoDB developers, but you get your own reserved slice. One drawback for this size is that there are a few features that are not available (VPC peering for example).
Dedicated Development Clusters
This is the cluster size for new apps getting some serious development done. It is the cheapest standalone sizing of MongoDB Atlas clusters, which means its great for apps that are starting to get a bunch of traffic. They also have all the major features enabled as well which is important for development.
Dedicated Production Clusters
These are the big instances for the big time apps. They are standalone clusters with plenty of resources to make sure that the MongoDB component of your app runs smoothly. They also have every feature under the sun enabled.
All the sizing options for MongoDB Atlas on AWS
If you look at the options that best suit your needs you will find that MongoDB Atlas is generally as expensive or cheaper than hosting MongoDB yourself.
Performance
MongoDB Atlas performs great for 90% of applications. Their flexibility to be co-located with a cloud provider of your choice means that there is no added network latency, and the boxes are tuned nicely to make sure MongoDB is humming along just fine.
MongoDB Atlas also provides a Performance Adviser which can advise you on ways to improve your applications performance, and a bunch of out of the box alerts that trigger in cases of poor performance being observed.
All in all MongoDB Atlas is a great way to get MongoDB running and should suit 99% of use cases for MongoDB day to day usage.
Until next time…
Tim Gray
Coffee to Code