A second-hand IBM X3650 in my basement. 16GB RAM, dual quad-core 3Ghz Xeons, dual power supplies, and hot-swap RAID 5 drives for less than $400 on eBay, connected through the Comcast connection I already have. The Comcast connection is the weak link. Google fiber would be so nice.
Since so many people here are saying Heroku, Linode, or AWS, I'm wondering if someone could explain the value proposition of these over a cheap VPS for most small to medium deployments.
I can get a 4GB ram VPS for $10/m, which seems orders of magnitude cheaper than the popular options. What am I missing out on?
Publishing to Heroku is as simple as 'git push'. Scaling is super easy too. Need a second instance of your webserver? 'heroku ps:scale web=2' is all you need to do.
Re: Heroku, free > not-free
4GB is unnecessary for small apps that aren't doing alot.
Managing a VPS takes non-zero time, heroku takes as close to zero time as required.
Your use case sounds different though, hence you're probably not missing anything.
Heroku at the moment. It has a good selection of add-ons (neo4j hosted for free) and I've found it "good enough". I have used nodejitsu before but when they bumped up all their prices for seemingly no reason, I left. Nodejitsu supports websockets whereas heroku only supports polling. Deploying to nodejitsu was a tonne faster than heroku.
I haven't tried Nodejitsu yet, but their pricing looks really good because they have a $9/month plan for low volume web apps. My gripe about Heroku (which I have used on customer and my own projects) is that the minimum monthly price to get always-on service is $35/month. (The free tier unloads your app if it has no traffic for a while so the next user waits for a loading request). I have several personal projects that I want always-on, but they are low traffic apps.
Their node stuff is hosted on Windows, so some compiled modules will fail. Also, have had the deployment status lie to me a _lot_. Big green ticks when my app failed to deploy. Telling me the app has been updated to a new commit while still blithely serving the old version for _three days_.
So far I've been using Heroku, but lately as the apps I've been trying to put together have begun to have more interconnected pieces, their service has started to become stifling. For example, getting nginx to proxy to Node requires convoluted setups like "buildpacks" and other Heroku-specific custom configs all of which can be alleviated by switching to a VPS, which is what I'm planning to do in the coming months.
EC2 for some things, dedicated hardware for some others.
Where it sits, however, is only part of the problem!
I use plz[1] and instagit[2] in tandem via post-receive hooks to do the "deployment" bit, along with a service registry (closed-source, written on work time, boo!) like seaport[3] and a proxy based on httppp[4] to route requests to the right application.
Obviously I don't have an opinion yet but my reason for giving it a try is that I've been told you get a free database instance in the same data center as your node instance, which is obviously good from a latency point of view.
I just used them for a small project and was really happy with it. They provide just a couple environment vars attached to the process object and you're good to go.
I was talking to some of their employees at nodeconf this year and they explained that since Heroku only routes one request to an instance at a time, it essentially blocks on each request and you never get to actually leverage the concurrency of node.
In my organization, we have a data center. For my own side projects, I have used linode, but I am considering looking at PAAS solutions if they aren't too expensive.
IIRC it's because they can't just attach an extra IP to their load balancers for each SSL site, since Amazon doesn't allow you to attach multiple elastic ips to one instance. So, they need to use an elastic load balancer for each site, which costs $18 per month + bandwidth. So they are probably actually just breaking even or losing money on that $20/month fee.
Me too. I'd love to use Heroku/AppFog/whatever but there always seems to be a snag (no websockets, no UDP traffic, bleh).
Might have to try Nodejitsu one of these days but the pricing kind of pains me when I think about how many low-traffic node apps I can host on a $5 DO.
Seconded. For our production game servers we've only used EC2 but a couple of us have started working with digitalocean for our own projects & are very happy with them all around.