Why I love MongoDB?
First, a short story when I meet MongoDB
Did I tell you that my favorite NoSQL data storage system is MongoDB? Yes, I like a lot this document-based data storage solution; it have saved my job a lot of times right now. Why? Easy: in one of my journeys like IT Consultant to Venezuela, when I was working with PDVSA‘s fellows (great guys !!!), we had a huge MySQL 4.0 database (yes, you should note that was a very old version of MySQL, now my recommendation is Percona Server for MySQL users) which was giving a lot of headaches to DBAs. This was the main database of an importan application in the company, so, all bosses were running from one side to another, giving a lot of commands to everyone.
So, I came to the office and I asked to my colleagues what was happening, and one of them told me:
“We have a huge MySQL database with a very old version which is giving a lot of troubles, Can you help us to solve this?”
, and I said:
“OK, I will try to help you, but I just want to you one request: I will use Open Source in every part of the application”
, and they were agree with me, because one of the root causes for the errors of the application was that the main application was written in ASP.Net, with a lot of bugs, without a single piece of documentation, so, it was easy to rewrite the entire application using a great framework. On my team, there were two Ruby on Rails experts, and I said to them:
“We should rewrite the entire application, and I think that the best option is Ruby on Rails, because you work on it, and you love it, so, What do you think?”, and they told: “Let’s go”
So, the problem now was to define the storage layer. I’m a PostgreSQL long and proud user, and obviously, was first option, but I wanted to try something new from the new NoSQL movement. I was heard about a great project called MongoDB which was a document-based data layer, with an incredible write performance (that was when MongoDB just released the version 1.8, before of the great news of the Global Lock removing and the new aggregation framework in 2.2). What? What is this? and How can we combine this new data layer with Rails?
OK, this was a new challenge for my curious mind, and I began to search all required information to work with MongoDB, its integration with Rails, and a way to migrate from MySQL to MongoDB. After two weeks of playing with MongoDB in a virtualized environment, installation, configuration, reading about production’s tips from David Mytton (@davidmytton), one of the founders of Boxed Ice, the company behind ServerDensity; from Attachments.me guys, and many others known like MongoDB Masters; I was ready to write a small prototype for my team, developing the famous Depot application using Rails 3.0, MongoDB 1.8 and MongoMapper like my ODM. In 35 minutes, I had a working version of the application, and my colleagues said: “OK, we are going to use MongoDB for this app.”
We began to work on this, and we found great resources in our journey:
- The official MongoDB’s docs
- How to integrate Rails and MongoDB in CloudFoundry
- MySQL migration to MongoDB from The Scale-Out blog
In the next two months, we worked very hard: my job was the data layer, in the migration from MySQL to MongoDB, trying to create the best design for the new layer, working aside with my colleagues. I had to say you: it was a hard and challenging work, but fun, because a I learned a lot things in this time. Right now, the application is running and until this minute, haven’t had any outage, serving more than 2 TB of data from MongoDB, with an architecture based on two Master and six Replica Sets, and is working very well. Did you see the last version of MongoDB?
My job now with MongoDB
What I’m doing right now with MongoDB? I’m the Product Manager for a Cloud-based app for Database monitoring, focused now on PostgreSQL, but with big plans to include MongoDB, MySQL/Percona and some NoSQL flavors. The data layer for this application is MongoDB, for its great features for real-time monitoring; is written using Django 1.4 (Yes, I’m a Pythonist), and there are many good projects that are part of the stack: Nginx like HTTP Server with uWSGI, Varnish-Cache like HTTP Accelerator and caching system, RabbitMQ like Message broker and many more great tools.
Do you want to know more about MongoDB?
If you want to know more, you have two amazing options:
- On Monday 28th, Charity Majors, System Engineer at Parse will give a Free Webinar called “Best Pratices for MongoDB on AWS“. It will be at Thursday March 28th 11:00am PDT / 2:00pm EDT / 6:00pm UTC.
- To keep updated with the next events related to MongoDB, you visit this site.
The great team at 10gen
I can’t forget to mention the support of the great 10gen‘s team, the company behind MongoDB, which are really, really awesome: Steve, Dwight, Eliot, Kristina, Kyle, Meghan (one of the best Community Managers of our time) are some of this high performance team, which many engineers fallen in love from Data, dream with to be part of it.
So, What are you waiting for? Register here and enjoy a great journey to the MongoDB galaxy.