Hacker Timesnew | past | comments | ask | show | jobs | submitlogin
The Twelve-Factor App (12factor.net)
40 points by oli5679 on May 18, 2019 | hide | past | favorite | 3 comments


They give a nice TOC:

———

The Twelve Factors

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

II. Dependencies: Explicitly declare and isolate dependencies

III. Config: Store config in the environment

IV. Backing services: Treat backing services as attached resources

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

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

VII. Port binding: Export services via port binding

VIII. Concurrency: Scale out via the process model

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

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

XI. Logs: Treat logs as event streams

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

———


Just as with yesterday's discussion about Black[0], there will be people who like 83% and dislike the other 17%. But having stated principles about how you build software within your organisation ought to make everyone's life easier and more enjoyable.

And this list is a great starting point, even if your organisation chooses to adopt precisely the opposite for each of the 12 points.

[0] https://qht.co/item?id=19939806


I've worked on codebases designed using this model, and it's a vast improvement over how many web service applications are created. A lot of this seems like common sense (one codebase, for example), and some of it is frustratingly uncommon sense (like dev/prod parity).




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: