When it comes to Heroku, misconceptions and myths abound. Many people know a little about Heroku, they’ve heard that it’s easy to use or that it’s a hands-off way of deploying apps, but beyond that don’t have a clear sense of what, exactly Heroku can do. Let’s debunk six of the most common Heroku myths.
1: Heroku doesn’t scale
Heroku is easy to use and quick to set up. Because of this, the platform frequently gets used by startups and individuals building small, personal apps. Many people then assume Heroku is only useful for small projects, but the truth is that Heroku scales with you. We’ve designed it to maintain that ease of use, even as it scales. Heroku has a long customer list, and companies like Financial Times, Toyota, and Macy’s have used Heroku to great effect. Citrix’s GoToMeeting service is built on Heroku, and uses Heroku Add-ons, including New Relic APM to monitor and tune their app, and Logentries to analyze any current issues and performance.
For me the best example is ipify, a simple service that sees massive use by services everywhere. Like so many good ideas ipify first went out to the public hosted on Heroku, but Heroku was also able to scale up very easily to handle millions of requests per day. In this way Heroku often seems too good to be true and many developers miss out on the many ways implementing Heroku in their bigger projects could save lots of time and effort.
2: Heroku doesn’t give you fine-grained control
It is true that Heroku automates well and removes a lot of the grunt work of deploying apps, but that doesn’t mean you’re locked in to one path. At Heroku, we handle as much of the work as we can so you can focus on more important tasks, but there will always be edge cases as your service grows where you’ll want to take that control back.
A great example of this is IP filtering, which on many other platforms is either automatically set and unchangeable or requires configuration every time. With Heroku you’ll probably start with a basic configuration making your dyno generally quite public, but with Heroku Private Spaces you can tightly control who has access to your service and from where, complete with IP whitelisting. There are also multiple add-ons that will let you fix a static IP for your Heroku apps.
Though Heroku does a lot of the heavy lifting in app deployment,That doesn’t mean you’re stuck with our system’s default assumptions. Both deep configuration and the add-on ecosystem mean Heroku can get as customized as your team needs it to be.
3: It’s easy to use, so it must not be robust
The simplicity of Heroku can be deceiving. All too often we associate simplicity and ease of use with a lack of features. It’s unfortunate that great user experience design is so rare that so many potential users assume the fact that Heroku is easy to use means it’s lacking in depth. But Heroku is as powerful as it is easy to use. We stay out of your way and handle everything you don’t want to manage in the background, so you can get back to doing the more important work. Along with a robust service in terms of reliability, we also have to consider how well we’re protected from regulatory or legal issues, Heroku maintains PCI, HIPAA, ISO, and SOC compliance across the service.
Want proof that it’s powerful? Heroku uses Heroku too. Anything we can run on Heroku, we do. So we’re using the same tools and features you are. We’re having the same experience our customers are. That’s why bugs are fixed fast and features are constantly honed. We believe great user experience design should be standard.
4: Heroku is robust, so it must be difficult to get started
Just as often as we hear the myth that Heroku is too easy to use to be a robust tool, we also hear that because it’s such a powerful tool it must be a difficult platform for beginners. That’s simply not true. Heroku is designed so just about anyone can get started. Additionally, while many brands hire customer support agents and teach them a little about the product, our support team is made up of knowledgeable developers who are trained in support.
Our Dev Center also contains step-by-step tutorials that can walk you through getting started and deploying your first app.
5: Heroku doesn’t let you customize or curate your stack
Just because Heroku makes it quick and easy to get up and running, doesn’t mean the platform is lacking complexity and capability. Heroku’s rich feature set lets you deploy, run and manage applications written in Ruby, Node.js, Java, Python, Clojure, Scala, Go and PHP. You can decide whether to enable GitHub integration or use the Heroku API to build and release. Heroku lets you decide what to automate and what to manage manually. You can further customize how your app is prepared by using a custom buildpack, and if you demand full customization, use Docker.
6: Heroku is proprietary, you’re locked in
At Heroku, we believe in the power and importance of open source software — the work you do in Heroku is yours and you should be able to easily take it with you if you need to. In particular, if you architect your app well, we don't demand you do anything particular, or use any proprietary APIs, to get your app running on Heroku. If you decide you need to move your data files off Heroku, it’s easy and quick to backup and restore it somewhere else. We’re confident in our platform and the services we provide, we don’t need to lock our users in.
Dive deeper
We’ve got a full video course up at PluralSight that covers Heroku as a platform, and shows you how to do common tasks faster with Heroku.