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
- Codebase: One codebase tracked in revision control, many deploys
- Dependencies: Explicitly declare and isolate dependencies
- Config: Store config in the environment
- Backing services: Treat backing services (database, SMTP, etc.) as attached resources
- Build, release, run: Strictly separate build, release, and run stages
- Processes: Execute the app as one or more stateless processes. Persist data in a stateful backing (e.g., database, queue) service.
- Port binding: Export services via port binding
- Concurrency: Scale out via 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. Each running process writes its event stream, unbuffered, to stdout.
- 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.
It will help me to improve/learn.