Cloud Native Architecture
Design principles
The CNCF model favors loosely coupled, independently deployable services communicating over well-defined APIs. Key ideas: the 12-factor app (config in environment, stateless processes, disposability, logs as event streams), microservices over monoliths where justified, and designing for failure - assume components die and build retries, timeouts, circuit breakers, and graceful degradation.
Resilience and health
Health endpoints, readiness/liveness separation, and PodDisruptionBudgets support resilience. Statelessness lets any replica serve any request; state belongs in backing services (databases, object stores). Horizontal scaling assumes statelessness - a trap is assuming a StatefulSet scales as freely as a Deployment.
Observability and security
Observability rests on metrics, logs, and traces. Security follows least privilege: RBAC roles bound to service accounts, network policies restricting pod traffic, and secrets not baked into images. Defense in depth layers these controls.
Cloud native vs traditional
Cloud native embraces dynamic orchestration, declarative config, and immutable infrastructure. Traditional models use pets (hand-managed servers) versus cattle (replaceable instances). The exam tests whether you recognize which pattern a scenario describes.
Traps to watch
- "Stateless" does not mean "no data" - it means no local session state that must persist.
- Retries without backoff or idempotency cause cascading failures.
- A ServiceAccount is not the same as a user; RBAC binds roles to either.
- NetworkPolicy is default-allow until a policy selects the pod; then it becomes default-deny for that direction.
Rule of thumb
When a scenario asks how to make a system resilient, prefer redundancy plus health checks plus graceful degradation over trying to prevent all failures.
Worked example: A service calls a flaky dependency. Add timeouts, bounded retries with exponential backoff, a circuit breaker to fail fast, and a cached fallback - resilience by design, not by hoping the dependency stays up.