What are the core design principles of Cloud-Native applications?
What Cloud-Native Means
Cloud-native is an approach to software design that fully leverages cloud environment characteristics, enabling applications to scale elastically, deploy rapidly, and achieve high availability.
Key 12-Factor App Principles
1. Codebase: One codebase, multiple deployment environments
2. Dependencies: Explicitly declare and isolate dependencies; don't rely on system-installed packages
3. Config: Store configuration in environment variables, not hardcoded (differentiates dev/staging/prod)
4. Backing Services: Treat databases, caches, and message queues as external swappable resources, connected via URL/credentials
5. Build, Release, Run: Strictly separate the Build → Release → Run stages
6. Stateless Processes: Processes store no state; session and other state goes to external stores (Redis)
7. Port Binding: Expose services by binding to a port; don't depend on external web containers
8. Concurrency: Handle larger load by adding processes (horizontal scaling)
9. Disposability: Second-level startup; gracefully stop handling requests upon receiving SIGTERM
10. Dev/Prod Parity: Keep development, staging, and production environments as similar as possible
11. Logs: Treat logs as event streams written to stdout; let the platform collect them
12. Admin Processes: Run admin tasks like database migrations as one-off processes
✦ AI Mock Interview
Type your answer and get instant AI feedback
Sign in to use AI scoring
