Skip to content

CNPA Practice Questions Set 1

Complexity: [MEDIUM] Time to Complete: 55-70 minutes Prerequisites: Platform engineering foundations, cloud native architecture basics, Kubernetes API objects, observability basics, and self-service delivery concepts Track: CNPA practice and applied review Kubernetes Version Target: 1.35+

  • Evaluate platform-as-product adoption by using adoption, feedback loops, service ownership, and developer-experience outcomes instead of platform-team activity alone.
  • Compare golden paths, guardrails, hard policy controls, and exception routes when deciding how much autonomy a delivery workflow should preserve.
  • Debug weak platform metrics by separating activity metrics from outcome metrics, then recommending adoption, lead-time, reliability, and satisfaction measures.
  • Diagnose monitoring and observability gaps during a conditional incident by choosing telemetry that supports new operational questions.
  • Design a self-service Kubernetes-style contract with request fields, reconciliation expectations, ownership boundaries, validation feedback, and useful status.

Hypothetical scenario: A payments team needs a new staging environment for a partner integration before the next release train. The organization has Kubernetes, GitOps repositories, a portal, dashboards, and a platform team with a healthy ticket backlog, yet the request still moves through private chat messages, spreadsheet approvals, hand-edited YAML, and a manual cloud-console change. The environment eventually appears, but the product team learns that the official platform is not the fastest safe path for routine work.

That scenario is exactly the kind of trap a CNPA-style question is trying to surface. A platform can contain modern cloud native tools while still behaving like an infrastructure ticket queue, and a team can publish templates while failing to create a product that developers voluntarily use. The exam language often asks about platform engineering, golden paths, developer experience, observability, and self-service, but the stronger answer usually depends on the operating model underneath those nouns.

This practice set is therefore a guided reasoning drill rather than a memory quiz. You will reuse the existing mental models from the CNPA review modules, but the emphasis here is on choosing between plausible answer choices under ambiguity. When two options both mention automation, you will decide which one improves a user workflow. When two options both mention metrics, you will decide which one proves an outcome. When two options both mention policy, you will decide which one preserves safe movement instead of simply centralizing control.

The module also prepares you to explain your answer, which is more valuable than simply choosing a letter. Each question has four visible options, and the answer reasoning names why the correct option works and why the distractors fail. That format trains the habit you need in real platform reviews: identify the workflow, identify the user, identify the risk, then choose the mechanism that improves the system rather than optimizing a local team metric.

A successful platform team begins with a product question: who is the user, what problem are they trying to solve, and how will the team know whether the platform made that problem easier? This sounds simple, but it changes almost every engineering decision. A ticket queue asks how quickly the platform team responded to requests, while a platform product asks whether the user completed the workflow safely without needing the platform team at all. The first question rewards visible busyness, and the second rewards repeatable leverage.

Platform-as-product does not mean the platform team stops caring about infrastructure quality or becomes an internal marketing group. It means the team treats internal developers as users with workflows, pain points, constraints, incentives, and alternatives. Developers can ignore the official path, copy an old repository, ask a senior teammate for a private script, or click through a cloud console when the platform feels slower than the workaround. Adoption is therefore a practical signal, not a popularity contest.

+------------------------+ +---------------------------+
| Infrastructure Queue | | Platform Product |
+------------------------+ +---------------------------+
| Request arrives | | Workflow is studied |
| Human triages ticket | | Common path is designed |
| Specialist performs it | | API or template exposes it|
| User waits for update | | User completes it safely |
| Metric: tickets closed | | Metric: outcomes improved |
+------------------------+ +---------------------------+

The diagram shows the same underlying technical capability presented through two operating models. In the queue model, the scarce resource is the specialist, and every routine request competes for human attention. In the product model, the specialist’s knowledge is encoded into paved workflows, reusable APIs, templates, policies, and feedback mechanisms. The platform team still handles exceptions, but exceptions become learning signals for improving the product rather than the default delivery path.

A senior platform engineer looks for evidence before declaring success. If teams keep asking for the same environment through tickets, the platform has not yet turned that workflow into a reusable capability. If teams use the paved path only when forced, the path may be compliant but not valuable. If teams voluntarily adopt it for routine work because it is faster, safer, and easier to diagnose later, the platform has created leverage that compounds across the organization.

The word “product” also implies a roadmap, not a static template catalog. A platform product improves through user research, support data, incident reviews, adoption metrics, and explicit tradeoff decisions. The team must decide which workflows deserve standardization, which unusual cases deserve documented exceptions, and which requests reveal that a hidden manual step should become part of the interface. Without that loop, the platform may look complete on a slide while remaining incomplete in the developer journey.

Pause and predict: Your organization reports that the platform team closed 300 infrastructure tickets last quarter, but only two product teams use the new deployment workflow without assistance. Would you call the platform adopted? Before reading on, write one sentence that separates platform-team activity from developer outcome.

The strongest answer is usually no: the platform team may be active, but the platform product has weak adoption for the workflow being measured. Ticket closure can still matter as an operational metric, especially when users are blocked, yet it does not prove that the platform reduced friction. A better investigation asks which workflows still require tickets, which teams avoid the platform, what failure modes cause abandonment, and whether the platform team has a roadmap tied to those findings.

2. Golden Paths Are Supported Routes, Not Cages

Section titled “2. Golden Paths Are Supported Routes, Not Cages”

A golden path is a recommended, well-supported route for a common workflow. It packages decisions that many teams should not have to remake: how to build, deploy, observe, secure, and operate a standard service. The point is not to remove judgment from every team. The point is to make the safest common path the easiest path, while still leaving room for justified exceptions when a workload does not fit the default.

This distinction matters because organizations often misuse the language of golden paths to describe hard mandates. A hard mandate can be appropriate for non-negotiable security requirements, such as blocking privileged containers in a shared cluster. A golden path is different because it should be attractive as well as protective. If engineers experience it as a narrow cage, they will either resist it openly or route around it quietly, and both responses weaken the platform’s product signal.

MechanismPrimary PurposeGood UseRisk When Misused
Golden pathMake the common workflow easy and safeStandard service deployment with logging, metrics, and rollback built inBecomes stale ceremony if it ignores developer feedback
GuardrailPrevent dangerous choices while preserving movementPolicy that rejects containers running as root in shared namespacesBecomes confusing if errors do not explain how to fix the request
Hard controlEnforce a non-negotiable boundaryBlocking public object storage for regulated dataBecomes organizational drag if applied to every preference
Exception pathHandle legitimate uncommon needsA latency-sensitive service needing a custom rollout strategyBecomes shadow governance if exceptions are undocumented

Golden paths work best when they are opinionated at the right layer. A path might standardize build provenance, deployment health checks, service telemetry, service ownership labels, rollback behavior, and baseline policy while still letting teams choose framework-level details. The platform team should be clear about which parts are recommendations, which parts are guardrails, and which parts are mandatory controls. Ambiguity here creates frustration because users cannot tell whether they are making a design decision or violating a rule.

The difference between a guardrail and a hard control is often the difference between safe movement and frozen movement. A guardrail says, “You can keep moving if your request stays inside this safety boundary, and here is the error message if it does not.” A hard control says, “This action is not allowed through this route.” Both can be valid, but a CNPA scenario will usually reward the answer that matches the risk level rather than applying maximum control to every workflow.

A useful golden path also has a maintenance loop. Application teams discover edge cases as workloads grow, regulatory demands change, Kubernetes APIs evolve, and runtime behavior surprises everyone. If the platform team treats every edge case as user error, the path will decay. If it treats recurring exceptions as product feedback, the path becomes more durable and the organization gets a clearer boundary between common delivery and specialized engineering.

What would happen if a platform team announced that every service must use its deployment template, but the template had no support for canary releases, batch jobs, or services with specialized traffic routing? Teams with simple services might comply because the template is adequate, while teams with specialized needs would likely fork the template or bypass it because the official route blocks legitimate work. The useful signal is not simply that developers dislike standards; the better signal is that the golden path lacks coverage, extension points, or a documented exception route.

When you see an answer choice that says “make everyone use the platform,” slow down and ask whether the scenario describes a recommendation, a guardrail, or a non-negotiable control. Cloud native platform thinking does not require every team to make every choice independently, but it also does not assume central approval is safer by default. The mature answer usually makes the common path easier, embeds the necessary safety checks, and makes exceptions visible enough that the platform team can learn from them.

Platform metrics are useful only when they connect platform work to user outcomes. A metric such as “number of dashboards created” may show effort, but it does not show whether teams can diagnose incidents faster. A metric such as “percentage of services using the standard deployment path for routine releases” is stronger because it reflects actual behavior by the target users. The best scorecards combine adoption, reliability, speed, safety, and satisfaction so the platform team cannot optimize one dimension while damaging another.

The easiest trap is confusing activity metrics with outcome metrics. Activity metrics are not useless, because they help manage work, plan capacity, and notice operational pressure. They become dangerous when leaders treat them as proof of platform success. A platform team can close many tickets because the platform is effective, but it can also close many tickets because the platform has failed to make common tasks self-service.

Metric TypeExampleWhat It Can Tell YouWhat It Cannot Prove Alone
ActivityTickets closed this monthHow much manual work passed through the teamWhether users became more independent
AdoptionTeams using paved deployment pathWhether the platform is chosen for a workflowWhether the path is producing safer delivery
Lead timeTime from repo creation to first production deployWhether the platform reduces delivery frictionWhether production quality is acceptable
ReliabilityFailed rollouts by deployment pathWhether the path reduces operational riskWhether developers find the path usable
SatisfactionDeveloper survey with commentsWhere friction is felt and whyWhether behavior changed in production

Senior practitioners use metric pairs to avoid self-deception. If adoption rises but incident rates rise too, the platform may be easy but unsafe. If reliability improves but lead time gets worse, the platform may be safe but too slow. If satisfaction is high among a few teams but adoption is low overall, the platform may be valuable for early adopters but not discoverable or general enough for the organization.

A good platform scorecard is workflow-specific. “Platform adoption” is too broad to guide action because adoption of the service bootstrap path, adoption of the deployment path, adoption of the observability standard, and adoption of the database provisioning API may all tell different stories. When a CNPA-style question asks for the strongest sign of adoption, prefer evidence that target teams actually use the platform for a defined workflow and that the workflow produces safer or faster outcomes.

Metric design should also respect service ownership. If the platform team owns only the template repository, it cannot be the sole owner of application reliability, but it can measure whether its golden path creates reliable defaults and clear operational signals. If application teams own production behavior, they need platform metrics that help them see whether the paved path makes ownership easier. The right metric therefore connects platform capability to team behavior without pretending that the platform team runs every service.

Before running through answer choices, ask which metric would change if the user workflow actually improved. A commit count might rise when the platform team is busy, and a dashboard count might rise when a compliance review demands visibility, but neither proves that developers complete routine releases independently. A stronger metric would pair routine release completion through the paved path with rollback health, failed deployment rate, or time from merge to verified production availability.

4. Monitoring Checks Known Conditions, Observability Supports New Questions

Section titled “4. Monitoring Checks Known Conditions, Observability Supports New Questions”

Monitoring and observability overlap, but they are not identical. Monitoring checks predefined conditions: is the service available, is latency above the threshold, is error rate increasing, is the node running out of disk, or is a pod restarting repeatedly? Observability supports investigation when the failure mode is not fully known in advance. It gives engineers enough telemetry to ask new questions about system behavior without needing to ship new code for every question.

During a familiar failure, monitoring may be enough. If an alert says CPU is saturated because traffic doubled after a launch, a runbook may guide the response. During an unfamiliar failure, dashboards can become a wall of disconnected panels that confirm something is wrong without explaining why. Engineers need traces, logs, metrics, events, exemplars, and deployment context that let them follow the request path and compare healthy behavior with failing behavior.

+-----------------------+ +-----------------------------+
| Monitoring Question | | Observability Question |
+-----------------------+ +-----------------------------+
| Is latency too high? | | Which dependency changed? |
| Did error rate rise? | | Why only one tenant fails? |
| Is disk almost full? | | What path did request take? |
| Is pod restarting? | | What changed before restart?|
+-----------------------+ +-----------------------------+

The practical platform question is not whether a production platform should have monitoring or observability. It needs both. Monitoring tells teams when known bad conditions occur, and observability helps teams understand unknown conditions that were not encoded into an alert. The platform team’s job is to make the basic telemetry path easy enough that application teams do not have to reinvent instrumentation, labels, dashboards, trace context, and log conventions for every service.

Observability also has a product dimension. A platform can ship a default dashboard and still fail developers if the dashboard cannot answer the questions that arise during deployment, rollback, or tenant-specific incidents. Useful telemetry has enough structure to filter by service, route, deployment version, namespace, customer segment, dependency, and time window when those dimensions are appropriate for the workload. More charts are not the goal; better questions are the goal.

Pause and predict: A service has green uptime checks, but one customer segment reports checkout failures only when a specific payment method is selected. Would you start by adding another uptime check, or by inspecting request-level telemetry? Explain which choice creates a new question rather than only checking a known condition.

Request-level telemetry is the better starting point because the failure is conditional and specific. An uptime check may still pass because most routes work, and another broad check may only confirm the same shallow availability signal. Useful telemetry would let the team filter by customer segment, payment method, route, dependency call, response code, deployment version, and time window. The platform’s golden path should make this kind of investigation routine, not heroic.

CNPA distractors often blur the language here by offering “more dashboards” as the answer to every incident. More dashboards can help when the panels are tied to actual diagnostic questions, but dashboard volume is not observability. A strong answer asks whether the platform captures signals that let service owners explore unknown behavior. If the scenario says the team cannot explain why only one tenant fails, the answer should favor telemetry depth and correlation over another aggregate uptime panel.

5. Self-Service Needs A Contract And A Reconciler

Section titled “5. Self-Service Needs A Contract And A Reconciler”

Self-service infrastructure is not the same as letting everyone click around in cloud consoles. Good self-service exposes a safe contract: users declare what they need, the platform validates the request, automation reconciles the desired state, and status tells the user what happened. Kubernetes makes this pattern familiar because users submit resources to an API and controllers continuously work to match actual state to desired state.

A contract can be a custom resource, a portal form backed by an API, a GitOps repository pattern, or a command-line workflow. The interface matters less than the operating model. The user should not need to know every provider detail, but they should understand the choices the platform exposes. The platform team should not manually translate every request, but it should own the automation, validation, policy, and operational behavior behind the contract.

+------------------+ +------------------+ +-------------------+
| Developer Intent | ----> | Platform API | ----> | Reconciler |
+------------------+ +------------------+ +-------------------+
| "Need database" | | validates shape | | creates resources |
| size: small | | applies policy | | updates status |
| env: staging | | records owner | | repairs drift |
+------------------+ +------------------+ +-------------------+

This pattern is powerful because it separates user intent from implementation detail. A developer can request a staging database with a supported class of service. The platform can decide which cloud resources, network policies, secrets flow, backup settings, labels, and ownership records are required. If the organization changes providers or improves the implementation, the contract can remain stable while the reconciler evolves behind it.

Here is a simplified example of a request contract. The exact custom resource kind is illustrative, but the YAML is valid and shows the shape a platform might expose in a Kubernetes-native workflow. Notice that the fields describe intent in language a product team can discuss, while the platform implementation can map that intent to provider-specific resources, policy checks, backup automation, and operational ownership.

apiVersion: platform.example.com/v1alpha1
kind: DatabaseRequest
metadata:
name: checkout-staging
namespace: payments
spec:
engine: postgres
environment: staging
size: small
ownerTeam: payments-api
backupPolicy: standard

A senior review of this contract would ask several questions. Are the exposed fields understandable to application teams? Are dangerous choices hidden or guarded by policy? Does status explain whether provisioning succeeded, failed validation, or is waiting on an external dependency? Is ownership recorded for cost, support, and incident routing? Does the contract encourage a standard path while still allowing exception handling for unusual workloads?

Self-service becomes fragile when the platform team exposes implementation details too early. If every developer must choose subnet routing, storage class internals, backup schedule syntax, and cloud IAM policy fragments, the interface is technically self-service but cognitively expensive. The platform has moved toil from the platform team to application teams instead of removing it. A better contract exposes the few choices that matter to the user and makes the platform own the repeatable operational complexity.

The reconciler matters because self-service is not only a create button. In a Kubernetes-style model, the requested state remains visible, the platform can repair drift, and status can explain current progress. That status is part of the product surface. If users can submit a request but cannot tell whether it passed validation, is waiting on a quota, failed because of policy, or succeeded with a degraded backup configuration, they will open a chat thread and recreate the hidden ticket queue.

Which approach would you choose here and why: a portal form that creates a database but hides all status after submission, or a custom resource that exposes validation errors, conditions, owner fields, and a support route? The second approach is usually stronger because it lets users and operators share the same contract. A portal can still be valuable, but it should display the contract and status rather than becoming another opaque front end for manual work.

6. Worked Example: Choosing The Best Platform Answer

Section titled “6. Worked Example: Choosing The Best Platform Answer”

Consider this exercise scenario: an organization introduces an internal developer portal that can create service repositories, attach deployment templates, provision staging namespaces, and register basic dashboards. After two months, platform leaders report success because the portal generated many repositories. However, most teams still ask the platform team to manually review deployment configuration before every production release, and incidents show that teams often do not know which dashboard to use during rollback.

A weak analysis would say that the portal exists, so the platform is self-service. That answer mistakes a tool for an outcome. A stronger analysis separates each workflow. Repository creation may be self-service, production readiness is not self-service if teams still need manual review for every routine release, and observability is not mature if dashboards exist but cannot guide action during rollback. The platform team should not declare success from portal-generated repository counts alone.

The best recommendation is to improve the golden path around production deployment and operational feedback. The platform team might encode deployment checks into CI, provide default rollback dashboards linked from each service, expose status in the portal, and measure how many routine releases reach production without manual platform intervention. It should also capture why teams request manual review: missing documentation, unclear errors, weak confidence in guardrails, or legitimate high-risk changes that need a formal exception route.

This example maps directly to common exam choices. Answers that emphasize more tickets closed, more dashboards created, or the platform owning every incident are usually weaker because they focus on platform activity or centralized ownership. Answers that emphasize supported workflows, developer adoption, measurable outcomes, safe self-service, and feedback loops usually align better with cloud native platform thinking. The exam may use different names, but the operating model is the same.

The worked example also demonstrates why you should not pick an answer merely because it contains a familiar platform term. “Portal” is not automatically right, “policy” is not automatically right, and “automation” is not automatically right. The correct answer is the one that connects the mechanism to the workflow failure. If the failure is manual production review, the answer should improve release guardrails and self-service status rather than celebrating repository creation.

Before choosing an option in the quiz, summarize the scenario in one sentence using this pattern: “The user is trying to complete X, but Y blocks or obscures the outcome.” That sentence forces you to name the user workflow before evaluating the choices. It also helps you reject distractors that sound technically modern but do not touch the failure described in the question.

7. Decision Checklist For Scenario Questions

Section titled “7. Decision Checklist For Scenario Questions”

CNPA practice questions often compress an organizational situation into a short paragraph. Your task is to identify which principle is being tested before evaluating the answer choices. Start by asking whether the scenario is about user adoption, workflow design, policy boundaries, telemetry during uncertainty, or self-service contracts. Once you identify the principle, eliminate answers that optimize the wrong layer.

Use this mental checklist when choices feel similar. If the scenario mentions developers waiting on humans for routine work, think self-service and paved paths. If it mentions many dashboards but weak incident diagnosis, think observability quality rather than dashboard count. If it mentions mandatory templates with growing exceptions, think golden path feedback and coverage. If it mentions ticket volume, commit counts, or meeting frequency, look for an outcome metric that better reflects user success.

+-------------------------+
| Scenario Reading Flow |
+-------------------------+
| 1. What workflow fails? |
| 2. Who is the user? |
| 3. What is the outcome? |
| 4. Is it routine work? |
| 5. Is there a contract? |
| 6. What metric proves it|
+-------------------------+

This checklist prevents a common testing mistake: matching keywords instead of reasoning through the system. A question containing the phrase “golden path” may still be testing whether the path is voluntary and useful. A question containing the word “observability” may be testing whether engineers can ask new questions, not whether logs are retained. A question about self-service may be testing the need for validation and status, not simply the existence of a portal.

The most reliable exam habit is to compare the answer choices against the workflow failure, not against your favorite tool. If a question describes a routine environment request stuck behind manual review, the best answer probably includes a self-service contract, guardrails, and outcome measurement. If a question describes conditional checkout failures with green uptime checks, the best answer probably includes request-level telemetry. If a question describes template forks, the best answer probably includes golden-path feedback and exception handling.

The first useful pattern is to treat every repeated ticket as a product discovery signal. When the same request appears often, the platform team should ask whether the underlying workflow can become a contract, template, policy-backed path, or automated check. This does not mean every request deserves automation immediately. It means repeated manual work should be classified, measured, and reviewed as possible evidence that users need a better paved path.

The second pattern is to pair paved paths with clear guardrail feedback. A guardrail that says “denied” without explaining the violated requirement creates support load and user frustration. A guardrail that names the failing field, explains the safer alternative, and links to the supported path turns policy into a teaching mechanism. This is especially important for Kubernetes workloads because many safety requirements, such as non-root containers, resource requests, labels, and namespace ownership, can be checked before production.

The third pattern is to measure a workflow from the user’s perspective. For deployment, that might mean routine releases completed through the paved path, lead time from merge to verified rollout, rollback success, and developer satisfaction with error messages. For self-service infrastructure, it might mean requests completed without manual intervention, validation failure reasons, time to usable status, and drift repair events. The platform team still tracks internal work, but those metrics support product decisions rather than replacing them.

The fourth pattern is to expose status as part of the contract. Kubernetes conditions, portal status pages, GitOps commit checks, and event streams all serve the same user need: they tell people what the platform is doing with their request. Without status, a request form becomes a black box. With status, the user can distinguish a validation problem from a provider delay, a policy violation from a quota issue, and an expected reconciliation delay from a stuck workflow.

The first anti-pattern is rebranding a ticket queue as a platform. This usually happens when a team adopts cloud native tooling but keeps the same manual operating model. The result is a platform team that looks busy and technically sophisticated while product teams still wait for humans to perform routine work. The better alternative is to choose a few high-friction workflows and turn them into supported, measurable, self-service paths.

The second anti-pattern is treating a golden path as an unchangeable mandate. Teams fall into this because standardization feels safer than negotiation, especially after incidents. The problem is that real workloads vary, and unsupported legitimate cases become forks or shadow workflows. The better alternative is to define the default path, embed the non-negotiable controls, and maintain a visible exception process that feeds the roadmap.

The third anti-pattern is measuring platform success with artifacts instead of outcomes. A platform can publish many templates, create many dashboards, and close many tickets while failing to reduce cognitive load or incident risk. Teams choose these metrics because they are easy to collect and easy to present. The better alternative is to measure defined workflows with adoption, lead time, reliability, safety, and qualitative feedback so the team sees whether users are actually better off.

The fourth anti-pattern is centralizing all production ownership in the platform team. This can feel efficient at first because specialists handle the hard parts, but it separates application behavior from the teams that understand the service. A healthier model gives product teams usable telemetry, safe delivery paths, and escalation support while preserving their accountability for application behavior. The platform enables ownership; it does not absorb every consequence of every service.

When a scenario feels ambiguous, classify the failure before classifying the tool. If the user is blocked by manual review for routine work, choose a self-service contract with guardrails and status. If the user can deploy but cannot diagnose a conditional failure, choose observability that supports new questions. If the user is forking a standard template, choose golden-path feedback, coverage expansion, or documented exceptions. If leadership asks whether the platform works, choose metrics that prove user outcomes rather than activity.

+------------------------------+
| CNPA Platform Decision Flow |
+------------------------------+
| Routine work needs humans? |
| -> Contract + guardrails |
| Template is forked often? |
| -> Improve path + exceptions |
| Alerts green, users failing? |
| -> Request-level telemetry |
| Leaders ask if it worked? |
| -> Outcome metric pair |
| Risk is non-negotiable? |
| -> Hard control with feedback |
+------------------------------+

Use the framework as a pressure test rather than a script. A hard security control can belong inside a golden path when the risk is non-negotiable, and a golden path can still allow customization when the risk is low. A portal can be a strong self-service interface when it exposes a real contract and status, but a portal can also be a decorative layer over manual work. The correct decision depends on the relationship between user workflow, risk, autonomy, feedback, and measurable outcome.

The tradeoff to watch is cognitive load. Platform teams exist partly because every product team should not repeatedly rediscover how to provision environments, configure telemetry, satisfy baseline policy, and wire deployment safety. However, reducing cognitive load does not mean hiding every operational fact from product teams. The better platform removes undifferentiated decisions while preserving enough visibility for teams to own their services, respond to incidents, and make justified exceptions.

  1. Kubernetes controllers run reconciliation loops. The API stores desired state, and controllers keep working toward actual state, which is why Kubernetes-style platform contracts are stronger when they expose status instead of only accepting a one-time request.
  2. The Kubernetes Pod Security Standards define three policy levels. Privileged, Baseline, and Restricted give platform teams a vocabulary for guardrails and hard controls without inventing every workload safety category from scratch.
  3. OpenTelemetry treats traces, metrics, and logs as separate signals. A platform observability path is stronger when it helps teams correlate those signals during an unknown failure rather than shipping disconnected dashboards.
  4. A platform metric is stronger when it is workflow-specific. Measuring adoption of service bootstrap, deployment, telemetry onboarding, and infrastructure provisioning separately gives better product feedback than a single broad adoption percentage.
MistakeWhy It HappensHow to Fix It
Treating ticket closure as the main platform success metricIt rewards platform team activity even when users remain dependent on manual help for routine workflowsMeasure workflow completion, adoption, lead time, reliability, and user feedback together
Describing a golden path as the only legal way to deployIt confuses a supported route with a hard control and often creates workarounds for legitimate exceptionsMake the common path easiest, document mandatory guardrails, and maintain a clear exception process
Building dashboards before defining incident questionsTeams may have many panels but still lack the context needed to diagnose unfamiliar failuresStart from operational questions, then design metrics, logs, traces, and links that support investigation
Exposing raw infrastructure settings as self-serviceUsers inherit provider complexity and make risky choices without enough contextOffer a smaller intent-based contract with validation, defaults, policy, and useful status
Measuring adoption at the whole-platform level onlyA broad adoption number hides which workflows are working and which still require manual interventionTrack adoption by workflow, such as service creation, deployment, database provisioning, and telemetry onboarding
Assuming documentation alone creates self-serviceWritten instructions still require users to perform and interpret manual steps correctlyEncode common steps into APIs, templates, checks, and automated reconciliation wherever practical
Centralizing all production incident ownership in the platform teamIt can slow diagnosis and separate service behavior from the teams that understand the applicationShare responsibility through golden paths, service ownership, usable telemetry, and clear escalation boundaries

1. Your company has a platform team that closes infrastructure tickets quickly, but product teams still wait several days for new service environments because every request needs manual review. Which recommendation best aligns with platform-as-product thinking?

Section titled “1. Your company has a platform team that closes infrastructure tickets quickly, but product teams still wait several days for new service environments because every request needs manual review. Which recommendation best aligns with platform-as-product thinking?”
  1. Celebrate the ticket closure rate because it proves the platform team is responsive.
  2. Replace the ticket workflow with a supported self-service contract for routine environments, then measure how many teams complete the workflow without manual intervention.
  3. Require product teams to attend weekly infrastructure training before they can request environments.
  4. Move all production ownership to the platform team so product teams no longer need to understand environments.
Answer

Correct answer: 2

Option 2 is correct because the scenario shows a routine workflow that still depends on human mediation, so the platform has not converted expertise into a reusable product capability. Option 1 is wrong because ticket closure is an activity metric, not proof that developers became more independent. Option 3 is wrong because training may help users understand the environment request, but it does not remove the manual workflow bottleneck. Option 4 is wrong because centralizing production ownership undermines service ownership instead of improving the platform product.

2. A platform team calls its deployment template a golden path, but teams with batch jobs and canary-release needs keep forking it. What should the platform team evaluate first?

Section titled “2. A platform team calls its deployment template a golden path, but teams with batch jobs and canary-release needs keep forking it. What should the platform team evaluate first?”
  1. Whether the template covers enough common workflow variants and has a clear exception process.
  2. Whether all forks can be blocked immediately by policy.
  3. Whether the team can rename the template to make it sound more official.
  4. Whether application teams should stop using Kubernetes for specialized workloads.
Answer

Correct answer: 1

Option 1 is correct because forking is a signal that the golden path may not support legitimate workflow variants or documented exceptions. Option 2 is wrong because blocking every fork may enforce compliance while leaving the product gap unresolved. Option 3 is wrong because naming does not improve template coverage, feedback loops, or developer experience. Option 4 is wrong because specialized workloads can still belong on Kubernetes when the platform provides an appropriate route.

3. During a review, leadership asks whether the platform is being adopted. Which evidence is strongest for a standard service deployment workflow?

Section titled “3. During a review, leadership asks whether the platform is being adopted. Which evidence is strongest for a standard service deployment workflow?”
  1. The platform repository had many commits this month.
  2. The platform team created additional dashboards for the deployment system.
  3. Most service teams use the paved deployment path for routine releases and report fewer manual steps.
  4. The platform team held several enablement meetings about deployment standards.
Answer

Correct answer: 3

Option 3 is correct because adoption is demonstrated by target users successfully using the platform for the intended service deployment workflow. Option 1 is wrong because commits show platform activity, not user outcome. Option 2 is wrong because additional dashboards may support operations, but they do not prove teams choose the deployment path. Option 4 is wrong because meetings may explain the standard, but they are not evidence that routine releases became easier or safer.

4. A service has normal uptime checks, but one customer segment gets intermittent checkout failures after a dependency change. Which platform capability best supports the investigation?

Section titled “4. A service has normal uptime checks, but one customer segment gets intermittent checkout failures after a dependency change. Which platform capability best supports the investigation?”
  1. A dashboard that only shows total service uptime.
  2. Request-level telemetry that lets engineers filter by customer segment, route, dependency, version, and time window.
  3. A monthly ticket report showing how many incidents were closed.
  4. A policy requiring every service to have the same number of charts.
Answer

Correct answer: 2

Option 2 is correct because the failure is conditional and requires observability that supports new questions about request behavior, dependency calls, versions, and affected segments. Option 1 is wrong because total uptime can stay green while a specific route or customer segment fails. Option 3 is wrong because a ticket report describes incident handling after the fact, not diagnosis during uncertainty. Option 4 is wrong because chart count does not guarantee useful telemetry or correlation.

5. Your platform exposes a portal form for database requests, but users frequently ask in chat whether provisioning succeeded or why a request failed. What is the most likely design gap?

Section titled “5. Your platform exposes a portal form for database requests, but users frequently ask in chat whether provisioning succeeded or why a request failed. What is the most likely design gap?”
  1. The portal should be replaced with direct cloud-console access for every developer.
  2. The request contract lacks clear status, validation feedback, or failure reasons.
  3. The platform team should stop offering database self-service.
  4. Developers are asking questions only because they dislike automation.
Answer

Correct answer: 2

Option 2 is correct because self-service requires visible status, validation errors, ownership information, and failure reasons, not only a submission surface. Option 1 is wrong because direct console access would likely reduce safety, consistency, and auditability. Option 3 is wrong because the problem is not the existence of self-service; the problem is the missing contract feedback. Option 4 is wrong because user questions are evidence of an opaque workflow, not proof that developers dislike automation.

6. A security team requires all containers in shared clusters to run as non-root. The platform team builds this into the standard deployment path and returns clear errors when a manifest violates the rule. How should you classify this design?

Section titled “6. A security team requires all containers in shared clusters to run as non-root. The platform team builds this into the standard deployment path and returns clear errors when a manifest violates the rule. How should you classify this design?”
  1. A useful guardrail embedded in the golden path.
  2. A failure of platform thinking because golden paths can never enforce anything.
  3. A monitoring feature because it checks a predefined condition.
  4. A sign that application teams should own all cluster policy themselves.
Answer

Correct answer: 1

Option 1 is correct because golden paths can include guardrails for non-negotiable safety requirements when the feedback helps teams correct the request. Option 2 is wrong because platform thinking does not forbid enforcement; it asks whether enforcement is matched to risk and preserves safe movement. Option 3 is wrong because the rule validates a deployment request rather than observing runtime health. Option 4 is wrong because shared clusters need consistent baseline policy even when application teams retain service ownership.

7. A platform team wants to reduce cognitive load for developers creating new services. Which design best supports that goal while keeping teams accountable for their applications?

Section titled “7. A platform team wants to reduce cognitive load for developers creating new services. Which design best supports that goal while keeping teams accountable for their applications?”
  1. Give every team a blank repository and a long wiki page describing every infrastructure decision.
  2. Provide a service template with build, deployment, telemetry, and ownership defaults, while allowing documented customization for justified needs.
  3. Require the platform team to approve every application code change before deployment.
  4. Hide all operational telemetry from product teams so they can focus only on features.
Answer

Correct answer: 2

Option 2 is correct because a good platform removes repeated undifferentiated decisions while preserving application ownership and documented customization. Option 1 is wrong because a blank repository and a long wiki push cognitive load onto every team. Option 3 is wrong because manual approval for every application change centralizes control and slows delivery. Option 4 is wrong because hiding telemetry prevents product teams from diagnosing and owning their services.

8. Your team is choosing between two metrics for the first quarter of a deployment-platform rollout. Metric A counts how many templates the platform team published. Metric B measures the percentage of routine releases completed through the paved path without manual platform intervention, paired with rollback failure rate. Which metric is better and why?

Section titled “8. Your team is choosing between two metrics for the first quarter of a deployment-platform rollout. Metric A counts how many templates the platform team published. Metric B measures the percentage of routine releases completed through the paved path without manual platform intervention, paired with rollback failure rate. Which metric is better and why?”
  1. Metric A, because publishing templates is the direct output of the platform team.
  2. Metric A, because a larger template catalog always means higher developer productivity.
  3. Metric B, because it connects adoption with safety for the target workflow.
  4. Neither metric can be useful because platform work cannot be measured.
Answer

Correct answer: 3

Option 3 is correct because Metric B measures whether users complete routine releases through the platform and whether that workflow remains safe. Option 1 is wrong because template publishing is an output, not proof of adoption or reliability. Option 2 is wrong because a larger catalog can increase confusion if it does not map to user workflows. Option 4 is wrong because platform work can be measured when metrics connect defined workflows to adoption, lead time, reliability, and feedback.

Task: Design and test a small self-service contract for a team namespace using Kubernetes labels and annotations. You will not build a full controller in this exercise. Instead, you will practice the platform-thinking loop: define a user-facing contract, apply it to a cluster, inspect whether the request shape is understandable, and decide which status or validation would be needed before this became a real platform capability.

This exercise intentionally uses ordinary Kubernetes namespace metadata rather than a full custom resource because the reasoning matters more than the implementation. Labels and annotations let you practice how a contract records owner team, environment, cost context, support route, requester, and purpose. In a production platform, a reconciler or admission layer would validate those fields and expose richer status, but the same review questions apply.

Before you start, verify that your client can reach a Kubernetes 1.35+ cluster where you have permission to create namespaces. If you do not have a shared cluster, a local kind or minikube cluster is enough because the exercise focuses on API shape and inspection rather than provider-specific infrastructure. Use the full kubectl command in each runnable block so the commands work when copied into a non-interactive shell.

Terminal window
kubectl version --client

Create a file named team-namespace.yaml with a namespace that records the intended owner, environment, cost center, and support channel. This is a simplified stand-in for a richer platform API, but it is enough to practice the difference between raw infrastructure and a user-facing contract. A production contract would likely validate these values, attach policy, and expose conditions, but the namespace metadata gives you a concrete artifact to inspect.

apiVersion: v1
kind: Namespace
metadata:
name: cnpa-practice-payments
labels:
platform.example.com/environment: staging
platform.example.com/owner-team: payments-api
platform.example.com/cost-center: shared-learning
annotations:
platform.example.com/support-channel: "#payments-platform"
platform.example.com/requested-by: "cnpa-learner"
platform.example.com/purpose: "Practice self-service contract review"

Apply the file to your cluster and inspect the labels in the summary output. The important question is not merely whether Kubernetes accepts the object. The important question is whether a developer, an operator, and a future automation loop can infer ownership, support routing, environment, cost context, and purpose from the request.

Terminal window
kubectl apply -f team-namespace.yaml
kubectl get namespace cnpa-practice-payments --show-labels
Solution notes

The namespace should be created or configured successfully, and the kubectl get namespace output should show the labels attached to cnpa-practice-payments. If the apply fails because you lack permission to create namespaces, record that as an environment limitation rather than changing the contract. In a real platform, namespace creation might happen through a higher-level API that delegates cluster permissions safely.

Step 2: Inspect the contract as a platform reviewer

Section titled “Step 2: Inspect the contract as a platform reviewer”

Now inspect the namespace and ask whether a developer could understand what they requested and whether an operator could route support, cost, and ownership questions. The output is intentionally ordinary Kubernetes metadata, but the review lens is the platform skill being practiced. You are looking for a contract that communicates user intent without exposing every implementation detail.

Terminal window
kubectl describe namespace cnpa-practice-payments
kubectl get namespace cnpa-practice-payments -o yaml

Write a short review in your notes answering these questions. Which fields are user intent, and which fields are implementation detail? Which labels would be useful for cost allocation, policy selection, or incident routing? What feedback would a developer need if the owner team label were missing? What status would a real self-service API need beyond the fact that a namespace exists?

Solution notes

A strong review identifies environment, owner-team, cost-center, support-channel, requested-by, and purpose as user-facing contract fields. It also notes that a plain namespace has limited status, so a production platform would need validation results, reconciliation conditions, policy decisions, and support ownership. The point is to design the product surface, not to admire the raw Kubernetes object.

Step 3: Simulate a weak request and compare

Section titled “Step 3: Simulate a weak request and compare”

Create a second file named weak-namespace.yaml that technically creates a namespace but provides almost no platform contract. Apply it only in a local or disposable environment, because it represents the kind of vague request a real platform should validate or reject. This contrast helps you debug why a workflow can be technically self-service while still failing as a platform product.

apiVersion: v1
kind: Namespace
metadata:
name: cnpa-practice-unknown
labels:
platform.example.com/environment: staging

Apply and inspect the weak request, then compare it to the richer namespace. The weak request may be valid Kubernetes, but it is weak platform product design because ownership, support, purpose, and cost context are missing. This is the same distinction you should bring to CNPA scenario questions: a raw API object is not automatically a good self-service product.

Terminal window
kubectl apply -f weak-namespace.yaml
kubectl describe namespace cnpa-practice-unknown
Solution notes

The weak namespace demonstrates why validation and status matter. Kubernetes may accept the object, but the platform cannot confidently route support, assign cost, select team-specific policy, or explain purpose from the request. A real platform API could reject the request with a clear validation message or mark the resource as not ready until required ownership fields are present.

Delete the practice namespaces when you are finished. Cleanup matters because platform exercises should reinforce ownership and lifecycle thinking, not only creation. After deletion, verify that the namespaces no longer appear so you know the temporary contract examples are not left behind in the cluster.

Terminal window
kubectl delete namespace cnpa-practice-payments
kubectl delete namespace cnpa-practice-unknown
Solution notes

Both delete commands should return a deletion message if the namespaces exist. If one namespace was never created, Kubernetes may report that it was not found. That result is acceptable for cleanup, but your notes should still include what validation and status a production self-service contract would need.

  • You created and applied a namespace manifest that records owner team, environment, cost context, support channel, requester, and purpose.
  • You inspected the created namespace with kubectl describe and kubectl get -o yaml, then identified which fields communicate user intent.
  • You created a weaker namespace request and explained why technically valid infrastructure can still be a poor self-service contract.
  • You wrote at least three validation or status requirements that a real platform API should provide before this workflow is production-ready.
  • You cleaned up both practice namespaces and verified they no longer appear in kubectl get namespaces.

Continue with CNPA Practice Questions Set 2 to practice comparison traps across reconciliation, platform ownership, delivery APIs, and developer experience metrics.