The Twelve-Factor App

A methodology for building applications that are portable, resilient, and scalable.

Factor Principle Details
I. Codebase One codebase, many deploys Codebase
II. Dependencies Explicitly declare and isolate Codebase
III. Config Store in environment variables Codebase
IV. Backing Services Treat as attached resources Agnostic Core
V. Build, Release, Run Strictly separate stages Operations
VI. Processes Execute as stateless processes Operations
VII. Port Binding Export services via ports Operations
VIII. Concurrency Scale via the process model Operations
IX. Disposability Fast startup, graceful shutdown Operations
X. Dev/Prod Parity Keep environments similar Operations
XI. Logs Treat as event streams Operations
XII. Admin Processes Run as one-off processes Operations