- Application = source code for application + web or application server framework + dependencies on third party libraries + dependency description (pom.xml) that instructs a build system (maven) to download the needed dependencies from a repository in order to build the application + Procfile.
- Procfile - lists named
commands that you may want executed.
queuty: java -jar lib/queue-processor.jar
- Git - used as primary means for deploying applications on Heroku platform. When application is created on Heroku, a new git remote is associated typically named "heroku" with the local git repository for your application. To deploy, simply do a git push heroku master. Thus git acts as a transport mechanism to push local application to heroku platform (remote).
- When Heroku platfrom receives a git push, it builds the application - mvn clean install.
- Slug - a bundle of application source code + dependencies + JRE + binary o/p from mvn install. A slug is the application ready for execution.
- Dynos - Heroku executes the applications by running a command you defined in Procfile on a dyno (unix container like Docker) that has been preloaded with slug and config-vars and add-ons (together called a release).
- To retain state information across dyno restarts use DB or message queues. The filesystem on a dyno are temporary.
- User can control the number of dynos: heroku ps:scale web=3 queuty=2 for example will run 5 dynos (3 for web and 2 for queuty process types).
- When a new version of application is pushed to heroku platform, currently executing dynos are killed and new ones are spawned to replace them with the new release.
- Application config-vars are set as:
- Release = version controlled ledger of (slug + config-vars + add-ons)
- Dyno manager - manages dynos across all applications deployed on heroku platform.
- Add-ons - are pluggable services like email service, Database service, queuing or caching services etc.
- Logplex automatically collates log entries from all the running dynos of your app, as well as other components such as the routers, providing a single source of activity.
- HTTP Routing: