Get Start
1.Sign up
2.Install the Heroku Toolbelt
3.Create your app
Slide 5
Slide 5 text
heroku
local
git push
slug compiler
slug
launch
dyno dyno
scale scale
…
stack stack
Creative Commons – Attribution (CC BY 3.0) Box designed by Nono Martínez Alonso from the Noun Project
compiled
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
Stack
OS(ubuntu) language runtime
libraries
Buildpack
config
One codebase tracked in revision control, many deploys.
I. Codebase
One codebase, one app
Slide 13
Slide 13 text
Explicitly declare and isolate dependencies
II. Dependencies
Gemfile =>dependency declaration
Bundle exec => dependency isolation
Slide 14
Slide 14 text
III. Config
Store config in the environment
An app’s config is everything that is likely to vary between
deploys (staging, production, developer environments, etc).
Don’t check in to the codebase
Slide 15
Slide 15 text
IV. Backing Services
Treat backing services as attached resources
Slide 16
Slide 16 text
IV. Backing Services
con’t
Slide 17
Slide 17 text
V. Build, release, run
Strictly separate build and run stages
Slide 18
Slide 18 text
VI. Processes
stateless processes
share-nothing processes
Slide 19
Slide 19 text
VII. Port binding
Export services via port binding
Containerless
Add web server by dependency declaration
Slide 20
Slide 20 text
VIII. Concurrency
Scale out via the process model
Slide 21
Slide 21 text
IX. Disposability
Fast startup
Graceful shutdown
Slide 22
Slide 22 text
XI. Logs
Treat logs as event streams
Write logs to file
Slide 23
Slide 23 text
X. Dev/prod parity
Development = Staging = Production
Time gap
Personal gap
Tool gap
Design for continuous deployment
Slide 24
Slide 24 text
XII. Admin processes
Run admin/management tasks as one-off processes
bundle exec rake db:migrate