Skip to content

12factor app

What are 12factor app ?

In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service.

12factor app

The twelve-factor app is a methodology for building software-as-a-service apps that:

  • Update the deployment (new released container image tag)

  • Use declarative formats for setup automation, to minimize time and cost for new developers joining the project Have a clean contract with the underlying operating system,

  • offering maximum portability between execution environments

  • Suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration, minimize divergence between development and production

  • enabling continuous deployment for maximum agility and can scale up without significant changes to tooling, architecture, or development practices.

  • The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).

The Twelve Factor provides detailed information with background for the twelve-factor methodology.

As explained at the website, it is a highly recommended reading for any developer.

The Twelve Factor app

Twelve Factor in a glance

This is a high level summary of The twelve Factor

  1. Codebase: One codebase tracked in revision control, many deploys

  2. Dependencies: Explicitly declare and isolate dependencies

  3. Config: Store config in the environment

  4. Backing services: Treat backing services as attached resources

  5. Build, release, run: Strictly separate build and run stages

  6. Processes: Execute the app as one or more stateless processes

  7. Port binding: Export services via port binding

  8. Concurrency: Scale out via the process model

  9. Disposability: Maximize robustness with fast startup and graceful shutdown

  10. Dev/prod parity: Keep development, staging, and production as similar as possible

  11. Logs: Treat logs as event streams

  12. Admin processes: Run admin/management tasks as one-off processes

The Twelve Factor app