Skip to content

Instantly share code, notes, and snippets.

@razorcd
Created May 23, 2016 18:03
Show Gist options
  • Save razorcd/2e6db99ada0c1797ff129e68bd70a59b to your computer and use it in GitHub Desktop.
Save razorcd/2e6db99ada0c1797ff129e68bd70a59b to your computer and use it in GitHub Desktop.
12 Factor App
1. Codebase
One codebase tracked in revision control, many deploys
2. Dependencies
Explicitly declare and isolate dependencies
3. Config
Store config in the environment
4. Backing services
Treat backing services as attached resources
5. Build, release, run
Strictly separate build and run stages
6. Processes
Execute the app as one or more stateless processes
7. Port binding
Export services via port binding
8. Concurrency
Scale out via the process model
9. Disposability
Maximize robustness with fast startup and graceful shutdown
10. Dev/prod parity
Keep development, staging, and production as similar as possible
11. Logs
Treat logs as event streams
12. Admin processes
Run admin/management tasks as one-off processes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment