loading...
Cover image for twelve factor app: part 0 - introduction

twelve factor app: part 0 - introduction

ajcwebdev profile image anthonyCampolo ・1 min read

The twelve-factor app is a methodology for building software-as-a-service apps that recommends:

  • Declarative formats for setup automation
  • Clean contract with the underlying operating system for portability between execution environments
  • Deployment on modern cloud platforms
  • Minimal divergence between development and production for continuous deployment
  • Scalability without significant changes to tooling, architecture, or development practices

Background

The contributors to this document have developed and deployed hundreds of apps, and indirectly witnessed the development, operation, and scaling of hundreds of thousands of apps via their work on the Heroku platform. This document pays particular attention to:

  • The dynamics of the organic growth of an app over time
  • The dynamics of collaboration between developers working on the app's codebase
  • Avoiding the cost of software erosion

Its motivation is to raise awareness of some systemic problems in modern application development and provide a shared vocabulary for discussing those problems. It offers a set of broad conceptual solutions to those problems with accompanying terminology. It is inspired by Martin Fowler's books Patterns of Enterprise Application Architecture and Refactoring.

Who should read this document?

  • Developers building apps which run as a service
  • Ops engineers who deploy or manage such applications

Discussion

pic
Editor guide