← All Learn guides Cloud-native apps

The 12-Factor App

The Twelve-Factor App is a set of rules for building software that runs well in the cloud. Apps that follow them are easy to deploy, scale and move between environments.

1. Codebase

One codebase in version control, deployed to many environments.

2. Dependencies

Declare every dependency explicitly; never rely on what's already on the server.

3. Config

Keep configuration in environment variables, not in the code.

4. Backing services

Treat databases, queues and caches as attached resources you can swap.

5. Build, release, run

Keep the build, release and run stages strictly separate.

6. Processes

Run the app as stateless processes; store state in a backing service.

7. Port binding

The app serves itself on a port, with no web server bolted on.

8. Concurrency

Scale out by adding more processes.

9. Disposability

Start fast and shut down gracefully.

10. Dev/prod parity

Keep development, staging and production as similar as possible.

11. Logs

Write logs as event streams to standard output; let the platform collect them.

12. Admin processes

Run one-off tasks, like migrations, the same way as the app.

Why it matters

Apps built this way run anywhere: containers, Kubernetes, any cloud.

Why it matters for your career

These rules show up in every cloud-native codebase. Knowing them helps you spot why an app is hard to deploy or scale.

Chat with us