5 exercises — master the vocabulary of cloud-native design patterns: immutable infrastructure, circuit breaker states, sidecar architecture, bulkhead isolation, and declarative configuration.
0 / 41 completed
1 / 41
An operations engineer says: "We never SSH into a running server to apply a hotfix — we build a new image with the patch baked in, re-deploy, and terminate the old instance."
Which cloud-native principle does this practice reflect?
Immutable infrastructure treats compute instances the same way container images are treated — as read-only artifacts you replace, not modify.
Mutable vs. immutable operations:
Approach
How changes are applied
Risks
Mutable
SSH in, run apt install, edit config files, restart services
Configuration drift; unauditable; hard to reproduce; "works on this server but not that one"
Immutable
Build new AMI/container image → deploy → drain old instances → terminate
Slightly longer deploy cycle; every change requires a full image build
Why immutable infrastructure improves reliability:
• No configuration drift — every instance is identical to every other; every running server is the same as your last tested image
• Reproducibility — the image tag is the audit trail; you can deploy exactly the same artifact to any environment
• Fast rollback — deploy the previous image tag; no "undo" scripts needed
• Security compliance — no open SSH access to production; no manual changes outside the CI/CD pipeline
"Pets vs. cattle" explained (related concept):
• Pets — servers you name, nurture, and repair when sick (traditional ops model)
• Cattle — servers you number (web-01, web-02), and replace when sick; no individual attachment
Immutable infrastructure operationalises the "cattle" model at the infrastructure level.
Key vocabulary:
• Immutable infrastructure — a practice where deployed artifacts are never modified; changes require building and deploying a new version
• Configuration drift — divergence between the expected state of a server and its actual state after manual changes
• Golden image / AMI — a pre-baked, version-controlled machine image used as the base for all deployed instances
• Bake vs. fry — "baking" embeds config into the image at build time; "frying" applies config at boot time (Chef/Ansible) — immutable infrastructure prefers baking
2 / 41
A developer explains: "When our payment service's error rate exceeds 50% over a 10-second window, the circuit opens — we stop forwarding requests entirely and return a cached fallback instead of hammering a failing downstream service."
Which circuit breaker state transition is being described?
The circuit breaker pattern has three states that model the health of a downstream dependency.
State
Behaviour
Transition trigger
Closed (normal)
Requests flow normally; failures are counted
→ Open when error rate exceeds threshold
Open (tripped)
All requests fail immediately (fast-fail); fallback returned
→ Half-open after a configurable sleep window
Half-open (probing)
A limited number of probe requests are allowed through
→ Closed on success; → Open on failure
Why circuit breakers prevent cascading failure:
Without a circuit breaker, a slow payment service causes every caller to block until timeout — consuming threads, connections, and memory across the entire system. The circuit breaker provides fast-fail: failing requests in microseconds instead of seconds, freeing resources for other operations.
Fallback strategies when circuit is open:
• Return cached data (for read operations)
• Return a degraded response ("payment processing is temporarily unavailable")
• Queue the operation for retry later
• Redirect to an alternative service
Key vocabulary:
• Circuit breaker — a resilience pattern that stops calls to a failing dependency when error rate exceeds a threshold
• Fast-fail — returning an error immediately without attempting the operation, preserving system resources
• Fallback — an alternative response provided when the primary path is unavailable
• Cascading failure — a downstream failure propagating upstream and causing the entire system to degrade
3 / 41
A platform team adds a Fluent Bit container as a sidecar in every application pod to collect, parse, and forward logs to the central log aggregator.
What is the primary architectural benefit of the sidecar pattern compared to embedding logging code directly in each application?
The sidecar pattern is the Kubernetes implementation of the single-responsibility principle applied to infrastructure concerns.
Sidecar pattern — what is separated from the application:
Sidecar type
Responsibility
Example
Logging agent
Tail logs from shared volume → parse → forward
Fluent Bit, Fluentd, Logstash
Service mesh proxy
mTLS, traffic shaping, retries, circuit breaking
Envoy (Istio/Linkerd)
Config sync
Fetch secrets from Vault → write to shared volume
Vault Agent, Secrets Store CSI driver
Metrics exporter
Scrape app metrics → expose Prometheus endpoint
Prometheus exporters
Operational benefits of the sidecar pattern:
• Independent versioning — upgrade Fluent Bit from 1.9 to 2.0 without touching application code or triggering an app test cycle
• Language agnosticism — the same Fluent Bit sidecar handles logs from Go, Python, and Java services identically
• Separation of concerns — application developers focus on business logic; platform engineers own the observability layer
• Consistent policy enforcement — every pod in the cluster gets the same logging config via a mutating admission webhook injecting the sidecar automatically
Related patterns:
• Ambassador — a sidecar that proxies network calls to external services (adds retry, circuit breaking, discovery)
• Adapter — a sidecar that transforms the app's output into a standard format (e.g., converts proprietary log format to JSON)
Key vocabulary:
• Sidecar pattern — co-locating a helper container in a pod to handle cross-cutting concerns independently from the main application
• Mutating admission webhook — automatically injects sidecar containers into new pods matching a label selector
• Cross-cutting concern — functionality (logging, security, observability) that spans multiple services and is better handled separately from business logic
4 / 41
After a major incident, a post-mortem reveals that slow database queries in one service caused thread starvation across the entire API gateway — all endpoints became unresponsive, even those with no database dependency.
An architect proposes partitioning the thread pool so that database-bound handlers cannot exhaust the threads reserved for fast API responses.
Which resilience pattern is this?
The bulkhead pattern is named after the watertight compartments in a ship's hull — flooding one compartment cannot sink the entire ship.
The incident without bulkhead isolation:
Shared thread pool: 200 threads
Slow DB query: 198 threads blocked waiting for query result
Fast API endpoints: 2 threads left → queue backs up → all requests time out
After applying the bulkhead pattern:
DB-bound pool: 50 threads ← capped; slow queries only affect this pool
API fast pool: 150 threads ← isolated; DB slowness has zero impact here
Bulkhead isolation dimensions:
Resource type
Bulkhead approach
Thread pools
Separate pool per downstream dependency (Hystrix/Resilience4j)
Connection pools
Separate DB connection pool per service consumer
Kubernetes
Separate node pools per criticality tier; PriorityClasses for scheduling
Semaphore bulkhead
Limit concurrent calls to a dependency without a dedicated thread pool
Bulkhead vs. circuit breaker — which pattern for which failure mode:
• Circuit breaker — protects against slow or failing downstream services by stopping requests after a threshold
• Bulkhead — protects against resource exhaustion spreading within your own service by isolating capacity allocations
In practice, both patterns are used together: bulkhead limits concurrent calls, circuit breaker stops calls when the service is failing.
Key vocabulary:
• Bulkhead pattern — isolating resource pools (threads, connections) so failure in one consumer cannot starve resources for others
• Thread starvation — a condition where no threads are available to process new requests because all threads are blocked waiting for slow operations
• Semaphore bulkhead — a lightweight bulkhead that limits concurrent executions using a counter rather than a dedicated thread pool
5 / 41
A platform engineer says: "Instead of scripting every step to deploy a service, we write a YAML manifest describing what the final state should look like — number of replicas, image version, environment variables — and the Kubernetes controller continuously ensures the cluster matches that description."
What configuration approach is this, and what operational benefit does it provide?
Declarative configuration is the foundational design principle of Kubernetes — the control loop pattern makes the cluster self-healing.
Imperative vs. declarative — the key distinction:
Property
Imperative
Declarative
You specify
How to achieve the goal ("create 3 pods", "scale to 5")
What the goal is ("replicas: 5")
Idempotent?
No — running twice may create duplicate resources
Yes — applying the same manifest twice is safe
Self-healing?
No — a crashed pod stays crashed until someone re-runs the command
Yes — the controller notices the pod is gone and creates a replacement
Audit trail
Script history; hard to review what changed
Git diff of YAML manifests; every change is a commit
How the Kubernetes reconciliation loop works:
loop forever:
desired = read manifest from etcd (e.g., replicas: 3)
observed = count running pods matching the selector
if desired != observed:
take action (create/delete pods) to converge
sleep(resync_period)
Practical benefit of declarative configuration:
• A pod crashes at 3am → the ReplicaSet controller notices and creates a replacement automatically — no on-call page for this
• A node fails → pods are rescheduled to healthy nodes within seconds
• A config change is a PR with a reviewer-approved YAML diff — fully auditable
Key vocabulary:
• Declarative configuration — specifying the desired end state rather than the steps to achieve it
• Control loop / reconciliation loop — a continuous process that compares desired and actual state and acts to close the gap
• Idempotent — an operation that produces the same result whether applied once or many times
• Self-healing — a system property where the runtime automatically corrects deviations from the desired state
6 / 41
// PR Description:
Subject: Fix: Prevent cascading failures due to stale session data.
This PR addresses a potential issue where outdated session data was leading to intermittent service outages. We've implemented a background task to periodically refresh session TTLs and invalidate expired sessions, reducing the risk of these failures. Please review for any potential performance impact.
(Reviewer: Sarah)
This scenario presents a typical code review comment focusing on a critical bug fix. The key here is the term 'Hotfix.' While all options touch upon development activities, 'Hotfix' accurately describes the immediate action taken to address a production problem—a deviation from planned work. A refactor would improve existing code, a feature adds new functionality, and a bug fix is too general; this PR specifically targets an outage caused by stale data.
7 / 41
During a code review of a new microservice deployment, the team lead asks: "David, can you elaborate on why we're using immutable infrastructure here? We've been deploying changes directly to existing instances for years. What's the big deal?" David responds: "Well, with immutable infrastructure, each change creates a *new* instance from scratch – a new container image, fresh configuration, everything. It means we don't have to worry about rolling back old versions or dealing with conflicting changes when updating services."
The core benefit of immutable infrastructure isn't just about creating new images; it's about treating each deployment as a distinct, disposable unit. This drastically simplifies rollback (no need to revert old states) and eliminates the 'chicken and egg' problem of determining which version is currently running. David correctly highlights this key advantage – avoiding configuration drift and simplifying updates by ensuring every instance is always in a known, consistent state. The other options misinterpret the purpose of immutability or focus on superficial aspects.
8 / 41
During a Slack discussion about scaling a new feature for an e-commerce platform, a developer writes: 'We're going to deploy this as a separate microservice, stateless, and scale horizontally based on incoming traffic. We'll use Kubernetes HPA (Horizontal Pod Autoscaler) to automatically adjust the number of replicas.' Which cloud-native pattern is primarily being described in this message? Consider the benefits of isolating functionality and leveraging automated scaling.
This scenario describes Container Orchestration, specifically utilizing Kubernetes. The key elements—a stateless microservice, horizontal scaling via HPA, and deployment through a container platform—are hallmarks of this pattern. The other options represent distinct approaches but don't encompass the combined strategy outlined here; Twelve-Factor is an application methodology, serverless is a compute model, and microservices are an architectural style.
9 / 41
A developer is troubleshooting intermittent failures in a newly deployed microservice. The service relies on an external API for data enrichment. Recent deployments have introduced increased latency and occasional timeouts to the external API. During a standup update, the developer states: 'We're seeing these timeouts spike during peak hours – it's like the API just suddenly becomes unavailable. We've tried increasing our retry attempts in the service, but it hasn't fully resolved the issue.' Which cloud-native resilience pattern is MOST relevant to address this scenario? Consider strategies for handling external dependency failures and maintaining service availability.
The correct answer is Circuit Breaker. The developer's description – timeouts spiking during peak hours and retries failing – indicates a situation where the external API is frequently unavailable or unresponsive. A circuit breaker would automatically stop sending requests to the failing API after a certain period, preventing the service from being overloaded and ultimately failing. Retry logic might only mask the underlying problem, while timeouts alone don't actively mitigate the impact of an unavailable dependency.
10 / 41
// PR Description:
Subject: Fix: Prevent cascading failures due to stale session data.
This PR addresses a potential issue where outdated session data was leading to intermittent service outages. We've implemented a background task to periodically refresh session TTLs and invalidate expired sessions, reducing the risk of these failures. Please review for any potential performance impact.
(Reviewer: Sarah)
This scenario presents a typical code review comment focusing on a critical bug fix. The key here is the term 'Hotfix.' While all options touch upon development activities, 'Hotfix' accurately describes the immediate action taken to address a production problem—a deviation from planned work. A refactor would improve existing code, a feature adds new functionality, and a bug fix is too general; this PR specifically targets an outage caused by stale data.
11 / 41
During a code review of a new microservice deployment, the team lead asks: "David, can you elaborate on why we're using immutable infrastructure here? We've been deploying changes directly to existing instances for years. What's the big deal?" David responds: "Well, with immutable infrastructure, each change creates a *new* instance from scratch – a new container image, fresh configuration, everything. It means we don't have to worry about rolling back old versions or dealing with conflicting changes when updating services."
The core benefit of immutable infrastructure isn't just about creating new images; it's about treating each deployment as a distinct, disposable unit. This drastically simplifies rollback (no need to revert old states) and eliminates the 'chicken and egg' problem of determining which version is currently running. David correctly highlights this key advantage – avoiding configuration drift and simplifying updates by ensuring every instance is always in a known, consistent state. The other options misinterpret the purpose of immutability or focus on superficial aspects.
12 / 41
During a Slack discussion about scaling a new feature for an e-commerce platform, a developer writes: 'We're going to deploy this as a separate microservice, stateless, and scale horizontally based on incoming traffic. We'll use Kubernetes HPA (Horizontal Pod Autoscaler) to automatically adjust the number of replicas.' Which cloud-native pattern is primarily being described in this message? Consider the benefits of isolating functionality and leveraging automated scaling.
This scenario describes Container Orchestration, specifically utilizing Kubernetes. The key elements—a stateless microservice, horizontal scaling via HPA, and deployment through a container platform—are hallmarks of this pattern. The other options represent distinct approaches but don't encompass the combined strategy outlined here; Twelve-Factor is an application methodology, serverless is a compute model, and microservices are an architectural style.
13 / 41
A developer is troubleshooting intermittent failures in a newly deployed microservice. The service relies on an external API for data enrichment. Recent deployments have introduced increased latency and occasional timeouts to the external API. During a standup update, the developer states: 'We're seeing these timeouts spike during peak hours – it's like the API just suddenly becomes unavailable. We've tried increasing our retry attempts in the service, but it hasn't fully resolved the issue.' Which cloud-native resilience pattern is MOST relevant to address this scenario? Consider strategies for handling external dependency failures and maintaining service availability.
The correct answer is Circuit Breaker. The developer's description – timeouts spiking during peak hours and retries failing – indicates a situation where the external API is frequently unavailable or unresponsive. A circuit breaker would automatically stop sending requests to the failing API after a certain period, preventing the service from being overloaded and ultimately failing. Retry logic might only mask the underlying problem, while timeouts alone don't actively mitigate the impact of an unavailable dependency.
14 / 41
// PR Description:
Subject: Fix: Prevent cascading failures due to stale session data.
This PR addresses a potential issue where outdated session data was leading to intermittent service outages. We've implemented a background task to periodically refresh session TTLs and invalidate expired sessions, reducing the risk of these failures. Please review for any potential performance impact.
(Reviewer: Sarah)
This scenario presents a typical code review comment focusing on a critical bug fix. The key here is the term 'Hotfix.' While all options touch upon development activities, 'Hotfix' accurately describes the immediate action taken to address a production problem—a deviation from planned work. A refactor would improve existing code, a feature adds new functionality, and a bug fix is too general; this PR specifically targets an outage caused by stale data.
15 / 41
During a code review of a new microservice deployment, the team lead asks: "David, can you elaborate on why we're using immutable infrastructure here? We've been deploying changes directly to existing instances for years. What's the big deal?" David responds: "Well, with immutable infrastructure, each change creates a *new* instance from scratch – a new container image, fresh configuration, everything. It means we don't have to worry about rolling back old versions or dealing with conflicting changes when updating services."
The core benefit of immutable infrastructure isn't just about creating new images; it's about treating each deployment as a distinct, disposable unit. This drastically simplifies rollback (no need to revert old states) and eliminates the 'chicken and egg' problem of determining which version is currently running. David correctly highlights this key advantage – avoiding configuration drift and simplifying updates by ensuring every instance is always in a known, consistent state. The other options misinterpret the purpose of immutability or focus on superficial aspects.
16 / 41
During a Slack discussion about scaling a new feature for an e-commerce platform, a developer writes: 'We're going to deploy this as a separate microservice, stateless, and scale horizontally based on incoming traffic. We'll use Kubernetes HPA (Horizontal Pod Autoscaler) to automatically adjust the number of replicas.' Which cloud-native pattern is primarily being described in this message? Consider the benefits of isolating functionality and leveraging automated scaling.
This scenario describes Container Orchestration, specifically utilizing Kubernetes. The key elements—a stateless microservice, horizontal scaling via HPA, and deployment through a container platform—are hallmarks of this pattern. The other options represent distinct approaches but don't encompass the combined strategy outlined here; Twelve-Factor is an application methodology, serverless is a compute model, and microservices are an architectural style.
17 / 41
A developer is troubleshooting intermittent failures in a newly deployed microservice. The service relies on an external API for data enrichment. Recent deployments have introduced increased latency and occasional timeouts to the external API. During a standup update, the developer states: 'We're seeing these timeouts spike during peak hours – it's like the API just suddenly becomes unavailable. We've tried increasing our retry attempts in the service, but it hasn't fully resolved the issue.' Which cloud-native resilience pattern is MOST relevant to address this scenario? Consider strategies for handling external dependency failures and maintaining service availability.
The correct answer is Circuit Breaker. The developer's description – timeouts spiking during peak hours and retries failing – indicates a situation where the external API is frequently unavailable or unresponsive. A circuit breaker would automatically stop sending requests to the failing API after a certain period, preventing the service from being overloaded and ultimately failing. Retry logic might only mask the underlying problem, while timeouts alone don't actively mitigate the impact of an unavailable dependency.
18 / 41
// PR Description:
Subject: Fix: Prevent cascading failures due to stale session data.
This PR addresses a potential issue where outdated session data was leading to intermittent service outages. We've implemented a background task to periodically refresh session TTLs and invalidate expired sessions, reducing the risk of these failures. Please review for any potential performance impact.
(Reviewer: Sarah)
This scenario presents a typical code review comment focusing on a critical bug fix. The key here is the term 'Hotfix.' While all options touch upon development activities, 'Hotfix' accurately describes the immediate action taken to address a production problem—a deviation from planned work. A refactor would improve existing code, a feature adds new functionality, and a bug fix is too general; this PR specifically targets an outage caused by stale data.
19 / 41
During a code review of a new microservice deployment, the team lead asks: "David, can you elaborate on why we're using immutable infrastructure here? We've been deploying changes directly to existing instances for years. What's the big deal?" David responds: "Well, with immutable infrastructure, each change creates a *new* instance from scratch – a new container image, fresh configuration, everything. It means we don't have to worry about rolling back old versions or dealing with conflicting changes when updating services."
The core benefit of immutable infrastructure isn't just about creating new images; it's about treating each deployment as a distinct, disposable unit. This drastically simplifies rollback (no need to revert old states) and eliminates the 'chicken and egg' problem of determining which version is currently running. David correctly highlights this key advantage – avoiding configuration drift and simplifying updates by ensuring every instance is always in a known, consistent state. The other options misinterpret the purpose of immutability or focus on superficial aspects.
20 / 41
During a Slack discussion about scaling a new feature for an e-commerce platform, a developer writes: 'We're going to deploy this as a separate microservice, stateless, and scale horizontally based on incoming traffic. We'll use Kubernetes HPA (Horizontal Pod Autoscaler) to automatically adjust the number of replicas.' Which cloud-native pattern is primarily being described in this message? Consider the benefits of isolating functionality and leveraging automated scaling.
This scenario describes Container Orchestration, specifically utilizing Kubernetes. The key elements—a stateless microservice, horizontal scaling via HPA, and deployment through a container platform—are hallmarks of this pattern. The other options represent distinct approaches but don't encompass the combined strategy outlined here; Twelve-Factor is an application methodology, serverless is a compute model, and microservices are an architectural style.
21 / 41
A developer is troubleshooting intermittent failures in a newly deployed microservice. The service relies on an external API for data enrichment. Recent deployments have introduced increased latency and occasional timeouts to the external API. During a standup update, the developer states: 'We're seeing these timeouts spike during peak hours – it's like the API just suddenly becomes unavailable. We've tried increasing our retry attempts in the service, but it hasn't fully resolved the issue.' Which cloud-native resilience pattern is MOST relevant to address this scenario? Consider strategies for handling external dependency failures and maintaining service availability.
The correct answer is Circuit Breaker. The developer's description – timeouts spiking during peak hours and retries failing – indicates a situation where the external API is frequently unavailable or unresponsive. A circuit breaker would automatically stop sending requests to the failing API after a certain period, preventing the service from being overloaded and ultimately failing. Retry logic might only mask the underlying problem, while timeouts alone don't actively mitigate the impact of an unavailable dependency.
22 / 41
Maria, during a standup update, says: "We're using containers for this new API gateway deployment. It's stateless, so scaling is handled automatically by Kubernetes. We've also adopted a blue/green strategy to minimize downtime during updates.". Which of the following best describes Maria's understanding of Cloud-Native principles?
Maria correctly identifies key elements – containerization, automated scaling, and blue/green deployments. This demonstrates an understanding of how these practices contribute to agility, resilience, and faster release cycles, all hallmarks of cloud-native architectures. Option A is incorrect because cloud-native often favors stateless applications for scalability; options C and D are too narrow in their focus.
23 / 41
Reviewer comment on a new microservice: 'This service uses immutable infrastructure. All deployments require rebuilding the entire image from scratch. We're using a CI/CD pipeline to automate this process. What is the primary benefit of this approach, according to the team's rationale?
git diff
The core benefit of immutable infrastructure is preventing configuration drift. By rebuilding from scratch each time, the team ensures that every deployment has a known, consistent state, significantly reducing the chances of unexpected behavior caused by differing configurations. Option A is misleading; speed isn't the primary driver; option C doesn't directly address the issue of consistency and option D describes autoscaling, not immutable infrastructure.
24 / 41
During a Slack discussion about a newly deployed service, Sarah writes: 'The API is returning 502 Bad Gateway errors intermittently. We suspect the problem lies with our external data enrichment provider. We've implemented circuit breakers to mitigate cascading failures.' What does Sarah's message primarily highlight regarding cloud-native design?
curl -I https://api.example.com/data
Sarah's use of circuit breakers showcases a key resilience pattern – handling failures of dependent services. This proactive approach aligns directly with cloud-native principles of designing for failure and maintaining availability. Option A is incorrect as it focuses only on immediate steps; option C doesn't address the core issue, and D contradicts the goal of building resilient systems.
25 / 41
A PR description states: 'We've implemented a service mesh to manage communication between our microservices. This allows us to enforce policies like rate limiting and authentication centrally.' What does this PR description exemplify in relation to cloud-native architecture?
kubectl get services
The use of a service mesh represents a shift to a more centralized and manageable approach. By abstracting away communication complexities, it allows for consistent policy enforcement and simplifies operations – core tenets of cloud-native design. Options A and D are incorrect as they represent outdated approaches; option B is the opposite of what's being described here.
26 / 41
During a code review discussion, John asks: 'Why are we deploying this new feature as a separate microservice instead of adding it directly to the main application?'. The team lead responds: 'Because it allows us to scale independently and isolate potential issues.' Which principle does this primarily illustrate?
docker ps
This scenario directly highlights the core advantage of microservices – independent scaling. By decoupling the feature into a separate service, the team can adjust resources dynamically based on demand and contain any issues within that specific service without impacting the entire application. Option C is incorrect as it suggests a different architectural approach; option D contradicts the benefits of using microservices.
27 / 41
Maria, during a standup update, says: "We're using containers for this new API gateway deployment. It's stateless, so scaling is handled automatically by Kubernetes. We've also adopted a blue/green strategy to minimize downtime during updates.". Which of the following best describes Maria's understanding of Cloud-Native principles?
Maria correctly identifies key elements – containerization, automated scaling, and blue/green deployments. This demonstrates an understanding of how these practices contribute to agility, resilience, and faster release cycles, all hallmarks of cloud-native architectures. Option A is incorrect because cloud-native often favors stateless applications for scalability; options C and D are too narrow in their focus.
28 / 41
Reviewer comment on a new microservice: 'This service uses immutable infrastructure. All deployments require rebuilding the entire image from scratch. We're using a CI/CD pipeline to automate this process. What is the primary benefit of this approach, according to the team's rationale?
git diff
The core benefit of immutable infrastructure is preventing configuration drift. By rebuilding from scratch each time, the team ensures that every deployment has a known, consistent state, significantly reducing the chances of unexpected behavior caused by differing configurations. Option A is misleading; speed isn't the primary driver; option C doesn't directly address the issue of consistency and option D describes autoscaling, not immutable infrastructure.
29 / 41
During a Slack discussion about a newly deployed service, Sarah writes: 'The API is returning 502 Bad Gateway errors intermittently. We suspect the problem lies with our external data enrichment provider. We've implemented circuit breakers to mitigate cascading failures.' What does Sarah's message primarily highlight regarding cloud-native design?
curl -I https://api.example.com/data
Sarah's use of circuit breakers showcases a key resilience pattern – handling failures of dependent services. This proactive approach aligns directly with cloud-native principles of designing for failure and maintaining availability. Option A is incorrect as it focuses only on immediate steps; option C doesn't address the core issue, and D contradicts the goal of building resilient systems.
30 / 41
A PR description states: 'We've implemented a service mesh to manage communication between our microservices. This allows us to enforce policies like rate limiting and authentication centrally.' What does this PR description exemplify in relation to cloud-native architecture?
kubectl get services
The use of a service mesh represents a shift to a more centralized and manageable approach. By abstracting away communication complexities, it allows for consistent policy enforcement and simplifies operations – core tenets of cloud-native design. Options A and D are incorrect as they represent outdated approaches; option B is the opposite of what's being described here.
31 / 41
During a code review discussion, John asks: 'Why are we deploying this new feature as a separate microservice instead of adding it directly to the main application?'. The team lead responds: 'Because it allows us to scale independently and isolate potential issues.' Which principle does this primarily illustrate?
docker ps
This scenario directly highlights the core advantage of microservices – independent scaling. By decoupling the feature into a separate service, the team can adjust resources dynamically based on demand and contain any issues within that specific service without impacting the entire application. Option C is incorrect as it suggests a different architectural approach; option D contradicts the benefits of using microservices.
32 / 41
Maria, during a standup update, says: "We're using containers for this new API gateway deployment. It's stateless, so scaling is handled automatically by Kubernetes. We've also adopted a blue/green strategy to minimize downtime during updates.". Which of the following best describes Maria's understanding of Cloud-Native principles?
Maria correctly identifies key elements – containerization, automated scaling, and blue/green deployments. This demonstrates an understanding of how these practices contribute to agility, resilience, and faster release cycles, all hallmarks of cloud-native architectures. Option A is incorrect because cloud-native often favors stateless applications for scalability; options C and D are too narrow in their focus.
33 / 41
Reviewer comment on a new microservice: 'This service uses immutable infrastructure. All deployments require rebuilding the entire image from scratch. We're using a CI/CD pipeline to automate this process. What is the primary benefit of this approach, according to the team's rationale?
git diff
The core benefit of immutable infrastructure is preventing configuration drift. By rebuilding from scratch each time, the team ensures that every deployment has a known, consistent state, significantly reducing the chances of unexpected behavior caused by differing configurations. Option A is misleading; speed isn't the primary driver; option C doesn't directly address the issue of consistency and option D describes autoscaling, not immutable infrastructure.
34 / 41
During a Slack discussion about a newly deployed service, Sarah writes: 'The API is returning 502 Bad Gateway errors intermittently. We suspect the problem lies with our external data enrichment provider. We've implemented circuit breakers to mitigate cascading failures.' What does Sarah's message primarily highlight regarding cloud-native design?
curl -I https://api.example.com/data
Sarah's use of circuit breakers showcases a key resilience pattern – handling failures of dependent services. This proactive approach aligns directly with cloud-native principles of designing for failure and maintaining availability. Option A is incorrect as it focuses only on immediate steps; option C doesn't address the core issue, and D contradicts the goal of building resilient systems.
35 / 41
A PR description states: 'We've implemented a service mesh to manage communication between our microservices. This allows us to enforce policies like rate limiting and authentication centrally.' What does this PR description exemplify in relation to cloud-native architecture?
kubectl get services
The use of a service mesh represents a shift to a more centralized and manageable approach. By abstracting away communication complexities, it allows for consistent policy enforcement and simplifies operations – core tenets of cloud-native design. Options A and D are incorrect as they represent outdated approaches; option B is the opposite of what's being described here.
36 / 41
During a code review discussion, John asks: 'Why are we deploying this new feature as a separate microservice instead of adding it directly to the main application?'. The team lead responds: 'Because it allows us to scale independently and isolate potential issues.' Which principle does this primarily illustrate?
docker ps
This scenario directly highlights the core advantage of microservices – independent scaling. By decoupling the feature into a separate service, the team can adjust resources dynamically based on demand and contain any issues within that specific service without impacting the entire application. Option C is incorrect as it suggests a different architectural approach; option D contradicts the benefits of using microservices.
37 / 41
Maria, during a standup update, says: "We're using containers for this new API gateway deployment. It's stateless, so scaling is handled automatically by Kubernetes. We've also adopted a blue/green strategy to minimize downtime during updates.". Which of the following best describes Maria's understanding of Cloud-Native principles?
Maria correctly identifies key elements – containerization, automated scaling, and blue/green deployments. This demonstrates an understanding of how these practices contribute to agility, resilience, and faster release cycles, all hallmarks of cloud-native architectures. Option A is incorrect because cloud-native often favors stateless applications for scalability; options C and D are too narrow in their focus.
38 / 41
Reviewer comment on a new microservice: 'This service uses immutable infrastructure. All deployments require rebuilding the entire image from scratch. We're using a CI/CD pipeline to automate this process. What is the primary benefit of this approach, according to the team's rationale?
git diff
The core benefit of immutable infrastructure is preventing configuration drift. By rebuilding from scratch each time, the team ensures that every deployment has a known, consistent state, significantly reducing the chances of unexpected behavior caused by differing configurations. Option A is misleading; speed isn't the primary driver; option C doesn't directly address the issue of consistency and option D describes autoscaling, not immutable infrastructure.
39 / 41
During a Slack discussion about a newly deployed service, Sarah writes: 'The API is returning 502 Bad Gateway errors intermittently. We suspect the problem lies with our external data enrichment provider. We've implemented circuit breakers to mitigate cascading failures.' What does Sarah's message primarily highlight regarding cloud-native design?
curl -I https://api.example.com/data
Sarah's use of circuit breakers showcases a key resilience pattern – handling failures of dependent services. This proactive approach aligns directly with cloud-native principles of designing for failure and maintaining availability. Option A is incorrect as it focuses only on immediate steps; option C doesn't address the core issue, and D contradicts the goal of building resilient systems.
40 / 41
A PR description states: 'We've implemented a service mesh to manage communication between our microservices. This allows us to enforce policies like rate limiting and authentication centrally.' What does this PR description exemplify in relation to cloud-native architecture?
kubectl get services
The use of a service mesh represents a shift to a more centralized and manageable approach. By abstracting away communication complexities, it allows for consistent policy enforcement and simplifies operations – core tenets of cloud-native design. Options A and D are incorrect as they represent outdated approaches; option B is the opposite of what's being described here.
41 / 41
During a code review discussion, John asks: 'Why are we deploying this new feature as a separate microservice instead of adding it directly to the main application?'. The team lead responds: 'Because it allows us to scale independently and isolate potential issues.' Which principle does this primarily illustrate?
docker ps
This scenario directly highlights the core advantage of microservices – independent scaling. By decoupling the feature into a separate service, the team can adjust resources dynamically based on demand and contain any issues within that specific service without impacting the entire application. Option C is incorrect as it suggests a different architectural approach; option D contradicts the benefits of using microservices.
What will I practice in "Cloud-Native Patterns — Cloud-Native Language Exercises"?
This is a Cloud-Native exercise set. It walks through 41 scenario-based multiple-choice questions built around real usage of Cloud-Native terminology that IT professionals encounter on the job.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to complete with no account, sign-up, or paywall.
How many questions are in this exercise?
This set contains 41 questions. Each one shows immediate feedback and a detailed explanation after you answer, so you learn the correct usage right away rather than waiting for a final score.
Do I need prior experience to complete this exercise?
No prior experience is required. Each question includes a full explanation covering the reasoning behind the correct answer, so the exercise itself teaches the Cloud-Native vocabulary as you go.
Can I retry the exercise if I get questions wrong?
Yes — use the "Try again" button on the results screen to reset your answers and go through all the questions again. There is no limit on attempts.
Is my progress saved?
Your answers and score for the current session are tracked in the browser as you go. No account or login is needed, and there is nothing to install.
What if I don't understand a term used in a question?
Read the explanation shown after you answer each question — it breaks down the correct term in plain English with a real-world example. You can also check the site Glossary for quick definitions.
How is this different from reading a blog article on the topic?
Exercises like this one are interactive drills that test and reinforce specific vocabulary through multiple-choice questions, while blog articles explain concepts in prose. Practising here after reading builds active recall, not just passive recognition.
Where can I find more Cloud-Native exercises?
See the Cloud-Native exercises hub for the full set of related pages, or browse all exercise categories from the main Exercises index.
Can I use this exercise to prepare for a technical interview?
Yes — Cloud-Native vocabulary comes up often in technical discussions and interviews. Pair this exercise with our dedicated Interview Preparation section for role-specific practice.