Recently had a customer come up and wanted to know why we push for using MongoDB as a managed service instead of manually installing MongoDB in a server and using it. The following is the list of points that can summarise as to why we should go for managed mongoDB service if we are dealing with a system which needs high performance, one that has heavy load and one that needs scaling without much effort.
Increasing Storage space when data size increases:
If we have a current configuration of 50GB HDD and while scaling it up, attaching additional storage space will cause synching issues as original MongoDB is installed in primary memory. An easy way is to make an image of the current machine, spin another machine using the image, but with higher configuration(increased storage space). This will ensure that MongoDB resides in primary memory itself without any sharing of data between different disks.
If the DB is to be scaled to a large level in future, then the Administrator will have to do Sharding and create replica sets as per standards provided for better performance under heavy load in future. Manually scaling up is not a straight forward task.
Why we suggest Managed MongoDB service compared to manual management?
Creating a deployment is basically “table stakes” – the real work starts after that. The following are the items that are to be handled manually. Note that the list is very high level.
- Taking Backups
- Restoring DB
- Performance Issues
- OS patching
- Machine issues
- Scaling up – Sharding & Replica set creation
- Scaling down
- Query analysis – To improve speed and performance
- Dealing with mongo bugs
- MongoDB updates & patches.
With a managed service like ObjectRocket or MongoDB Atlas everything is taken care of for you. If you run into any issues – machine failures, scale issues , upgrade etc the managed provider will take care of it for you. If you run your own machines you are responsible to handle all this. If you have the expertise and time do this then it might be an option for you.
Moving from Manual MongoDB to Managed Server
The migration can happen in the following ways depending on the size of DB:
- DB dump and import to Managed service through shell access or interface – As the size of DB increases, #1 will become ineffective. Our application could easily hit 50GB space in a matter of few months.
- Insert data using separate API – This is a time consuming process where completion of data transfer may take days depending on the size of DB and 100% accuracy in transfer cannot be guaranteed.
Managed MongoDB vs Manual Management –
Ransomeware attack –
Best Practise for Manual Management –