What are processes?

Processes are containers that run commands that you specify. Your app would required different processes to run like a web server, background worker etc. These processes required by your app needs to be defined in a file named Procfile at the root of your project. Here is an example Procfile from a Ruby on Rails app:

web: bundle exec puma -C config/puma.rb
worker: bundle exec sidekiq -C config/sidekiq.yml
release: bundle exec rake db:migrate

This app has 2 running processes. The web process runs the web server, the worker runs the background task manager (in this case Sidekiq). The release process is special, it is only run during the release phase once after every deployment. It is not an actively running process.

After the build phase, the release command is executed as mentioned in the Procfile.

The other processes in the Procfile are spawned in their own containers.

Depending on the scale and performance requirement, you can increase the number of containers.

Can't find what you're looking for?