Since we initially started as a Microsoft Shop we had lot of love for Microsoft Azure Storage:- A flat file system designed by Microsoft Azure which is pretty cheap and extensible! When asked to use MongoDB for a project by a client( yup…our clients are fairly technical and dictate technologies!) we cribbed and cried and gave in!…..and finally we loved it!
So overall we felt there were some good points in MongoDB over Azure Storage
1. MongoDB does not seem to require complicated approach to create a “partition key” and “row key” as Azure storage
2. It had indexing on single as well as multiple keys as an option to speed up queries
3. It allowed an easy Upsert option ( Table Storage also has InsertOrReplace though)
4. There were .NET drivers available to work with MongoDB
There were ofcourse other issues since we wanted to host on Azure and while the extensible Azure table storage is inbuilt supported , hosting MongoDB on Azure is an IAAS installation on VMs( unless we use MongoLabs which is pretty expensive for huge data).
A basic, highly available MongoDB database typically runs using three medium-size Azure Worker role instances, each hosting a replica node in the replica set. However, if you enable sharding, you will add at least three additional small instances that run the routing and config server processes — bringing the minimum size for a sharded implementation to six Azure role instances. The replica nodes and the config server nodes each store their data as Virtual Hard Disks (VHDs) in Windows Azure Blob storage .
Ultimately we ended up hosting with a paid MongoLabs account who provided excellent support and guidance during a planned Azure maintainence which greeted us as soon as our service went live!
Are you trying to decide what to use for your next project? Talk to us and lets figure it out together! And oh don’t forget….there is also the DocumentDB now!!