Skip to content

Instantly share code, notes, and snippets.

@navicore
Last active June 8, 2022 18:42
Show Gist options
  • Save navicore/f04a3a3c0ecd3a88c9b17bdff86cad53 to your computer and use it in GitHub Desktop.
Save navicore/f04a3a3c0ecd3a88c9b17bdff86cad53 to your computer and use it in GitHub Desktop.
12 factor app
The Twelve Factors
-----------------
I. Codebase
One codebase tracked in revision control, many deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as similar as possible
XI. Logs
Treat logs as event streams
XII. 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