-
Codebase: is only one codebase tracked in revision control, with many deploys?
https://12factor.net/codebase
-
Dependencies: do you explicitly declare and isolate dependencies?
https://12factor.net/dependencies
-
Config: do you store configuration in the environment (variables)?
https://12factor.net/config
-
Backing services: do you treat backing services as attached resources (make no distinction between local and third party services)?
https://12factor.net/backing-services
-
Build, release, run: do you maintain strict separation between build, release and run stages?
https://12factor.net/build-release-run
-
Processes: do you execute the app as one or more stateless processes?
https://12factor.net/processes
-
Port binding: do you export services via port binding (e.g. export HTTP as a service by binding to a por)?
https://12factor.net/port-binding
-
Concurrency: do you scale out via the process model?
https://12factor.net/concurrency
-
Disposability: do you maximize robustness with fast startup and graceful shutdown?
https://12factor.net/disposability
-
Dev/prod parity: do you keep development, staging, and production as similar as possible?
https://12factor.net/dev-prod-parity
-
Logs: do you treat logs as event streams?
https://12factor.net/logs
-
Admin processes: do you run admin/management tasks as one-off processes?
https://12factor.net/admin-processes