In this post I would like to highlight the new support for MongoDB within the Veeam Data Platform 12.2 and in particular within Veeam Backup & Replication.
What is MongoDB?
I expect many of you have come across SQL and maybe heard of the term NoSQL but what does this mean? These are two types of databases amongst many others but the purpose of this section is to discuss and highlight that MongoDB is a NoSQL database.
a document-based, database management system (DBMS) that stores and manages data in flexible, JSON-like documents. It's a non-relational database, which means it doesn't use tables and rows like a relational database management system (RDBMS) does.
See what they say themselves about their offering - https://www.mongodb.com/company/what-is-mongodb
I will also add that MongoDB can be leveraged in many different platforms, It could be in the form of VMs making up your replicaset, it could be their SaaS based version which is called MongoDB Atlas, most of the public cloud providers also offer MongoDB as a PaaS option and you will also find it in the world of Kubernetes as well.
The Demo
In the demo video above we show off the protection of a MongoDB replicaset that is running across 3 virtual machines on VMware vSphere for demo purposes, and our mission critical application is Pac-Man which is running in a docker container and storing our mission critical data on our MongoDB cluster.
The demo runs through the protection of the cluster, then we simulate a failure and adding bad data to our database and then how we can use the new Veeam Explorer for MongoDB to restore from our mistakes.
Terraform & Ansible
I am not 100% happy with the Ansible stuff just yet but wanted to get the post out before heading out and hopefully can find some time to tweak the playbook to better handle the creation of that admin user.
Here is the GitHub repository - https://github.com/MichaelCade/mongodb-vm-tf-ansible
The Terraform code is to simply provision our 3 Ubuntu virtual machines into our vSphere environment from an already created template.
The Ansible playbook is going to handle everything else.
Pac-Man
If you have seen some of my Veeam Kasten for Kubernetes demos, you have likely seen me share the Pac-Man demo in a Kubernetes settings, this time I butchered things to run on a standalone docker container and connect to our replcaset on the previously mentioned VMs.
You can find my version here - https://github.com/MichaelCade/pacman-mongodb-external