Tuesday, July 5, 2016

Review: MongoDB Atlas Database-as-a-Service

MONGODB ATLAS

The big news at MongoDB World 2016 last week was the launch of Atlas, MongoDB's own Database-as-a-Service (DBaaS). Atlas makes deployment and management of MongoDB easier, with managed hardware provisioning, failure recovery and backups.


Atlas is currently available on AWS, with the service soon available within Azure and Google Platform.


OUR TAKE
For MongoDB, Atlas is a logical entry into the DBaaS world, as it focuses on additional revenue streams from its open source model.


With this move, MongoDB is encroaching into the domain of current MongoDB DBaaS players, most notably mLab and compose.io (acquired by IBM last year). There's little doubt that there's potentially a significant market for Atlas: MongoDB has been downloaded over 10M times; there are over 300K hosted deployments on mLab.


So does this spell doom and gloom for current MongoDB DBaaS vendors? Not so fast.


While we expect Atlas to eventually be the leader within the MongoDB DBaaS market, current market leaders have already aligned their strategy to support "polyglot" persistence models. Polyglot persistence implies using the right database for the right workload. For example, an organization may use relational databases for structured data, ElasticSearch for search, Redis for caching, Cassandra for high volume writes, MongoDB or Couchbase for semi-structured data, etc.


We believe that this is a wise strategy on their part, as NoSQL vendors will logically be locked into selling their own DBaaS. In our own experience, polyglot database architectures are quickly becoming the norm rather than the exception. For DevOps in a polyglot environment, managing a single platform like compose.io is more appealing for than managing multiple DBaaS providers.

ATLAS - FIRST IMPRESSIONS

BUILDING A CLUSTER


Building a cluster in Atlas was delightfully straightforward: simply specify the AWS region, instance size, storage and a few other things like encryption and payment details to provision your cluster.


Provisioning took approximately 10 minutes for a 3 node cluster.   


PRICING

Atlas paid plans are hourly and currently starts at $56/month based on the size, storage and nodes.


There are no free/sandbox environments within Atlas. If you are looking for an environment to kick the tires, mLab provides a sandbox that’s free to get started.


Paid plans at mLab start at $15/mo and $31/mo for compose.io. Pricing plans differ across all three, so we recommend determining your own usage needs to compare pricing across all three based on your own requirements.


Atlas pricing is clearly displayed during the provisioning process. Atlas also presents the monthly costs incurred transparently, on the dashboard updated on a daily basis.

CONNECTING

After the nodes are provisioned, Atlas will prompt you to setup IP whitelists for outside connectivity into the cluster. This was also a painless process, with the ability to add IPs to the whitelist, being able to download client drivers as well the shell all in one neatly packaged dialog.




Atlas enables you to create database users via the 'Security' tab.  However, creating users against specific databases can be a bit confusing. Users created will be defaulted to the admin authentication database (we were not able to find a way to change this within Atlas). So, when you try to connect to your own database, remember to pass in admin as the authentication database parameter into the connect string.


Example:
> mongo mongodb://c9demo-shard-00-00-zito5.mongodb.net:27017,c9demo-shard-00-01-zito5.mongodb.net:27017,c9demo-shard-00-02-zito5.mongodb.net:27017/test?replicaSet=C9Demo-shard-0 --ssl -authenticationDatabase=admin --username <user> --password <pass>


DATA IMPORT
By default, the clusters are empty without any sample data. In addition, our client download did not contain mongoimport utility as part of the download; it was only enabled us to connect to the cluster.


Here's what we did:
  a) Downloaded a sample JSON dataset.
  b) Used MongoHub to import the JSON file into a collection.
 
It would have been nice if Atlas provided the ability to seamlessly import test databases directly from the portal.


QUERY/ANALYZE/VISUALIZE
There are no query facilities within Atlas, so you'll need mongo shell or a third party client application to peek into the data after import.


See Part 2 of this blog around visualization and analysis of data hosted in Atlas (using Cloud9 Charts).


OPERATIONAL
We found the operational aspects of Atlas to be quite comprehensive:


Metrics
Each node in the main dashboard opens up a variety of operational metrics for the node, with realtime database, hardware and other stats as well as the ability to customize the metrics displayed.


Alerts
A configurable set of operational alerts, with the ability to define groups, roles and conditions upon which alerts can be raised.


Backups
Backups are automatically managed, with a configurable schedule on when snapshots are taken.


SUMMARY


We found Atlas to be easy to use with painless cluster deployment and management. We were also quite impressed by the operational aspects of the solution. Database setup and user management needs some refinements, but overall, it looks like MongoDB might have a winner in its hands.


Jay Gopalakrishnan is the Founder of Cloud9 Charts, the leading native analytics platform on NoSQL databases.

Read on for analysis and visualizations natively on a hosted Atlas deployment.