You might already know about Heroku’s reputation as an easy to set up and fast to develop platform which allows developers to focus on development, without the time-consuming distraction of managing servers and infrastructure, but let’s dive a little deeper. In this article I will demonstrate how Heroku isn’t just for hobby applications and elaborate on features you may not be familiar with, such as scalability, and immense flexibility.
We’ll look at a few companies that chose to move forward developing their apps using Heroku, pulling examples from their experiences.
Heroku has something to offer to every developer, from small hobby apps to large international companies. You can deploy, run and manage applications written in Ruby, Node.js, Java, Python, Clojure, Scala, Go, and PHP, or go beyond those with a custom buildpack.
Whether you’re Bonobos, the largest clothing brand ever built on the web, migrating from AWS to Heroku after becoming established, or Dubsmash launching a second generation product on Heroku for the first time, or securely sharing data for your customers like Moneytree, just about anyone can use Heroku successfully. (Don’t just take my word for this, you can see these companies talk about using Heroku in their own words on the Heroku site.)
Growth is the goal for many developers, so scalability is hugely important. Scaling allows your configuration to remain stable and usable as scope and users grow. Got some specific scaling needs? You’ll be happy to know that Heroku is equipped to scale vertically, horizontally or automatically.
I add here a caveat. Can Heroku, or any tool set, scale any app in a cost efficient way? No. Some apps are architected badly, and will never scale well, on any platform. Heroku's 12 factor methodology is there to help you avoid this trap.
A short breakdown on scaling:
- Vertical scaling makes dynos (containers) larger (more CPU, more RAM) and therefore more capable of handling requests and heavier workloads more quickly.
- Horizontal scaling is Heroku’s superpower! This strategy adds copies of your dynos so that each handles a fraction of the total requests. This feature is often described as “moving the slider” to scale.
- Autoscaling automatically increases the number of web dynos.
Trailhead, an e-learning platform built with Heroku, began as a simple tool for gauging knowledge of Salesforce during dev evangelist lectures and classes. Now a hugely popular platform, it has doubled in size at least once a year since its launch. Early on, Trailhead experienced “Astrogeddon”, an event that took place over a weekend in which developers had to quickly scale up to accommodate shocking spikes of traffic, and later scaled back down. Check out this Code[ish] podcast to learn more about Trailhead and Astrogeddon.
Ipify, a scalable IP address lookup service created on Heroku by Randall Deggs, is a shining example of scalability for every hobby developer. Initially a project that took about a day’s time from concept to launch, the service now nets 30 billion requests and beyond PER MONTH! Deggs says Heroku is one of the most effective developer services in the world.
These are just a few examples of the kinds of scaling Heroku offers, in addition to many add-ons and other features (such as pipelines) which are designed to help promote your app from one stage of growth to another.
Heroku is PCI, HIPAA, ISO, and SOC compliant. This is a testament to how Heroku has changed over time; regularly performing audits and maintenance to establish and verify data security. With Heroku Private Spaces, users can control who has access to services and from where (with features like VPN and VPC peering), an invaluable feature for international fintech companies like MoneyTree. With Heroku Shield Private Spaces, you can go further and ensure your app and data is in a HIPAA or PCI compliant environment. Whatever your application, Heroku can keep the important stuff secure.
We’ve established that you can “go all the way” using Heroku, and there are tons of reasons to do that! However, we can’t ALL be Randall Deggs. Sometimes things just don’t work out. If for some reason you decide to migrate, it is easier than ever before. Type “Migration from Heroku” into a google search and you will get a page full of results - companies that perform the service for a fee, guides on how to migrate to AWS and a lot more. Assuming infrastructure you’re moving to is solid, migration from Heroku can be simple. I’ve found many instances of developers completing migration without disrupting their services. Whether Heroku is a stepping stone or an end-point for your team, there’s definite value in using the platform, and knowing that Heroku doesn't "lock you in" gives me more confidence to explore it..
When Trailhead needed to launch an app within 6 weeks of its creation, they chose Heroku.
When Randall Deggs set out to create a service practically overnight, he chose Heroku. When this web developer made the jump to Heroku, she marveled at the simplicity and elegance of the platform. To get more in-depth with Heroku, check out these resources: