Introduction

Introduction In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service ...

I. Codebase

One codebase tracked in revision control, many deploys A twelve-factor app is always tracked in a version control system, such as Git, Mercurial, or Subversion. A ...

II. Dependencies

Explicitly declare and isolate dependencies Most programming languages offer a packaging system for distributing support libraries, such as CPAN for Perl or Rubygems for Ruby. Libraries ...

III. Config

Store config in the environment An app’s config is everything that is likely to vary between deploys (staging, production, developer environments, etc). This includes: Resource ...

IV. Backing Services

Treat backing services as attached resources A backing service is any service the app consumes over the network as part of its normal operation. Examples include ...

V. Build, release, run

Strictly separate build and run stages A codebase is transformed into a (non-development) deploy through three stages: The build stage is a transform which converts a ...