Since we’re in the business of building web apps, hosting is always a question that comes up with our clients. In 9 out of 10 cases, we recommend Heroku. Clients are often surprised by this and have some misgivings or misconceptions when it comes to Heroku, so we’re taking this opportunity to touch on just a few of the reasons we love it so much.
One of the primary myths that clients have regarding Heroku is the cost. We’re not sure why people think it’s so expensive, but in most cases, it’s a bargain.
Many web apps, especially brand new ones, can get by just fine with a single web dyno and possibly a single worker dyno. That brings the monthly cost to a whopping $35. Add in the lowest cost PostgreSQL instance at $50 and your total is $85/month. That’s tough to beat, even by running your own bare EC2 nodes.
Plus, the setup cost of creating your own server stack cannot be overlooked. Even in this day and age, creating a production-ready server stack is a non-trivial task. If you want to do it in a traceable and repeatable way, using a tool like Chef, it’s going to take several hours at a minimum. Once you factor in the cost of that time, not to mention ongoing sysadmin, self-managed solutions get significantly more expensive.
Ultimately, there will come a point where running your own infrastructure represents a significant cost savings over Heroku. However, deploying to Heroku first and migrating away when it makes good business sense provides maximum flexibility. This approach gets you launched faster for less initial investment, while still providing the ability to scale up as necessary.
While we at The Agile League pride ourselves on being full-stack developers, none of us relish system administration duties. Installing upgrades to Apache, configuring services like Monit or God, and installing new system packages are all tasks that take significant time while presenting little visible value to our clients. We know they’re important, but it’s often hard to explain and justify the importance to clients.
With Heroku, it all just works. Their server architecture is fully managed, allowing us to focus on what matters to clients: The application layer. We spend our time writing new features instead of troubleshooting server issues.
While I eluded to this in the discussion of cost, the simplicity of scaling a Heroku app cannot be understated.
With old-school bare metal, you had to buy and rack new servers at significant cost. With the move to VPS’s, it was much simpler and cheaper to just provision a bigger VPS. But you still had to migrate to the new machine, a non-trivial process. With Heroku, you run a single command to increase your dynos and you’re instantly scaled up.
Even more impressive is the ability to scale down. Just got featured on Reddit or TechCrunch? Crank up the dyno count and weather the storm. As soon as the hype dies down, you can reduce the dynos back to a lower number and continue normally. Your web app stays responsive the whole time, but you don’t have to pay for a massive upgrade just to handle a single burst.
Heroku represents the best possible scaling “problem”: The limit to how much you can scale depends on how much you can pay. Scaling problems that can be solved with money are understandable and tractable. Contrast that with scaling issues that require heroic feats of engineering or genius-level architecting. These scaling attempts may require a huge time investment with no guarantee that you’ll be successful. With Heroku, you can (and should) always try spending money (ie. scaling up your dynos) first before taking the plunge on more exotic approaches. That’s not always an option when using other hosting solutions.
These are just a few of the reasons we like Heroku, and why it’s a great fit for most of our clients. With Heroku you can launch quicker, run leaner, and scale faster than pretty much any other solution out there.