SaveMyCert
Log in
5 of 5 free questions left today·for unlimited practice
Cloud Native Architecture

Cloud Native Principles and the CNCF Ecosystem

12 min readKCNA · Cloud Native ArchitectureUpdated

Cloud native is the CNCF's term for building and running scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. The techniques that make this possible are named in the CNCF definition itself: containers, service meshes, microservices, immutable infrastructure, and declarative APIs, combined with robust automation so that engineers can make high-impact changes frequently and predictably. For the KCNA exam you need to recognize each of these principles, understand the trade-offs between microservices and monoliths, know the four autoscaling approaches in Kubernetes (HPA, VPA, Cluster Autoscaler, and KEDA), grasp what serverless and scale-to-zero mean, and be able to place well-known projects in the CNCF landscape with its sandbox, incubating, and graduated maturity levels. This lesson covers all of that conceptually, with the comparisons and trigger words the exam leans on.

What you’ll learn
  • State the CNCF definition of cloud native and name its five core techniques
  • Compare microservices and monolithic architectures and identify the trade-offs of each
  • Explain immutable infrastructure and declarative APIs as cloud native operating principles
  • Distinguish HPA, VPA, Cluster Autoscaler, and KEDA by what each one scales
  • Describe serverless computing, scale-to-zero, and where Knative fits
  • Navigate the CNCF landscape categories and project maturity levels

What cloud native means: the CNCF definition

The CNCF defines cloud native technologies as those that empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. The definition then names the exemplary techniques: containers, service meshes, microservices, immutable infrastructure, and declarative APIs. These are worth memorizing as a set, because KCNA questions ask you to recognize which practices belong to the cloud native approach and which do not.

The definition also describes the outcome these techniques produce: systems that are loosely coupled, resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. Every phrase there is doing work. Loose coupling means components can change and fail independently. Resilience means the system tolerates failure rather than assuming it away. Observability means you can understand the system from the telemetry it emits. Automation means humans declare intent and machinery carries it out.

Notice what the definition does not say. Cloud native is not the same as running in a public cloud; the definition explicitly includes private and hybrid environments, and you can run thoroughly cloud native systems on-premises. Nor is it a specific product. It is a set of architectural and operational principles, and Kubernetes is the most prominent platform built around them. The CNCF, the Cloud Native Computing Foundation, is the vendor-neutral home under the Linux Foundation that hosts the open source projects implementing these ideas, with Kubernetes as its first project.

Microservices vs monoliths

A monolith is an application built and deployed as one unit: one codebase, one build artifact, one process to run and scale. Microservices decompose the same functionality into small, independently deployable services, each owning a narrow business capability and communicating with the others over the network, typically through APIs. Cloud native architecture favors microservices because they align with the definition's goals: services are loosely coupled, can be scaled individually, and can be released independently by separate teams.

DimensionMonolithMicroservices
DeploymentOne unit; every change redeploys the whole appEach service deploys independently
ScalingScale everything together, even hot spotsScale only the busy service
Failure isolationOne defect can take down the whole processFailures can be contained to one service
Team structureTeams coordinate on one codebaseSmall teams own services end to end
Operational complexityLow: one thing to runHigh: many services, network calls, versioning
DebuggingSingle process, straightforwardDistributed, needs tracing and correlation

The exam expects balance, not cheerleading. Microservices buy independent scaling, deployment, and team autonomy at the price of operational complexity: network latency, partial failures, and the need for orchestration and observability tooling. A monolith is simpler to build, run, and debug, and remains a reasonable choice for small teams and early products. The honest statement, and the one KCNA rewards, is that microservices trade development-time simplicity for run-time flexibility, and platforms like Kubernetes exist largely to manage the complexity they introduce.

Immutable infrastructure: replace, don't patch

Immutable infrastructure means that once a server, virtual machine, or container is deployed, you never modify it in place. To change anything, you build a new artifact from source, deploy it, and destroy the old one. The alternative, mutable infrastructure, is the traditional model of logging into a running server to apply patches, edit configuration, or hotfix code. Mutable systems drift: after months of manual changes, no two servers are quite alike, and nobody can reproduce exactly what is running. Such hand-maintained, irreplaceable servers are the antithesis of cloud native operations.

Containers make immutability natural. A container image is a read-only, versioned artifact built once and run anywhere. To ship a fix you do not patch a running container; you build a new image, tag it, and roll it out, and Kubernetes replaces the old Pods with new ones. This is why cloud native guidance says to treat workloads as replaceable rather than as unique, carefully nursed systems. Any individual Pod can be killed and recreated from its image at any time with no loss.

The payoffs are concrete. Deployments become reproducible, because the image is the single source of what runs. Rollbacks become trivial, because the previous image version still exists and can be redeployed. Configuration drift disappears, because every replica starts from the same artifact. And security improves, because unexpected changes to a running container are a red flag rather than routine maintenance. On the exam, phrases like patching a live server in place signal the anti-pattern, while rebuild and redeploy signals the cloud native answer.

Declarative APIs and desired state

An imperative approach tells a system what to do, step by step: start three containers, then attach them to this network, then open this port. A declarative approach tells the system what you want to be true, and leaves the how to the platform: there should be three replicas of this application, reachable on this port. Kubernetes is built on the declarative model. You submit manifests, typically YAML, that describe the desired state of your objects, and the cluster works out the actions needed to make reality match.

The machinery behind this is the reconciliation loop, also called the control loop. Controllers continuously compare the desired state stored in the cluster against the observed state of the world and act to close any gap. Declare three replicas and a controller creates three Pods. If a node dies and one Pod vanishes, observed state no longer matches desired state, so a replacement is created automatically, with no human involved. This is self-healing, and it falls straight out of the declarative design: because you stated an outcome rather than a procedure, the system can re-achieve that outcome whenever conditions change.

Declarative configuration has a second benefit: the manifests are plain files, so they can live in version control, be reviewed like code, and serve as the audited source of truth for what should be running, an idea that underpins GitOps-style delivery. For KCNA, anchor the pairing in your mind: declarative APIs express desired state, and reconciliation loops continuously drive actual state toward it. A question that describes issuing step-by-step commands is describing the imperative model, not the cloud native default.

Autoscaling: HPA, VPA, Cluster Autoscaler, and KEDA

Elasticity, using just enough resources and scaling with demand, is a core cloud native promise, and Kubernetes offers several autoscalers that are easy to confuse because each one scales a different thing. The Horizontal Pod Autoscaler, HPA, changes the number of Pod replicas, adding Pods when a metric such as CPU utilization is high and removing them when it falls. The Vertical Pod Autoscaler, VPA, keeps the replica count alone and instead right-sizes each Pod, adjusting its CPU and memory requests to match observed usage. The Cluster Autoscaler works at the infrastructure layer: it adds nodes when Pods are pending because no node has room, and removes underused nodes.

AutoscalerWhat it scalesTrigger
HPANumber of Pod replicas (horizontal)CPU, memory, or custom metrics against a target
VPACPU and memory requests of each Pod (vertical)Observed resource usage over time
Cluster AutoscalerNumber of nodes in the clusterPending Pods that cannot be scheduled, or idle nodes
KEDAPod replicas driven by external events, down to zeroEvent sources such as queue depth or messages waiting

KEDA, Kubernetes Event-driven Autoscaling, is the CNCF graduated project that extends horizontal scaling to external event sources. Instead of watching CPU, KEDA can scale a workload on the length of a message queue or similar signals, and unlike the standard HPA it can scale a workload all the way to zero replicas when there is no work. The layers also cooperate: when HPA or KEDA adds Pods and the nodes are full, the Cluster Autoscaler provisions more nodes. Exam mnemonic: HPA is more Pods, VPA is bigger or smaller Pods, Cluster Autoscaler is more nodes, KEDA is Pods on events with scale to zero.

Serverless and scale to zero

Serverless does not mean there are no servers; it means developers stop managing them. In a serverless model you supply code or a container, and the platform handles provisioning, scaling, and availability, spinning capacity up when requests arrive and back down when they stop. Its defining economic feature is scale-to-zero: when there is no traffic, no instances run and, on managed platforms, nothing is billed. Compare that with a conventional Deployment, which keeps its replicas running, and costing, around the clock regardless of demand.

Function as a Service, FaaS, is the most granular serverless form: you deploy individual functions that run in response to events, an HTTP request, a queue message, a file upload, and disappear afterwards. Public cloud FaaS offerings popularized the model, but the pattern is platform-independent, and the cloud native ecosystem brings it to Kubernetes. Knative is the CNCF-hosted project to know here: its Serving component runs request-driven container workloads that autoscale with traffic, including down to zero, and its Eventing component wires event producers to consumers for event-driven architectures.

Serverless has trade-offs worth recognizing. Cold starts, the delay while an instance spins up from zero for the first request, add latency. Workloads must generally be stateless and short-lived, since instances come and go. In exchange you get minimal operational burden and cost that tracks actual usage, which suits spiky, event-driven, or infrequently used workloads especially well. On the exam, scale to zero, event-driven functions, and no server management are the trigger phrases pointing at serverless, and Knative is the Kubernetes-based answer among the options.

The CNCF landscape and project maturity

The CNCF hosts well over a hundred open source projects, and the CNCF landscape organizes them, along with the wider ecosystem of products, into categories so you can find the right tool for a job. You do not memorize the landscape for KCNA, but you should recognize the major categories and a flagship project or two in each: orchestration and scheduling (Kubernetes), observability (Prometheus for metrics, Fluentd for logs, Jaeger and OpenTelemetry for tracing and telemetry), service mesh (Linkerd and Istio, with Envoy as the proxy underneath), container runtimes (containerd and CRI-O), networking (CNI plugins such as Cilium), storage (Rook), package management (Helm), continuous delivery and GitOps (Argo and Flux), coordination and service discovery (etcd, CoreDNS), and security (projects such as Falco and OPA).

CNCF projects progress through three maturity levels. Sandbox is the entry point for early-stage projects. Incubating projects have demonstrated real adoption and a growing contributor base. Graduated is the highest level, signaling production readiness, broad adoption, and sustainable governance; promotion requires meeting criteria and a vote by the CNCF Technical Oversight Committee. Kubernetes was the first project in the CNCF and the first to graduate; Prometheus was the second project to join and also the second to graduate. Other graduated names you have met include Envoy, containerd, etcd, CoreDNS, Helm, Fluentd, Jaeger, Argo, and KEDA.

Why this matters beyond trivia: maturity levels are how organizations judge risk when adopting a project, and the CNCF's vendor-neutral governance is why competing companies collaborate on the same core infrastructure. When an exam question asks what the CNCF does, the answer is that it hosts and stewards open source cloud native projects under neutral governance, not that it sells products or certifies clouds.

Scenario: taking a retail monolith cloud native

Tie the principles together with a concrete case. A retailer runs its store as a monolith on a handful of hand-maintained virtual machines. Every release redeploys the entire application, so releases are rare and risky. During flash sales only the checkout code path is overloaded, but the team must scale the whole monolith, paying for capacity the catalog and search features do not need. Patches are applied to live servers over SSH, and after years of this no two servers are identical, so failures are hard to reproduce.

A cloud native redesign applies each principle you have seen. The monolith is decomposed so that checkout, catalog, and search become separate microservices, each packaged as an immutable container image built by an automated pipeline; nobody patches a running server again, they rebuild and redeploy. The services are described declaratively in versioned manifests, and Kubernetes reconciliation keeps the running state matching them, replacing any Pod that dies. During a flash sale, the HPA scales only the checkout service's replicas, and the Cluster Autoscaler adds nodes when the existing ones fill; overnight, an event-driven image-processing job scaled by KEDA sits at zero replicas until work arrives in its queue.

The outcomes map straight back to the CNCF definition: loosely coupled services that scale independently, resilience through self-healing and failure isolation, manageability through declarative automation, and frequent, predictable, low-toil change. No single tool delivered this; it is the combination of containers, microservices, immutable artifacts, declarative APIs, and automation, which is precisely the point the KCNA wants you to internalize.

Tip. KCNA tests these principles by recognition: expect to identify the five techniques in the CNCF definition, match each autoscaler to what it scales, and pick the cloud native practice over the legacy one in a scenario. Trigger words include desired state and reconciliation (declarative APIs), replace not patch and configuration drift (immutability), scale to zero and FaaS (serverless, Knative, KEDA), and sandbox, incubating, graduated (CNCF maturity). Distractors often swap HPA and VPA or claim cloud native requires a public cloud, which the definition contradicts.

Key takeaways
  • The CNCF definition names five techniques: containers, service meshes, microservices, immutable infrastructure, and declarative APIs.
  • Cloud native systems aim to be loosely coupled, resilient, manageable, and observable, with change driven by automation.
  • Microservices trade operational complexity for independent scaling, deployment, and team autonomy; monoliths are simpler to run and debug.
  • Immutable infrastructure means replace, not patch: ship a new container image instead of modifying a running instance.
  • Declarative APIs express desired state; reconciliation loops continuously drive actual state toward it, which enables self-healing.
  • HPA scales Pod replicas, VPA right-sizes Pod requests, Cluster Autoscaler changes node count, and KEDA scales on events down to zero.
  • Serverless means no server management and scale-to-zero; Knative brings request-driven and event-driven serverless to Kubernetes.
  • CNCF projects mature from sandbox to incubating to graduated; Kubernetes was the first CNCF project and Prometheus the second.

Frequently asked questions

What is the CNCF definition of cloud native?

The CNCF defines cloud native technologies as those that empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. The definition highlights containers, service meshes, microservices, immutable infrastructure, and declarative APIs as exemplary techniques, and says these produce loosely coupled systems that are resilient, manageable, and observable, allowing engineers to make high-impact changes frequently and predictably through robust automation.

What is the difference between HPA, VPA, and the Cluster Autoscaler?

Each scales a different thing. The Horizontal Pod Autoscaler (HPA) changes the number of Pod replicas based on metrics such as CPU utilization. The Vertical Pod Autoscaler (VPA) keeps the replica count but adjusts each Pod's CPU and memory requests to match observed usage, right-sizing the workload. The Cluster Autoscaler changes the number of nodes in the cluster, adding capacity when Pods are pending with nowhere to schedule and removing underused nodes. KEDA additionally scales replicas on external event sources, including down to zero.

Does serverless mean there are no servers?

No. Servers still exist, but developers no longer provision or manage them. In a serverless model the platform runs your code or container on demand, scales it automatically with traffic, and can scale it to zero instances when there is no work, so idle time costs nothing on managed platforms. Function as a Service (FaaS) is the event-driven, per-function form of serverless, and Knative is the CNCF-hosted project that brings serverless, scale-to-zero workloads to Kubernetes.

What is immutable infrastructure in cloud native computing?

Immutable infrastructure is the practice of never modifying deployed servers or containers in place. To change or fix anything, you build a new versioned artifact, such as a container image, deploy it, and retire the old instance. This eliminates configuration drift, makes deployments reproducible, and makes rollback as simple as redeploying the previous image. It contrasts with mutable infrastructure, where administrators patch and reconfigure live servers, which leads to snowflake systems no one can reliably recreate.

What are the CNCF project maturity levels?

CNCF projects move through three maturity levels: sandbox for early-stage projects entering the foundation, incubating for projects with demonstrated adoption and a growing contributor base, and graduated for projects that have proven production readiness, broad adoption, and sustainable neutral governance, as approved by the Technical Oversight Committee. Kubernetes was the first CNCF project and the first to graduate; other graduated projects include Prometheus, Envoy, containerd, etcd, Helm, Fluentd, Jaeger, and KEDA.

When are microservices a better choice than a monolith?

Microservices pay off when different parts of a system need to scale independently, when multiple teams need to deploy on their own schedules, or when failure isolation between components matters. They cost you operational complexity: network communication, distributed debugging, and the need for orchestration and observability tooling. A monolith remains a sensible choice for small teams and early-stage products because it is simpler to build, deploy, and debug as a single unit.

Test yourself on this topic
Practice questions with full explanations.
Practice now

Sign up free to mark lessons complete, bookmark topics and track your exam readiness.