- The Twelve-Factor App methodology
- Drafted by developers at Heroku based upon their observations of what made good apps
- First presented by Adam Wiggins circa 2011 (then published in 2012)
- The Factors
- 1 - Codebase: one codebase tracked in revision control, many deploys
- 2 - Dependencies: explicitly declare and isolate dependencies
- 3 - Config: strict separation of config from code
- 4 - Backing services: foster loose coupling by treating backing services as attached resources
- 5 - Build, release, run: strictly separate build and run stages
- 6 - Processes: processes are stateless and share-nothing
- 7 - Port binding: export services via port binding
- 8 - Concurrency: scale out via the process model
- 9 - Disposability: processes are disposable, they can be started or stopped at a moment’s notice
- 10 - Dev/prod parity: Keep development, staging, and production as similar as possible
- 11 - Logs: treat logs as event streams, don't manage log files
- 12 - Admin processes: admin and utility code ships with app code to avoid synchronization issues
- What's Missing?
- 7 years since first being published, what changes should be made to make it more relevant for today?
- Some have argued for adding 3 additional factors:
- Telemetry
- Security
- "API First"-philosophy
For a full transcription of this episode, please visit the episode webpage.
End song:
Flowerchild (Roy England Remix) by Owen Ni - Make Mistakes
We'd love to hear from you! You can reach us at: