Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's a good point, but Heroku has a much lower barrier of entry for people who are just starting out. You don't have to worry about configuring and maintaining a Linux box. Some people are willing to pay a premium to avoid those headaches and get back to what they really want to be doing: application development.


I'd argue the barrier is just as high. I taught a ten week course in back end development and I think the students would have done equally well deploying on a VPS or Heroku.

The curriculum called for using Heroku but I regret following it now. Heroku bills itself as being easy for a beginner but go ahead and try to deploy any simple Rails or Node project using their guides. Half the time something goes wrong. Either you need extra dependencies or you have to do extra configuration that the setup instructions didn't mention. In the end you have to look up how to check the logs and even if you get that far a beginner has no clue what those logs are really saying. Even as an experienced senior developer, I couldn't get the demo project I was showing them deployed without a ton of hassle and 4 attempts.

So while it may seem like a VPS has a lot more moving parts, it's a better deal overall. Same level of confusion and complexity for students but in the end they at least know a bit about how a server works (which Heroku hides) and it's way cheaper even with SSL. I could have run that same project for $30 up front and $10 monthly.


Many pet projects you can run for Free on Heroku. Their docs are pretty straight forward, not sure what your hiccups were but I've deployed quite a few sites to Heroku without much if any issues.

The asset pipeline in rails use to cause some issues but I think that has all been resolved with the 12 factor gem.

Also setting up a VPS is in no way easier than Heroku. You have to install nginx, ruby, mysql etc. Then you have to setup routing. Then you have to learn all sorts of sysadmin stuff so you don't get hacked. Setting firewall permissions, mysql permissions. Then you want to deploy that app. So you have to setup capistrano or whatever. Next thing you know day wasted.

Heroku?

    git push heroku master


Instead of spending money on a vps for my last side project, I went the heroku route and it was even easier. I spent 7$ on a private github repo.. which synced to heroku. And a free CircleCI account that also synced up with everything. Then just pushing my branch meant, automated testing and with heroku pipelines, a PR meant automatic test env.


Yes, my days of sysadmin work just to have an app in production are over. Heroku pipelines are great too!


Using AWS Elastic Beanstalk you can deploy by zipping a folder of your code and uploading it using a webpage form. The barrier for entry on cloud infrastructure is really low.

That's not the "right way" but arguably nor is using a Heroku box with no idea what's actually running on it.


$225 premium!? I mean come on. The article focuses a lot on the learning aspect of these exercises, and setting up your own services should really be a part of it. Especially for a one man operation. Typing apt-get install mongo / mysql / rethinkdb after the droplet is really all there is to it.


My experience as a one man operation is that you always have to make trade offs between building something yourself (especially if you actually need to learn a new skill-set to do it) and using someone else's solution. Honestly, in general this is essentially always the debate even at my regular job.

For me, Heroku has always been the choice over AWS or Digital Ocean. I haven't had it block me from doing anything I've wanted to do and my monthly bill is around $10 (for multiple sites). For my projects, I could never make a solid argument that moving away from Heroku would actually change the product for the end user in any meaningful way. And with the greater amount of time and energy I would need to focus on a non-Heroku server-side, it would likely slow progress.


Honestly, I don't really care what you use if it fits your needs. The main point here is that the author shut down his project, because they were spending $250 a month, to operate a very basic setup. Pick your favorite host, but a car payment to do so, is ludicrous.


I use both. I have a side project deployed to Heroku and it's fine there, but it costs me about $45/month. The same project would often have a better response time (when heroku sleeps the dyno) if it were hosted on DO, and both would require no maintenance (I haven't edited a line of code in ~2 years). It's a django/postgres setup, nothing special, and would run on the smallest DO instance.

I'm just too lazy to switch it over, honestly. I don't think it's a difference between "building it myself" and "using someone else's solution." It's about an hour of setup, maybe 2 if I encounter headaches. I probably ought to do it, given it'll earn me $35-40 per month forever.


> Typing apt-get install mongo / mysql / rethinkdb after the droplet is really all there is to it.

It's clear that the author was overspending—even a small dyno with a resource-hungry language like Rails can do a lot of traffic—but there's a lot more than just installing a web server, DB. Firewalls? WAL-E backups? Monitoring (of any kind)? A correct TLS setup? DB security?

Setting those up—in a way that you can replicate if the box is hosed—is a whole 'nother side project unto itself. Learning Ansible, Salt, etc. is great, but if your goal is to build X thing as a side-project, you'll never get anything done in a timely manner if you start reinventing wheels.


Sure, but most (all) virtual setups have automatic snapshots, and backups for a few bucks a month. The rest you mentioned, you SHOULD learn if you're getting your hands into web services. What happens when something goes wrong, who is fixing it if you have no idea how any of it is running? I guess I'm old school. You learn the basics first, and build upon it. It's not reinventing any wheel.


Before I quit using DigitalOcean, I enabled backups and found they were very spotty - occurring roughly weekly, but not on a predictable schedule (8 days, 6 days, 4 days, seemingly random). Not something to rely on in place of a real database backup policy (more like an emergency backup of last resort).

Plus, they recommend against[1] enabling backups for I/O heavy VMs (so, databases) because of the copy-on-write implementation and its effect on I/O performance.

I ended up going to AWS because I was tired of having to string together a web of iptables rules (e.g. when you provision a new webserver VM you have to iterate over your Postgres, Redis, HAProxy, Elasticsearch, etc. VMs to poke holes in their firewalls), setup WAL-E and monitoring it / testing backups, setup 3rd party monitoring VM resources for issues (CPU/memory/disk space), having to manage package updates and security fixes, aggregating logs to a 3rd party with rsyslog, all that stuff.

Unless your app is a complete throwaway that you don't care about getting hacked or losing all your data, you quickly have to start worrying about this stuff and it becomes a huge burden to roll it yourself on VPS providers.

[1]: https://www.digitalocean.com/community/tutorials/understandi...


I'm not in any way pushing the DigitalOcean setup. It was just cheap, easy to use, and offered FreeBSD as a host. I don't get spammed by them, no reliability issues, so I really don't have a reason to move at this time. If a project of mine gets too big, I'll evaluate then. But they are good for iterating lots of new ideas quickly.


I'm a former Linode employee, so you don't have to sell me on the advantages of the VPS. :) I think we need to remember that people new to programming don't know about all of the available tools and services. Costs could have been reduced by using a VPS, but they also could have been reduced without becoming a *nix expert. For instance, the author talked about buying SSL certificates, something that comes free with a CloudFlare account. They could have also used a CDN to reduce the load on their dynos.


I've had a site running on Heroku that has 200-300 visitors a day for almost 2 years. I'm still on the free dyno package. I wonder if I am just below some tipping point where I would need to bump up to the non-free stuff. My site runs fine and there are never spikes of traffic, it's pretty constant all throughout a 24 hour period.


@detaro, couldn't reply directly to your comment but so far they haven't charged me. They sent me a note saying that eventually I would be charged but maybe they got enough backlash that they decided to grandfather in the old dynos?


Your last sentence answered your question. Scale when it's a problem.


Did they grandfather "old" free dynos, or can you live with the forced off-time?


I don't regret a single penny I send to Heroku every month. It's just worth it for smaller to medium-sized projects when you don't have in-house dev-ops. Especially so for side projects when time is scarce.

I've attempted a number of times to bootstrap up my apps on DO, AWS, docker stuff, etc - all in anger. The Heroku tax is less than the time spent configuring, maintaining and monitoring my own servers.

In economic terms, this is called opportunity cost. That's time I could spent building features or playing guitar.


The problem wasn't that they used Heroku.

It's that they didn't exercise the sort of thrift possible with a website that has no users, and I'd wager that they didn't really know how to since they were a tenderfoot. I made similar mistakes as a beginner, paying too much for too little for things I didn't know I didn't need.

Heroku saves a lot of time for the 1-2 dynos ($25-50/mo) you need to vet your idea. With free Cloudflare SSL termination and a $5/mo t2.micro Postgres database, what else do you need?

For comparison, my somewhat popular forum with 257 online users at the moment and 300k req/day runs on 2 dynos. $50/mo for the application servers + a deploy/config solution is nothing.


> Typing apt-get install mongo / mysql / rethinkdb after the droplet is really all there is to it.

This is one of the reasons why web security is as bad as it is.

Even so heroku is not the right choice for this, way too expensive.


That is not relevant to this discussion, but I agree security should be a priority when developing anything.


Curious what you think the right choice for this is? Appfog, EngineYard?


Of those three (Appfog, EY and Heroku) I'd probably pick appfog, they have the simplest pricing model and the least chance of surprising you with some insane bill.


Not to mention DigitalOcean has excellent tutorials for beginners looking to set up quickly, like this one https://www.digitalocean.com/community/tutorials/how-to-inst...


@overcast For some reason I couldn't reply to your last comment but yea, absolutely, $225/month is ridiculous.


If the "reply" link doesn't show up in the thread view, try going to the comment's permalink page (by clicking on the timestamp).


Spinning up a DO droplet with an Ubuntu image and installing dokku is pretty darn close to Heroku ease of use when weighed against the cost/performance as well. Just configure ufw and sshd and you're off to the races. It's not exactly a hardened setup, but most side projects don't have much user data to start (or ever?).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: