Skip to content

The Twelve-Factor App

The Twelve-Factor App

Overview

Twelve best practices for building software-as-a-service apps that are portable and resilient.

Highlights (simplified)

  • Codebase: one codebase, tracked in version control
  • Dependencies: explicit, isolated
  • Config: in environment variables
  • Backing services: treat as attached resources
  • Build, release, run: separate stages
  • Processes: stateless and share-nothing
  • Logs: treat as event streams

Checklist

  • Keep secrets/config out of code
  • Build once, deploy many
  • Scale via processes

Resources

  • 12factor.net