The Twelve Factors
One codebase tracked in revision control, many deploys
Explicit dependency declaration and isolation
Store config in the environment
Treat backing services as attached resources
Strict separation of build stage and run stage
Stateless processes handle application logic
Services exported via port binding
Scale out via the process model
Fast startup and graceful shutdown maximize robustness
Keep development, staging, and production as similar as possible
Logs are event streams
One-off admin/management tasks