What Is Heroku? The Original Developer PaaS
Heroku is a platform-as-a-service that runs your application in managed containers called dynos, deploying from a simple git push without you managing servers.
Heroku popularized the modern PaaS developer experience: push your code and it runs, no servers to configure. It detects your language with buildpacks, builds a release, and runs it in lightweight containers called dynos. Add-ons provide databases and other services. It remains a benchmark for developer-friendly deploys.
Dynos and buildpacks
A dyno is a lightweight container running your app process. Buildpacks detect your language and assemble a runnable slug from your source. You scale by changing the number and size of dynos, with no underlying servers to manage.
The git push workflow
Classically you deploy with git push heroku main: Heroku receives the code, runs the buildpack, creates a release, and starts dynos. The Procfile declares which processes (web, worker) to run. It is about as simple as deploys get.
Add-ons and config
- Managed add-ons for databases, caches, and logging.
- Config vars for environment-based configuration.
- Release phases for migrations before a new release goes live.
Where Heroku fits today
Heroku is excellent for prototypes, small teams, and apps that value simplicity over fine-grained control. For very large scale or specific infrastructure needs, teams often move to raw cloud or Kubernetes, but Heroku DX still influences newer platforms.
Role in CI/CD
Beyond plain git push, pipelines deploy to Heroku via the CLI, container registry, or the Heroku API, often after running tests in GitHub Actions. Review apps spin up a temporary app per pull request, and pipelines promote a build through staging to production.
Key takeaways
- Heroku is a PaaS that runs apps in dynos, deploying from a git push.
- Buildpacks detect the language and add-ons provide databases and services.
- Pipelines deploy via the CLI or container registry, often after CI tests.