O Que é o Heroku? O PaaS Original para Desenvolvedores
Heroku é uma plataforma como serviço que executa sua aplicação em contêineres gerenciados chamados dynos, fazendo deploy a partir de um simples git push sem que você precise gerenciar servidores.
O Heroku popularizou a experiência moderna de PaaS para desenvolvedores: envie seu código e ele roda, sem servidores para configurar. Ele detecta sua linguagem com buildpacks, cria um release e o executa em contêineres leves chamados dynos. Add-ons fornecem bancos de dados e outros serviços. Ele continua sendo uma referência para deploys amigáveis a desenvolvedores.
Dynos e buildpacks
Um dyno é um contêiner leve que executa o processo do seu app. Buildpacks detectam sua linguagem e montam um slug executável a partir do seu código-fonte. Você escala alterando o número e o tamanho dos dynos, sem servidores subjacentes para gerenciar.
O workflow do git push
Classicamente você faz deploy com git push heroku main: o Heroku recebe o código, executa o buildpack, cria um release e inicia os dynos. O Procfile declara quais processos (web, worker) executar. É quase tão simples quanto um deploy pode ser.
Add-ons e configuração
- Add-ons gerenciados para bancos de dados, caches e logging.
- Config vars para configuração baseada em ambiente.
- Release phases para migrações antes de um novo release entrar no ar.
Onde o Heroku se encaixa hoje
O Heroku é excelente para protótipos, times pequenos e apps que valorizam a simplicidade em vez do controle refinado. Para escala muito grande ou necessidades específicas de infraestrutura, os times frequentemente migram para cloud puro ou Kubernetes, mas a DX do Heroku ainda influencia plataformas mais novas.
Papel no CI/CD
Além do git push simples, pipelines fazem deploy no Heroku via CLI, container registry ou a API do Heroku, geralmente após rodar testes no GitHub Actions. Review apps criam um app temporário por pull request, e pipelines promovem um build de staging até produção.
Principais conclusões
- Heroku é um PaaS que executa apps em dynos, fazendo deploy a partir de um git push.
- Buildpacks detectam a linguagem e add-ons fornecem bancos de dados e serviços.
- Pipelines fazem deploy via CLI ou container registry, geralmente após os testes de CI.