12-factor là bộ 12 nguyên tắc thiết kế ứng dụng SaaS để dễ triển khai, scale ngang và portable giữa các môi trường (nhất là trên cloud/container).
Vài nguyên tắc hay được hỏi:
- Codebase: một codebase trong version control, deploy nhiều môi trường.
- Dependencies: khai báo tường minh, cô lập (không dựa vào package cài sẵn trên máy).
- Config: cấu hình để ở biến môi trường, tách khỏi code (không hardcode secret).
- Backing services: coi DB, cache, queue là resource gắn kèm, thay được qua config.
- Processes: chạy stateless — không giữ state trong bộ nhớ process; state để ở backing service.
- Port binding: app tự expose qua một port.
- Disposability: khởi động nhanh, tắt lịch sự (graceful shutdown).
- Dev/prod parity: giữ các môi trường giống nhau nhất có thể.
Cốt lõi: stateless + config qua env + tách backing service → dễ scale và tự động hóa.