I have a question that's been bothering me for quite a while. I'd be really thankful if someone could help me as I'm going to use MongoHQ for a project, but... I just don't get their service.
Let's say you're building a kinda RESTful API for yourself - for example, you're an online store and have a database for your users. Now you want to create an iOS client that talks to your server and after authentication and a lot of app logic (implemented in your server), the server responds to the client (by sending it a few JSON's, like user info and shopping history) and the client can send JSON's to the server, too (when the user changes something).
Traditionally, you'd implement the server logic in some language and deploy it on your machine, and start a database daemon on that machine (or another machine within your realm). You'd set them up to work with each other, and then you'd spend the rest of your time maintaining them! It's hard and requires a lot of knowledge, but the DB and server where "near" each other (physically) and your bottleneck was usually CPU/RAM, not network latency.
But now, the "cool" way is to write a rails/Node.js/... server and deploy it to heroku/nodejitsu/others and "borrow" a database from mongohq/redistogo/iriscouch/etc. NodeJitsu manages your Node.js app, and MongoHQ, your DB. They both do them much better than you, and everything seems nice.
But, now when a client asks the server for something, Node.js has to ask MongoHQ, which is God-knows-where and could easily take up to 300-500ms (or so I think). Then your server has to do its magic and do authentication and custom app logic and then respond back to the user.
And it's for Mongo, which is a database. How the hell "RedisToGo', for example, works? Redis is supposed to be extremely fast and performant. A redis store that it takes 400ms just to connect to it? It doesn't make sense.
----
I'd be thankful if someone could "educate" me - I really don't get these PAAS things.
I'm thinking of creating an app that's (probably) going to be on NodeJitsu and uses MongoHQ, but I'm really doing that with closed eyes, and it'll not an educated choice - the only reason I probably won't self-host them is because I've had bad experience with security stuff (a Linux VPS that someone broke into easily, and I don't have a clue how that happened!)
Dude, what ever you have written is very top notch high end architecture kind of stuff. I am very surprised that you did not knew about one small thing called amazon ec2 or cloud computing.
I don't claim to know everything, neither should you. We all learn constantly.
And I'm a student (not a full-time developer) and live far, far, far from Silicon Valley and everything I've built so far was either small things (like simple websites and school projects) or big projects (like ranking algorithm for a search engine) that were to be deployed on local servers (i.e. machines we bought and could physically touch - no fancy cloud computing stuff as you put it). I had never used ec2 before, and didn't know transferring data between multiple ec2 instances is fast and free to the point that you can deploy such a vital part of your server application on another machine (I knew it was free between your own ec2 machines, but I didn't know it's fast and free between all those millions of ec2 instances that are running in a region and aren't own by you).
I don't feel ashamed for not knowing that. The good thing about HN is that while most people here are extremely knowledgable, they rarely laugh at you when you ask something that's trivial (to them).
I think my comment got misunderstood. Infact I praised you that you lot of things. Only constant in life is learning.
Even though you are not full time but you still know more than average full timers.
We have been using MongoHQ for a bit now and their service has been quite good and very accommodating (especially when our db suddenly stopped storing data during a critical time).
However for a growing bootstrapped startup their cost structure isn't very linear. For improved performance you have to jump from a $49/mo to $637/mo plan which is pretty ridiculous.
This is an awesome and very helpful group of guys. They are one of the few companies I know that invests as much in great support as their tech. If you use Mongo on a project, you owe it to yourself to try them out.
agreed. i sympathise with mongohq's position as a proprietary SAAS provider, but if they can find a way to push any of this back, they should. tools matter.
Let's say you're building a kinda RESTful API for yourself - for example, you're an online store and have a database for your users. Now you want to create an iOS client that talks to your server and after authentication and a lot of app logic (implemented in your server), the server responds to the client (by sending it a few JSON's, like user info and shopping history) and the client can send JSON's to the server, too (when the user changes something).
Traditionally, you'd implement the server logic in some language and deploy it on your machine, and start a database daemon on that machine (or another machine within your realm). You'd set them up to work with each other, and then you'd spend the rest of your time maintaining them! It's hard and requires a lot of knowledge, but the DB and server where "near" each other (physically) and your bottleneck was usually CPU/RAM, not network latency.
But now, the "cool" way is to write a rails/Node.js/... server and deploy it to heroku/nodejitsu/others and "borrow" a database from mongohq/redistogo/iriscouch/etc. NodeJitsu manages your Node.js app, and MongoHQ, your DB. They both do them much better than you, and everything seems nice.
But, now when a client asks the server for something, Node.js has to ask MongoHQ, which is God-knows-where and could easily take up to 300-500ms (or so I think). Then your server has to do its magic and do authentication and custom app logic and then respond back to the user.
And it's for Mongo, which is a database. How the hell "RedisToGo', for example, works? Redis is supposed to be extremely fast and performant. A redis store that it takes 400ms just to connect to it? It doesn't make sense.
----
I'd be thankful if someone could "educate" me - I really don't get these PAAS things.
I'm thinking of creating an app that's (probably) going to be on NodeJitsu and uses MongoHQ, but I'm really doing that with closed eyes, and it'll not an educated choice - the only reason I probably won't self-host them is because I've had bad experience with security stuff (a Linux VPS that someone broke into easily, and I don't have a clue how that happened!)