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.
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.


