Jump to content

Twelve-Factor App methodology

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Djm-leighpark (talk | contribs) at 07:48, 21 December 2017 (Preps for direct move to article space). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Twelve-factor app 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 The WEB.[1]

History

The methodology was drafted by developers at Heroku and was first presented by Adam Wiggins circa 2011.[1]

The Twelve Factors

The Twelve Factors
# Factor Description
I Codebase Their should by 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 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

[1][2]

References

  1. ^ a b c Hofmann,, Michael; Schnabel, Erin; Stanley, Katherine (13 March 2017). Microservices Best Practices for Java. IBM Redbooks. p. 2—3. ISBN 9780738442273.{{cite book}}: CS1 maint: extra punctuation (link)
  2. ^ Wiggins, Adam. "The Twelve-Factor App". Archived from the original on 13 June 2017. Retrieved 21 December 2017.


[[Category:Architectural pattern (computer science)]] [[Category:Software delivery methods]]