The Twelve Factors

Factor 1. Codebase One codebase tracked in revision control, many deploys

Factor 2. Dependencies Explicitly declare and isolate dependencies

Factor 3. Config Store config in the environment

Factor 4. Backing services Treat backing services as attached resources

Factor 5. Build, release, run Strictly separate build and run stages

Factor 6. Processes Execute the app as one or more stateless processes

Factor 7. Port binding Export services via port binding

Factor 8. Concurrency Scale out via the process model

Factor 9. Disposability Maximize robustness with fast startup and graceful shutdown

Factor 10. Dev/prod parity Keep development, staging, and production as similar as possible

Factor 11. Logs Treat logs as event streams

Factor 12. Admin processes Run admin/management tasks as one-off processes