The 12-Factor App

Learn about a succinct description of a cloud-native, scalable, and deployable application known as The 12-Factor App.

We'll cover the following

The 12-factor app

Originally created by engineers at Heroku, the 12-factor app is a succinct description of a cloud-native, scalable, deployable application. a^{a} Even if we’re not running in a cloud, it makes a great checklist for application developers.

The factors identify different potential impediments to deployment, with recommended solutions for each:

Codebase

Track one codebase in revision control. Deploy the same build to every environment.

Dependencies

Explicitly declare and isolate dependencies.

Config

Store config in the environment.

Backing services

Treat backing services as attached resources.

Build, release, run

Strictly separate build and run stages.

Processes

Execute the app as one or more stateless processes.

Port binding

Export services via port binding.

Concurrency

Scale out with the process model.

Disposability

Maximize robustness with fast startup and graceful shutdown.

Dev/prod parity

Keep development, staging, and production as similar as possible.

Logs

Treat logs as event streams.

Admin processes

Run admin and management tasks as one-off processes.

See the website for greater detail on each of these recommendations.

Create a free account to view this lesson.

By signing up, you agree to Educative's Terms of Service and Privacy Policy