SYS-CON MEDIA Authors: Pat Romanski, Yeshim Deniz, Zakia Bouachraoui, Liz McMillan, Janakiram MSV

Blog Feed Post

Comparing Cloud MongoDB Services: MongoDB Atlas vs mLab

Choosing a database service provider for running your MongoDB deployments is not a decision to be taken lightly. You need a partner that you can trust to keep your databases available, secure, and running according to best practices. For aspects of your cluster that you do want to control, the service provider should offer powerful and intuitive toolsets that make it simple for you to trigger updates and modifications. And finally, support should not only respond quickly to issues but also be able to provide timely resolution. Ideally your database service can fulfill all of these requirements, allowing your teams to focus on building apps instead of managing databases.

In the following sections, we will compare MongoDB Atlas, the database as a service from the engineers that build the underlying database, with mLab, a service from a third party provider, across a few different parameters. Both MongoDB Atlas and mLab are available on Amazon Web Services, Microsoft Azure, and Google Cloud Platform. We will then provide a step-by-step example of how to migrate an existing MongoDB database from mLab to MongoDB Atlas. What’s more, we’ll show you how you can qualify for 3 months of Atlas usage for free when you switch over from mLab.

Let’s start by comparing some key operational aspects of the two database services.

Security

MongoDB Atlas is highly secure out of the box. Features like network isolation, TLS/SSL, and encryption of data at rest are included at no extra charge. If you’re deploying on AWS, MongoDB Atlas also supports VPC Peering, allowing your cloud databases to communicate with your application instances as if they are within the same network.


mLab provides SSL at an additional charge. Also, while encryption of data at rest is available for mLab databases running on AWS and GCP, it is not yet available for Microsoft Azure.

Security MongoDB Atlas mLab
SSL Included Additional Cost
Encryption of data at rest Available on AWS, Azure, GCP Available on AWS, GCP
VPC Peering Available on AWS Available on AWS

Backup & Recovery

If you’re using a database service for a production app, chances are that business continuity planning and associated terms such as recovery point objective (RPO), your data loss tolerance, and recovery time objective (RTO), how quickly you can recover, are top of mind.

MongoDB Atlas gives you access to continuous backups for replica sets and sharded clusters. This fully managed backup service allows you to restore to any point in time so you can meet even the most unforgiving RPOs from the business.

For satisfying stringent RTOs, MongoDB Atlas makes it simple to initiate restores straight from the platform GUI. MongoDB Atlas backups are queryable, allowing you to perform granular restores at the document level in a matter of minutes. This saves you time, money, and effort in any scenario where portions of your data are lost or corrupted.

Note that fully managed backup with MongoDB Atlas is priced separately. You get the first GB free for each replica set. If you decide to perform backups using the mongodump utility, its no additional cost but you do not get access to the rich functionality that MongoDB Atlas backups provide.


mLab’s backup solution does not support continuous backups, making it more difficult to satisfy RPO requirements. Up to 8 snapshots can be stored. Also missing is an easy way to perform backups or restores for sharded clusters.

mLab does not support queryable backups, meaning that any restore event must be a full database restore, which can take hours or more.

Backup & Recovery MongoDB Atlas mLab
Continuous backups with point in time restores Yes No
Automated backup and restores of sharded clusters Yes No
Queryable backup snapshots Yes No

Configuration Freedom

MongoDB Atlas gives you control where you want it. For example, you can select an instance size and then independently add storage, I/O, and replica set members; you can even change a replica set into a sharded cluster straight from the Atlas UI. All of these parameters can be modified by you as needed so you can always scale and remain flexible in any situation your app may require.


With mLab, your options are more limited. You can choose different instance sizes but all of the qualities of your underlying deployment are fixed. And while mLab does support sharded clusters on AWS and Google Cloud Platform, they are not yet available on Microsoft Azure.

Configuration Freedom MongoDB Atlas mLab
Choice of instance configuration Yes Partial

Different instance sizes can be chosen, but CPU, memory, storage & I/O are fixed for each instance size
Sharded clusters Available on AWS, GCP, Azure

Sharding can be enabled at time of launch or at a later time.
Available on AWS, GCP

Always Up to Date

With MongoDB Atlas, maintenance version updates for your database – e.g., from MongoDB 3.4.4 to 3.4.5 – are automated in the background so you don't have to worry about applying the latest revision yourself. This means that you always have the latest bug fixes, security patches, and any other critical updates for MongoDB.

MongoDB Atlas also makes it easy to upgrade to the latest release of the database, which is available in the database service platform as soon as it is made generally available. You can see how to trigger these automated upgrades by viewing this video tutorial on upgrading with MongoDB Atlas.


With mLab, new versions of MongoDB are typically available in the platform a few quarters behind. This means new MongoDB features — which you may already be experimenting with from the development releases — are not available to you for months after other organizations are already using them.

Updates MongoDB Atlas mLab
Immediate availability of the latest version of MongoDB Yes No

New versions typically available 1-2 quarters following database release

Support from MongoDB Engineers

MongoDB Atlas is the only MongoDB service that offers support from the engineers that build the database. There is no better team to help you with designing, deploying, and scaling MongoDB for your different applications. Our team of experts is also the best equipped to bring resolution to break/fix issues in a timely manner.

With MongoDB Atlas, the team behind the service acts as an extension of your team by using the operational metrics collected by MongoDB Atlas to detect, diagnose, and troubleshoot potential issues before they turn into problems for your deployment. If we spot a potential issue, we will open tickets in our support portal on your behalf and collaborate with our global technical support team to examine and address any peculiarities.


While mLab offers email support and a 24x7 emergency hotline for dedicated MongoDB clusters, their support team is not directly affiliated with and has no formal relationship with the team that engineers the database.

Support MongoDB Atlas mLab
Access to support from the team that engineers the database Yes No
Access to proactive issue detection, diagnosis, and troubleshooting Yes No

Integration with Stitch: Backend as a Service

MongoDB Atlas integrates directly with the MongoDB Stitch Backend as a Service (BaaS). MongoDB Stitch lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastructure. Whether you’re just starting up and want a fully managed backend as a service, or you’re part of an enterprise and want to expose existing MongoDB data to new applications, Stitch lets you focus on building the app users want, not on writing boilerplate backend logic.

Stitch gives developers full access to MongoDB, the ability to declare fine-grained data access controls, and composability with other services. Initially Stitch is available for MongoDB Atlas on AWS, and is currently in beta release.

Migrating from mLab to MongoDB Atlas

So far we’ve covered just a few of the major differences between MongoDB Atlas and mLab. If you’re considering starting with a database service provider, you can start with a free MongoDB Atlas cluster, which gives you 512 MB of storage for development and early prototyping.

If you happen to be an existing mLab customer, you can now migrate your cluster to MongoDB Atlas and qualify for 3 months of free usage. Fill out the form here to learn more.

Below we’ll describe how you can use the embedded live migration service in MongoDB Atlas to import your data from mLab with minimal interference to your application.

Pre-requisites

You'll need to ensure your MongoDB Atlas cluster is created and fits the size and use case of your app. Note that the free M0 sandbox does not support our live import tool. You will need to use one of our paid customizable instance sizes.

MongoDB Atlas

Ensure that your cluster on the mLab side meets the version compatibility requirements when importing your data into Atlas. Atlas live migration supports the following migration paths:

Source Replica Set Version Destination Cluster Version
3.0 3.2
3.2 3.2
3.4 3.4

Getting Started with Your mLab Source Cluster

On the mLab source server, you will need to create an "admin" user for your migration. You can go to your cluster in your mLab control panel, then click the "admin" database.

mLab cluster

Once you've entered this section, you'll need to create a user with the admin database. Go ahead and click "Users" and then find the button that says "Add admin user." You can name this anything you want, but for the sake of simplicity, we’ve named our user "admin" in our screenshots; be sure to hold onto your password. You will want to ensure that the "admin" user has the "Read Only" flag set to false to ensure you have rights to all collections.

mLab

Once you've set up the username, ensure you are also able to reach the firewall. You can add the two management IPs from Atlas to ensure the service can reach your cluster.

  • 4.71.186.128/25
  • 4.35.16.128/25
  • Once these IPs are added, you're ready to set up the target on MongoDB Atlas.

    Configuring the Target Cluster in MongoDB Atlas

    After your new cluster within Atlas is created, there are only a couple more steps before you can initiate the migration. First, head to your Atlas control panel and find the "Migrate Data to this Cluster" button next to your cluster details.

    MongoDB Atlas

    A new window providing you details on required actions is surfaced next. This window will detail some of the requirements such as the authentication details, the primary hostname, and a CAFile if you’re using SSL on your source replica set. This certificate is signed by DigiCert's Global Root CA on the mLab side.

    Note that if you're using a system that does not have access to this Root CA, you can follow these instructions on downloading the mLab root SSL certificate.

    Now that we’ve prepped everything, it's time to click "I'm ready to migrate".

    MongoDB Atlas

    Starting Your Migration

    You’ll be taken to a window that asks you for information about your source cluster. This is where we will require the "admin" user from mLab. If you are using SSL with mLab, ensure you enable this as part of your configuration when inputting the rest of your credentials.

    In our example, we only have a single node, so by default this node will be the primary we provide to the dialog box. After we click "Validate", we will be given a green window stating that the oplog is readable from the import service, and that we’re ready to migrate our data.

    MongoDB Atlas

    If you’ve reached this point with us, you can now go ahead and click "Start Migration" to begin the migration process.

    While the data is migrated, we will see the progress bar in our MongoDB Atlas cluster continue to update until we are provided with an indication of the completion of the initial sync from our “mLab” replica set to our new MongoDB Atlas cluster.

    MongoDB Atlas

    Setting Up Database Users

    With MongoDB Atlas’ user management capabilities, we can configure a "least privilege access control" for our app. In our example, we will go to Security → MongoDB Users and create a user for our webapp with access only to the database "people-list", which is where new writes will be stored.

    myapp:PRIMARY> show databases
    admin        0.000GB
    local        0.000GB
    people-list  0.163GB
    

    MongoDB Atlas

    Now we can take this user information and our connection string from MongoDB Atlas and begin the process of switching over in our app. We can click the "CONNECTION" button on the cluster window pane and get the default login for our cluster. Be certain to update the username, password and database from the defaults when inserting it into your application.

    Cutover and Update Connection String

    It's time to finalize our migration. We can now click the "Start Cutover" button, which will provide us with details on how to complete the import to Atlas. You will be provided with instructions to stop your app; in our case, we can just stop NodeJS. Next, we’re going to wait for the optime gap to reach zero in the window; this means our sync is up to date with the last changes to the oplog:

    MongoDB Atlas

    We can now modify our application's connection string to reflect our MongoDB Atlas cluster.

    Finally, we can click "I'M DONE" in our import window. Once we’ve done that, we can simply restart our app.

    MongoDB Atlas

    Conclusion

    For organizations that would rather spend time building apps than managing databases, MongoDB Atlas offers unique advantages over third party MongoDB service providers.

    If you’re new to managed MongoDB services, we encourage you to start with our free tier. For existing customers of third party service providers, be sure to check out our migration offerings and learn about how you can get 3 months of free service.

    Read the original blog entry...

    More Stories By Mat Rider

    MongoDB is a document database with the scalability and flexibility that you want with the querying and indexing that you need.

    Latest Stories
    Financial enterprises in New York City, London, Singapore, and other world financial capitals are embracing a new generation of smart, automated FinTech that eliminates many cumbersome, slow, and expensive intermediate processes from their businesses. Accordingly, attendees at the upcoming 23rd CloudEXPO, June 24-26, 2019 at Santa Clara Convention Center in Santa Clara, CA will find fresh new content in full new FinTech & Enterprise Blockchain track.
    At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
    As you know, enterprise IT conversation over the past year have often centered upon the open-source Kubernetes container orchestration system. In fact, Kubernetes has emerged as the key technology -- and even primary platform -- of cloud migrations for a wide variety of organizations. Kubernetes is critical to forward-looking enterprises that continue to push their IT infrastructures toward maximum functionality, scalability, and flexibility. As they do so, IT professionals are also embr...
    In today's always-on world, customer expectations have changed. Competitive differentiation is delivered through rapid software innovations, the ability to respond to issues quickly and by releasing high-quality code with minimal interruptions. DevOps isn't some far off goal; it's methodologies and practices are a response to this demand. The demand to go faster. The demand for more uptime. The demand to innovate. In this keynote, we will cover the Nutanix Developer Stack. Built from the foundat...
    CloudEXPO has been the M&A capital for Cloud companies for more than a decade with memorable acquisition news stories which came out of CloudEXPO expo floor. DevOpsSUMMIT New York faculty member Greg Bledsoe shared his views on IBM's Red Hat acquisition live from NASDAQ floor. Acquisition news was announced during CloudEXPO New York which took place November 12-13, 2019 in New York City.
    AI and machine learning disruption for Enterprises started happening in the areas such as IT operations management (ITOPs) and Cloud management and SaaS apps. In 2019 CIOs will see disruptive solutions for Cloud & Devops, AI/ML driven IT Ops and Cloud Ops. Customers want AI-driven multi-cloud operations for monitoring, detection, prevention of disruptions. Disruptions cause revenue loss, unhappy users, impacts brand reputation etc.
    At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
    BMC has unmatched experience in IT management, supporting 92 of the Forbes Global 100, and earning recognition as an ITSM Gartner Magic Quadrant Leader for five years running. Our solutions offer speed, agility, and efficiency to tackle business challenges in the areas of service management, automation, operations, and the mainframe.
    The graph represents a network of 1,329 Twitter users whose recent tweets contained "#DevOps", or who were replied to or mentioned in those tweets, taken from a data set limited to a maximum of 18,000 tweets. The network was obtained from Twitter on Thursday, 10 January 2019 at 23:50 UTC. The tweets in the network were tweeted over the 7-hour, 6-minute period from Thursday, 10 January 2019 at 16:29 UTC to Thursday, 10 January 2019 at 23:36 UTC. Additional tweets that were mentioned in this...
    The standardization of container runtimes and images has sparked the creation of an almost overwhelming number of new open source projects that build on and otherwise work with these specifications. Of course, there's Kubernetes, which orchestrates and manages collections of containers. It was one of the first and best-known examples of projects that make containers truly useful for production use. However, more recently, the container ecosystem has truly exploded. A service mesh like Istio a...
    Technology has changed tremendously in the last 20 years. From onion architectures to APIs to microservices to cloud and containers, the technology artifacts shipped by teams has changed. And that's not all - roles have changed too. Functional silos have been replaced by cross-functional teams, the skill sets people need to have has been redefined and the tools and approaches for how software is developed and delivered has transformed. When we move from highly defined rigid roles and systems to ...
    After years of investments and acquisitions, CloudBlue was created with the goal of building the world's only hyperscale digital platform with an increasingly infinite ecosystem and proven go-to-market services. The result? An unmatched platform that helps customers streamline cloud operations, save time and money, and revolutionize their businesses overnight. Today, the platform operates in more than 45 countries and powers more than 200 of the world's largest cloud marketplaces, managing mo...
    Docker and Kubernetes are key elements of modern cloud native deployment automations. After building your microservices, common practice is to create docker images and create YAML files to automate the deployment with Docker and Kubernetes. Writing these YAMLs, Dockerfile descriptors are really painful and error prone.Ballerina is a new cloud-native programing language which understands the architecture around it - the compiler is environment aware of microservices directly deployable into infra...
    The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential. DevOpsSUMMIT at CloudEXPO expands the DevOps community, enable a wide sharing of knowledge, and educate delegates and technology providers alike.
    The platform combines the strengths of Singtel's extensive, intelligent network capabilities with Microsoft's cloud expertise to create a unique solution that sets new standards for IoT applications," said Mr Diomedes Kastanis, Head of IoT at Singtel. "Our solution provides speed, transparency and flexibility, paving the way for a more pervasive use of IoT to accelerate enterprises' digitalisation efforts. AI-powered intelligent connectivity over Microsoft Azure will be the fastest connected pat...