Twelve-Factor App methodology
|Paradigms and models|
|Methodologies and frameworks|
|Standards and Bodies of Knowledge|
The Twelve-Factor App methodology is a methodology for building software-as-a-service applications. These best practices are designed to enable applications to be built with portability and resilience when deployed to the web.
The Twelve Factors
|I||Codebase||There should be exactly one codebase for a deployed service with the codebase being used for many deployments.|
|II||Dependencies||All dependencies should be declared, with no implicit reliance on system tools or libraries.|
|III||Config||Configuration that varies between deployments should be stored in the environment.|
|IV||Backing services||All backing services are treated as attached resources and attached and detached by the execution environment.|
|V||Build, release, run||The delivery pipeline should strictly consist of build, release, run.|
|VI||Processes||Applications should be deployed as one or more stateless processes with persisted data stored on a backing service.|
|VII||Port binding||Self-contained services should make themselves available to other services by specified ports.|
|VIII||Concurrency||Concurrency is advocated by scaling individual processes.|
|IX||Disposability||Fast startup and shutdown are advocated for a more robust and resilient system.|
|X||Dev/Prod parity||All environments should be as similar as possible.|
|XI||Logs||Applications should produce logs as event streams and leave the execution environment to aggregate.|
|XII||Admin Processes||Any needed admin tasks should be kept in source control and packaged with the application.|
Criticism and adaptation
As of 2018[update], and since at least 2014, guidelines for at least one open source project refer developers to Twelve Factor App methodology for principles of good app design.[failed verification]
- Hofmann, Michael; Schnabel, Erin; Stanley, Katherine (13 March 2017). Microservices Best Practices for Java. IBM Redbooks. pp. 2–3. ISBN 9780738442273.
- Wiggins, Adam. "The Twelve-Factor App". Archived from the original on 13 June 2017. Retrieved 21 December 2017.
- Horowitz, Ben (28 July 2016). "MRA, Part 5: Adapting the Twelve‑Factor App for Microservices". NGINX. Archived from the original on 22 December 2017. Retrieved 22 December 2017.
- "Beyond the Twelve-Factor App - Exploring the DNA of Highly Scalable, Resilient Cloud Applications". O'Reilly. Retrieved 22 December 2017.
- "Considerations for Designing and Running an Application in the Cloud". Cloud Foundry. Archived from the original on 21 June 2017. Retrieved 24 January 2018.