What is Heroku? A Simple Explanation for Non-Techies
You’ve got a new software project in mind – maybe it’s a mobile app, an internal tool, or a way to completely transform the way you run your business. As you start to share the idea and gather feedback, people start hitting you with a ton of questions that you may not know the answer to.
How are you going to manage the infrastructure? How are you going to handle storage, networking, monitoring, and everything else you need to run this new project?
You’re looking for an answer to your prayers when you stumble on Heroku. What is Heroku you ask? Apparently it’s a Platform as a Service that can handle all of these things for you. This is great, but you still don’t understand exactly how it works.
In this article, I’ll try to keep things simple and to the point, explaining exactly what Heroku is, what these dynos are all about, and point you to more in-depth resources for further learning.
Sound good? Let’s get started.
So, what is Heroku and how does it work?
Heroku is known for running apps in dynos – which are really just virtual computers that can be powered up or down based on how big your application is. Think of dynos as malleable building blocks for running your app.
If you want to process more data or run more complex tasks, you are going to need to add more blocks(what is called scaling horizontally) or increase the size of the blocks (what is called scaling vertically). Heroku then charges you a monthly fee based on the number of dynos that you have and the size of each dyno.
Although Heroku charges you by the dyno, they aren’t actually hosting your app. In fact, the entire Heroku platform, as well as every app built on Heroku is deployed to Amazon Web Services(AWS).
This begs the question –
Why use Heroku when AWS is present?
To understand what Heroku is, we’re going to start with what it’s not. You may have realized that Heroku runs on Amazon Web Services (AWS), and now you’re asking yourself why you don’t deploy to AWS and bypass Heroku entirely. First of all, Heroku and AWS are not the same things.
AWS is an Infrastructure as a Service(IaaS) provider, meaning they are responsible for managing large, shared data centers. These data centers are what we call “the cloud”. Companies like AWS, Azure, and Google have all created IaaS so that developers can pay to host their applications in these data centers instead of building servers themselves.
This is a great trade-off but due to the nature of their business, IaaS providers are more concerned with running the data centers than the developer’s experience working with them. This means there is a high level of knowledge of AWS is required to keep your apps running, especially at scale.
If it’s any measure of how much there is to know, AWS offers 8 different certifications for people to validate their knowledge.
Heroku, on the other hand, is a Platform as a Service that sits on top of AWS to provide an experience that is specifically designed to make developers lives easier. For example, in order to keep an application running at scale on Heroku, it only takes knowledge of a few commands on the Heroku CLI and Dashboard. These commands can easily be found in Heroku’s documentation.
Why else do people choose Heroku?
It’s best in class developer experience.
Again, Heroku was built by developers for developers. The experience is easy to navigate, developers know exactly what they need to do when they log in, and they know exactly how their application is running every second the platform.
It’s open and extensible.
Heroku is open and extensible so developers can build in whichever language they choose. Whether that’s Nodejs, Ruby, PHP, Python, Java, it doesn’t matter.
Not only are developers able to build in whatever language you choose, but there is a huge network of Heroku Add-ons. Heroku Add-ons are powerful features and functionalities that can be deployed to your app with the click of a button. Some of these applications are paid, and some are free, but they can shave hundreds of hours off your next project.
It’s easy to connect to salesforce
The real power with Heroku when talking to our enterprise customers is in connecting it to Salesforce. Using Heroku Connect, we are able to create a bidirectional sync between your app and Salesforce. We cover this thoroughly in our article on Salesforce Connected apps.
Where to Learn More about Heroku
Learn More About Heroku
The best place to learn more about Heroku would be in their own Dev Center. There they have articles covering Heroku’s architecture, Deployment, Add-ons, and much more. If you want to talk with someone that can explain the ins and outs of the platform, don’t hesitate to contact us.
To learn more about how we build powerful web and mobile applications on Heroku, check out this explanation of RAMP.
About Shane Rostad
Shane Rostad is a marketing manager for TriFin Labs that loves to share his knowledge and learnings about tech through writing. When he's not reading you can find him exploring Florida's parks or loitering in a local coffee shop.