Looking to deploy an existing Mongodb-backed solution to the cloud for a client.
I'm hoping to combine MongoHQ and Azure to use the simplest possible Mongodb deployment together with the simplest possible .Net deployment.
Possible problems I can think of on top of my head includes latency (how much to expect from crossing between clouds) and extra bandwidth usage (this of course depends completely on the app in question).
My question is if anyone here has done anything similar before and knows any pitfalls I should be aware of?
Aside from latency and bandwidth charges (as you already identified), consider security. While passwords are sent over the wire encrypted, data is not, unless you enable SSL (which requires you to build
mongod
). I don't know if MongoHQ provides an SSL endpoint for you.I'm not suggesting your data will necessarily be vulnerable, as I don't know the path it's going to take through the 'net. But... it is something to consider, especially if you're dealing with some type of sensitive data.
I know of several implementations that use .Net (primarily the C# driver) on Windows and then have MongoDB running on Linux on the backend without a problem. The Windows platform is supported of course, but if you have the option I would deploy the mongod instances on Linux instead - it is by far the more popular and best tested solution.
There should be no problem mixing PHP and .Net drivers per se - and I have seen multiple drivers used without issue. However, I would recommend being careful about connection management - the PHP driver code in this area is being rewritten as we speak but in the meantime, the non-thread safe forking nature of PHP can cause a lot of connections to build up very quickly. Adding in another driver (on the .Net side) and you will need to pay particular attention to connection pool settings, ulimits on Linux etc.
It's hard to give a very specific question to a general question such as this, if you have specifics to add I can try answering them.