GCP-ACE domain - 30% of the exam

Ensuring the successful operation of a cloud solution

Ensuring the successful operation of a cloud solution is 30% of the GCP-ACE exam. These are the objectives it covers, each with practice questions, with every answer explained.

The domain in numbers

90
Practice questions
4
Objectives
90
Medium

Where people go wrong

  • Confusing the autoscaler that adds Pods with the one that adds nodes

    The wrong answers hand each scaling job to the wrong mechanism: the Horizontal Pod Autoscaler is offered for Pending Pods that need node capacity, the Vertical Pod Autoscaler for adding replicas, and kubectl scale or a node resize for CPU-driven autoscaling. Replica counts and node counts are separate layers. The Horizontal Pod Autoscaler changes replicas, the Vertical Pod Autoscaler changes Pod requests, and the cluster autoscaler adds nodes to a node pool.

    See it in a sample question
  • Reading Cloud Run traffic flags as labels or increments

    The wrong answers treat deployment and traffic flags as if they described a rollout. --revision-suffix only names a revision, --async only controls whether the CLI waits, and --to-latest sends all traffic to the newest revision. Weights in --to-revisions are absolute assignments, not increments: checkout-v5=80 sets it to exactly 80, not 80 more. Naming one revision at 10 leaves the balance on the serving revision, and naming one at 100, as in --to-revisions=billing-r9=100, promotes or rolls back instantly. --no-traffic deploys a revision that receives nothing.

    See it in a sample question
  • Anchoring a lifecycle condition to the wrong clock

    The wrong answers pick a lifecycle condition that measures a different point in time from the one the requirement names. age counts days from each object's creation, not from a calendar date or a recorded invoice date. createdBefore compares creation against one fixed date and never advances. daysSinceCustomTime counts from the Custom-Time metadata, and daysSinceNoncurrentTime counts from when a version was superseded, so a rule for old versions pairs it with numNewerVersions instead of using age.

    See it in a sample question
  • Choosing the wrong alerting condition type

    The wrong answers swap condition types. A metric-absence condition fires when a series stops reporting, so it cannot detect a value staying high, and a threshold condition needs data points, so it cannot detect a crashed process that has gone silent. Uptime checks probe an endpoint rather than read CPU utilisation. A log-based alert matches a filter such as severity ERROR directly, with no metric to define, but it cannot read a numeric metric.

    See it in a sample question
  • Expecting a route or an address to give private instances egress

    The wrong answers try to give instances that have no external IP address a path to the internet through a route, Cloud DNS, a load balancer or a VPN tunnel. The default route to the internet gateway already exists but is usable only by instances holding an external IP, and a route cannot translate addresses. Cloud NAT, attached to a Cloud Router in the subnet's region, lets such instances start outbound connections while unsolicited inbound traffic stays blocked.

    See it in a sample question

Objectives in this domain

What to study

The official documents this domain's practice questions cite most.

Sample questions from this domain

Free sampleEnsuring the successful operation of a cloud solutionmedium

Several Pods in a GKE Standard cluster stay in the Pending state because no existing node has enough free CPU to schedule them. Which mechanism is responsible for adding capacity, and on what basis does it act?

  • AThe cluster autoscaler, because it adds nodes to a node pool when Pods cannot be scheduled for want of resources, and later removes nodes that stay underutilised. Correct
  • BThe Horizontal Pod Autoscaler, because it watches aggregate node CPU and provisions extra nodes into the pool once utilisation crosses its configured target.
  • CThe Vertical Pod Autoscaler, because it recreates the Pending Pods with smaller resource requests until they fit onto the nodes that already exist.
  • DThe kube-scheduler, because when it finds no fit it directly requests a new Compute Engine VM and binds the Pending Pods to it as soon as the VM registers.
Identify the cluster autoscaler as the component that adds and removes GKE nodes based on Pod scheduling pressure. The cluster autoscaler watches for Pods that cannot be scheduled because of insufficient resources and adds nodes to a node pool to accommodate them, then scales the pool back down when nodes remain underutilised over time.

Why A is correct: The cluster autoscaler resizes node pools based on scheduling pressure, adding nodes when Pods are unschedulable due to insufficient resources and removing nodes that remain underutilised.

Why B is wrong: This is tempting because the HPA reacts to CPU, but it scales Pod replica counts, not nodes, so it cannot resolve Pending Pods caused by a shortage of node capacity.

Why C is wrong: The VPA does adjust resource requests, but it is meant to right-size Pods rather than force-fit them, and it does not add the node capacity the Pending Pods actually need.

Why D is wrong: The scheduler only assigns Pods to nodes that already exist and reports failures when none fit; it does not create VMs, which is the cluster autoscaler's job.

Free sampleEnsuring the successful operation of a cloud solutionmedium

An engineer deployed a Cloud Run revision named orders-blue with --no-traffic and verified it. Live traffic still sits entirely on orders-green. They now want a canary that sends 10 percent of requests to orders-blue while orders-green keeps the remaining 90 percent. Which command achieves this split?

gcloud run services update-traffic orders <FLAGS>
  • AUse --update-traffic=orders-blue=10 because that is the documented subcommand flag for assigning a weighted percentage to a single named revision.
  • BUse --to-latest so the most recently deployed revision immediately begins receiving the standard canary share of the incoming production traffic.
  • CUse --to-revisions=orders-blue=10,orders-green=10 so both revisions are pinned and the platform normalises the two equal weights across the service.
  • DUse --to-revisions=orders-blue=10 so Cloud Run routes 10 percent to orders-blue and automatically leaves the balance on the currently serving revision orders-green. Correct
gcloud run services update-traffic --to-revisions assigns a percentage to a named revision and leaves the remainder on the serving revision. Cloud Run traffic weights are set with update-traffic. Specifying one revision at 10 with --to-revisions gives that revision a 10 percent canary share while the previously serving revision retains the rest, so no separate flag is needed to hold the other 90 percent.

Why A is wrong: Tempting as a plausible flag name, but --update-traffic is not a real flag on this subcommand; the split is expressed with --to-revisions and would fail as written.

Why B is wrong: Tempting because orders-blue is the latest revision, but --to-latest sends 100 percent to it rather than a 10 percent slice, which is a full cutover, not a canary.

Why C is wrong: Tempting because it names both revisions, but the weights must total 100; two values of 10 do not sum correctly and the command is rejected rather than normalised.

Why D is correct: Correct: naming only orders-blue=10 assigns it 10 percent, and Cloud Run keeps the remaining 90 percent on the existing serving revision, giving the intended canary split.

Free sampleEnsuring the successful operation of a cloud solutionmedium

An administrator wants a lifecycle rule to act only on objects created before 1 January 2025, regardless of their current age. Which lifecycle condition expresses this?

  • AThe age condition set to the number of days since 1 January 2025, because age measures the calendar cut-off date for the rule.
  • BThe matchesStorageClass condition set to a date value, because it filters objects by the date on which they entered their storage class.
  • CThe createdBefore condition set to 2025-01-01, because it selects objects whose creation time is earlier than the given date. Correct
  • DThe numNewerVersions condition set to the target date, because it selects objects generated before the specified calendar date.
Use the createdBefore lifecycle condition to target Cloud Storage objects by an absolute creation date rather than by age. The createdBefore condition compares each object's creation timestamp against a fixed date and matches those created earlier, which is distinct from age, that measures elapsed days per object.

Why A is wrong: The age condition counts days since each object was created, not a fixed calendar date, so it cannot pin the rule to objects made before a specific day.

Why B is wrong: matchesStorageClass filters by storage class name, not by any date, so it cannot select objects according to when they were created.

Why C is correct: createdBefore matches objects created earlier than the supplied date, so it targets exactly the pre-2025 objects independent of how old each one is now.

Why D is wrong: numNewerVersions counts how many newer noncurrent generations exist and takes an integer, not a date, so it cannot express a creation-date cut-off.

Free sampleEnsuring the successful operation of a cloud solutionmedium

An SRE team runs a fleet of Compute Engine VMs and wants to be paged when sustained CPU pressure indicates the fleet is undersized. They decide the failure condition is any instance whose CPU utilisation stays above 90 percent for 5 minutes. Which Cloud Monitoring alerting policy condition matches this requirement?

  • AA metric-absence condition on compute.googleapis.com/instance/cpu/utilization that fires when the metric stops reporting for a rolling 5 minute window.
  • BA metric-threshold condition on the instance CPU utilisation metric that fires when the value is above 0.9 for 5 minutes. Correct
  • CA log-based alerting policy that counts Cloud Logging entries containing the phrase high cpu and triggers once the count passes 90 in 5 minutes.
  • DAn uptime check against each VM that reports the instance unhealthy whenever its processor load climbs past the 90 percent mark.
A sustained numeric breach is detected by a metric-threshold condition with a comparison and a duration, not by absence, uptime, or log-count policies. Cloud Monitoring evaluates a metric-threshold condition by comparing each aligned data point against the threshold and requiring the breach to persist for the configured duration before opening an incident. CPU utilisation is reported as a fraction, so 90 percent maps to 0.9 held for 5 minutes.

Why A is wrong: Tempting because it names the right CPU metric and a 5 minute window, but metric absence alerts on missing data, not on a value staying above a threshold, so it never detects high utilisation.

Why B is correct: Correct: a threshold condition on the resource CPU metric with a comparison of above 0.9 and a 5 minute duration is exactly how Cloud Monitoring detects a sustained breach and opens an incident.

Why C is wrong: Tempting because it mentions CPU and a count, but CPU utilisation is a numeric time series, not a log entry, so a log-based policy cannot read the metric or its percentage threshold.

Why D is wrong: Tempting as a health signal, but uptime checks probe an endpoint for reachability and latency; they do not read CPU utilisation and cannot evaluate a processor threshold.

Free sampleEnsuring the successful operation of a cloud solutionmedium

A fleet of Compute Engine virtual machines has no external IP addresses, yet the operations team needs them to download operating-system patches from public repositories on the internet. Which Google Cloud service provides this outbound connectivity?

  • ACloud DNS, which resolves public hostnames to IP addresses so the private instances can locate the repositories they must reach.
  • BA custom static route with the default internet gateway as its next hop, granting the instances a usable path outward.
  • CAn external HTTP load balancer, which fronts the instances with a public address and forwards their outbound patch requests.
  • DCloud NAT, which lets instances without external IP addresses initiate outbound connections to the internet while blocking unsolicited inbound traffic. Correct
Cloud NAT provides internet egress for Compute Engine instances that have no external IP addresses. Cloud NAT is a managed egress service that applies source NAT to traffic from private instances, letting them reach public destinations while remaining unreachable from unsolicited inbound connections.

Why A is wrong: Name resolution is only part of the problem; Cloud DNS returns an address but provides no path for a machine with no external IP to actually route packets to the internet.

Why B is wrong: The default route to the internet gateway already exists, but it is only usable by instances that hold an external IP, so adding another such route changes nothing for address-less machines.

Why C is wrong: A load balancer distributes inbound client traffic to backends and does not provide instance-initiated egress, so it cannot pull patches out on the machines' behalf.

Why D is correct: Cloud NAT performs source network address translation for egress, so private instances reach public endpoints without any external IP being assigned to them.

Other domains in this exam

See also the GCP-ACE cert hub, the study guide, and the cheat sheet.

Examworthy is not affiliated with or endorsed by Google Cloud. Original, blueprint-aligned practice material only.