DEV Community

BPB Online
BPB Online

Posted on

Twelve-Factor App Methodology

The Twelve-Factor App is a methodology that defines a set of steps (twelve steps) to building the software-as-a-service apps. Basically, when we create a microservices app and run it in a cloud environment, we are creating a software-as-a-service because our software is exposed as a service to the end-user. An application totally compliant with the cloud is called a cloud-native application.

The following are the twelve factors:

  1. Codebase: One codebase is tracked in the revision control, while many deploy.

  2. Dependencies: Explicitly declare and isolate dependencies.

  3. Config: Store config in the environment.

  4. Backing services: Treat the backing services as attached resources.

  5. Build, release, run: Strictly separate the build and run stages.

  6. Processes: Execute the app as one or more stateless processes.

  7. Port-binding: Export the services via port binding.

  8. Concurrency: Scale-out via the process model.

  9. Disposability: Maximize robustness with a fast startup and graceful shutdown.

  10. Dev/prod parity: Keep development, staging, and production as similar as possible.

  11. Logs: Treat logs as event streams.

  12. Admin processes: Run admin/management tasks as one-off processes.

The twelve-factors is a guide to develop applications capable to take advantage of cloud computing. In other words, when we follow all the steps of the twelve-factors guide, our applications or microservices are a cloud-native application and is totally compliant with the cloud computing approach.

Hope this was helpful.

Discussion (0)