12 Factor Methodology for Software Development


Modified:   August 16, 2024
Published:   September 11, 2017

Tags:

This is taken all from 12factor.net. This methodology include the 12 factors or 12 parts of software engineering, which should be used while engineering softwares. My app should be a follow these 12 factor or confor with as my factor possible.

In my opinion

  • It’s most important to get it done.

While doing any of 12 factors given below(maintaining configs/dependencies management, or trying build,release), read below mentioned best practices.

The Twelve Factors

  1. Codebase: One codebase tracked in revision control, many deploys
  2. Dependencies: Explicitly declare and isolate dependencies
  3. Config: Store config in the environment
  4. Backing services: Treat backing services (database, SMTP, etc.) as attached resources
  5. Build, release, run: Strictly separate build, release, and run stages
  6. Processes: Execute the app as one or more stateless processes. Persist data in a stateful backing (e.g., database, queue) service.
  7. Port binding: Export services via port binding
  8. Concurrency: Scale out via the process model
  9. Disposability: Maximize robustness with 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. Each running process writes its event stream, unbuffered, to stdout.
  12. Admin processes: Run admin/management tasks as one-off processes

References: This post is copied from https://12factor.net/ and kept here for my personal reference.



Let me know if you have any questions or comments.
It will help me to improve/learn.


< Older   Further Reading   Newer >