What is Heroku for Developers (Benefits, how it works and key concepts)
- Details
- Written by Nam Ha Minh
- Last Updated on 29 October 2021   |   Print Email
If you’re a developer who is new to Heroku, you’ve come to the right place. In this article, I’d love to share with you what Heroku is, its benefits, how it works and the key terminologies used by Heroku.
1. What is Heroku?
Heroku is a container-based cloud Platform as a Service (PaaS) – one of the most popular services that allow developers to deploy, manage and scale modern apps.
Heroku supports all major programming languages. You can develop your apps in Java, Ruby, Scala, Node.js, Clojure, Python, PHP and Go and deploy them to Heroku.
Heroku has an ecosystem of add-on services that let developers extend the capabilities of an application, such as adding database services, logging services, etc.
All Heroku’s services are hosted on Amazon’s EC2 cloud-computing platform, so your deployed apps are actually running on Amazon Web Services’ infrastructure.
Heroku is a subsidiary of Salesforce.com, and you can visit homepage at https://heroku.com.
2. Benefits of Heroku
First and foremost, Heroku lets developers deploy their apps onto the Internet quickly, in just few minutes. It gives developers the freedom to focus on their apps without the distraction of maintaining severs, hardware or infrastructure.
In terms of continuous deliver, Heroku enables developers iterate development fast, with seamless integration with GitHub.
Heroku is easy to use with flexible pricing. You can get started with a free plan and upgrade to paid plan if needed. Pay what you actually use.
Ultimately, Heroku lets developer focus on what they do best: Developing Apps.
3. How Heroku works
Your app deployed on Heroku will be running in a virtualized Unix container called dyno. Dynos are managed by Heroku cloud platform, which is running on Amazon EC2 infrastructure.
For a Java-based app, a dyno is created with JDK and Maven for building and running Java applications.
The end users access the applications via the Internet, and the traffic is routed to dynos via Heroku’s HTTP router.
And scaling an app is just a matter of increasing (scale up) or decreasing (scale down) the number of currently executing dynos. And Heroku makes apps scaling a breeze.
4. Key concepts in Heroku (terminologies)
Let’s take the following picture to understand the key concepts involve in deployment process on Heroku:
- An application consists of source code, dependency and a Procfile that specifies commands to execute the application. And you can start the deployment process by executing Git push – sending project’s files to a remote repo on Heroku.
- Buildpack is a set of script that is used for compiling and building the application. Heroku uses predefined buildpacks for supported programming languages, and you can also customize Buildpack script if needed.
- The build process produces a Slug that contains source code, fetched dependencies, language runtime and compiled output.
- Config vars are customizable configuration data stored as environment variables, outside the application.
- Add-ons are third-party, specialized, value-added cloud services that can be easily attached to an app.
- A release is combination of slug, config vars and add-ons. Any changes made to slug, config vars and add-ons result in new release of the app.
- Dyno is a lightweight, isolated, virtualized Unix container that provides environment required to run an app.
- Scaling an application involves varying the number of currently-executing dynos.
That’s basically what you need to know about Heroku as a developer.
Other Heroku Tutorials:
- Deploy Simple Spring Boot Project to Heroku using Git and Heroku CLI
- Deploy Spring Boot App with MySQL Database on Heroku
- How to Deploy JAR File to Heroku
- How to Deploy WAR File to Heroku
- Change Java version for Apps deployed on Heroku
- Add Custom Domain Names for Heroku Apps
- How to Enable Secure Connection (HTTPS) for Heroku Apps