paint-brush
The End of Heroku?by@s.anderson
21,895 reads
21,895 reads

The End of Heroku?

by Scott AndersonJune 2nd, 2017
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

There’s no denying that <a href="https://www.heroku.com" target="_blank">Heroku</a> changed the face of the web hosting as we know it. Before they came along, we were stuck building and configuring servers mostly from scratch, dealing with the pitfalls of shared hosting, and/or having to wrap our heads around the complexities of cloud deployment strategies. Heroku introduced a system that made it easy to architect apps, deploy them to a flexible cloud infrastructure, and scale them as needed — innovations that quickly solidified their position as <em>the</em> Platform as a Service (PaaS) and made them a household-name in most web <a href="https://hackernoon.com/tagged/development" target="_blank">development</a> circles today.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - The End of Heroku?
Scott Anderson HackerNoon profile picture

There’s no denying that Heroku changed the face of the web hosting as we know it. Before they came along, we were stuck building and configuring servers mostly from scratch, dealing with the pitfalls of shared hosting, and/or having to wrap our heads around the complexities of cloud deployment strategies. Heroku introduced a system that made it easy to architect apps, deploy them to a flexible cloud infrastructure, and scale them as needed — innovations that quickly solidified their position as the Platform as a Service (PaaS) and made them a household-name in most web development circles today.

Heroku is a great company that I’ve been able to rub shoulders with over the years — both as a user and as a recipient of a buyout offer (a story for another time). They blazed the trail for commercially viable PaaS’s, an industry in which I’ve spent the last seven years, and proved that PaaS’s can (and do) fulfill real business needs. I don’t want to take anything away from what they’ve done, but I’ve noticed a trend lately. I’ve seen more and more developers looking for Heroku alternatives.

Why Are People Looking Elsewhere?

In the conversations I’ve seen and heard, there are three common complaints:

Heroku Gets Expensive Really Fast

Far and away, the biggest complaint developers have with Heroku is price. Heroku starts out fairly cheap, but once you need to scale, it gets expensive quickly. Apps are priced per “dyno” — a lightweight Linux container that runs a single user-specified command. Costs go up as you scale dynos vertically (add more RAM, CPU, etc.) and those costs multiply as you scale horizontally (add more dynos). Since most web apps can’t run on a single dyno, the rapid price increase is something almost all Heroku users have to face at some point.

The bad news is that Heroku likely isn’t going to get cheaper any time soon. All apps deployed to Heroku are deployed on Heroku’s AWS infrastructure. With AWS under the hood, they can only price themselves so low and still maintain their margins. Unless they can work out some crazy deal with Amazon where they’re basically getting near-free servers, prices aren’t going to go much lower.

Sleeping Apps Are Annoying

Heroku does offer a free tier, which many tinkerers and hobbyists have come to rely on, but there is still a price to pay — your apps “go to sleep” after periods on inactivity. Heroku essentially shuts down your app’s containers to free up global system resources. Once the app gets a web request, it’ll wake up, but the initial response can take 10–20 seconds. For some, this is a small price to pay. Others just game the system by scheduling “curl” requests to hit the app every hour…

Quick tangent— Those who game the free tier are only exacerbating Heroku’s pricing problem. Though the app may be free for you, Heroku still has to pay for the system resources required to run your app. They, in turn, have to pad the price for paying customers to cover the additional overhead.

…but for many, this is an annoyance that forces them into the paid tier(s) where prices increase quickly.

Not Owning the Servers

Most developers, and companies for that matter, have an inherent need for control and ownership over key components of their business. When it comes to web hosting, nothing is more central than your infrastructure. To get straight to the point, when you deploy an app on Heroku, you do not own the infrastructure, Heroku does, and you’re only given the access they give you.

Like it or not, Heroku’s smaller dynos are deployed onto multi-tenant, shared servers. For security reasons, Heroku has to restrict your access to the server. For many, this is a deal-breaker.

Another related complaint is the fact that you have no choice of where your servers get deployed. AWS is it.

Nanobox

So I know that this is going to come across as a marketing plug, but I really do not intend it to be. This is just me sharing my thoughts.

Full disclosure — I work for Nanobox and have been in the PaaS industry for the last 7 years with Pagoda Box (for the differences between the two, go here). So I know what it’s like to compete with Heroku… It’s an uphill battle.

Nanobox is the culmination of hard lessons learned through years of experience in the PaaS industry and from large, scalable, client implementation work. We came out of beta in early February 2017, so we’re still a young startup, but on Monday, we released a new pricing model that has already grabbed the attention of many on-the-fence Heroku users, proving to be a viable alternative to Heroku.

Flat Pricing

The main attention grabber has simply been the cost. To deploy an unlimited number of apps with Nanobox, it’s $10 a month. If you want/need to collaborate with others, you can create teams at a flat $15/user/month. There are app-specific upgrades that give additional functionality and scalability to apps, but you can check those out on the Nanobox Pricing page. Oh, and apps never go to sleep.

Note: Paid Nanobox accounts are only required to deploy apps. Using Nanobox for local development is free.

Part of the reason we’re able to keep our prices low is because we don’t host your apps. We deploy your apps to your cloud provider. We just have to maintain servers for our own API, dashboard, and supporting services, so our overhead is low.

In short, price-wise, Heroku can’t compete with Nanobox unless they change the core architecture of their service.

Use What Cloud You Want , It’s Yours

As mentioned above, Nanobox doesn’t lock you into AWS or any other cloud provider for that matter. You can deploy wherever you want. We currently have officially integrations for AWS, Digital Ocean, and Linode with others on the way. With our open API spec, you can create an integration with any provider. Some users have even created integrations with their own in-house (literally in their house) servers.

More importantly, you own the infrastructure. It’s yours. You connect Nanobox to your cloud provider account, we provision the infrastructure and give you a dashboard to monitor/manage your apps and automate the complex tasks related to developing, deploying, and managing them.

Is This the End of Heroku?

Haha, no. It would be awfully presumptuous of me claim that the introduction of a project I’m working on marks the end for Heroku, a multi-million dollar company. But this much I can say — we’ve already seen a TON of interest from dissatisfied Heroku users. We directly address the most common pain points they face with Heroku, and those looking for an alternative are finding it in Nanobox.