Cloud Deploy in Google Cloud: Shipping Software Safely, One Stage at a Time

Cloud Deploy in Google Cloud: Shipping Software Safely, One Stage at a Time

A friendly, in-depth guide to Google Cloud's managed continuous delivery service: pipelines, targets, releases, rollouts, approvals, canary strategies, automation, rollbacks, security and cost, explained from the very beginning.

Picture a bakery that makes a new cake recipe. The baker does not sell the first cake to the public. First it goes to the kitchen team for a taste, then to a small group of regular customers, and only after everyone smiles does it appear in the shop window for everybody. If the first group frowns, the recipe goes back to the baker, and the shop window never sees it. Shipping software should work the same way. Cloud Deploy is the Google Cloud service that plays the role of that careful shop manager: it moves each new version of your application through your environments, step by step, with the right checks, approvals and safety nets along the way.

1What Is Cloud Deploy?

Cloud Deploy is a managed service that automates delivering your application to a series of environments in a planned order.

When a team finishes building a new version of an application, that version still has a journey to make. It must usually be tried in a development environment, then in a testing or staging environment, and finally in production, where real customers use it. Each step has risks, and each step needs the same careful work: putting the right files in the right place, starting the new version, checking that it works and, if something goes wrong, going back to the earlier version.

Cloud Deploy takes over this journey. You describe your environments and the order in which a release should travel through them. Cloud Deploy then handles the movement, keeps a record of what is running where, lets you pause for approvals, and supports gradual strategies and rollbacks. According to Google’s documentation, it currently delivers to Google Kubernetes Engine (GKE) clusters, Cloud Run services and jobs, and GKE attached clusters, which can run in other clouds or on premises.

Simple Analogy

Think of Cloud Deploy as a railway system for your software. The tracks are your promotion sequence, the stations are your environments, the train is a release, and the signals are approvals and checks. Without the railway, every delivery is a person carrying boxes across fields by hand.

What Cloud Deploy is not

Cloud Deploy does not build your application and does not write your code. Building is the job of a continuous integration system, such as Cloud Build. Cloud Deploy begins where building ends. It takes the finished product, usually a container image, and delivers it. Keeping these two jobs separate is a deliberate design choice, and we will see why it helps in later chapters.

Managed
No delivery servers for you to run
Ordered
Releases travel a defined path of environments
Safe
Approvals, canaries and rollbacks built in
i
Names and Features Change

Cloud Deploy gains features and sometimes changes names or limits. Use this guide to learn the ideas, and confirm exact fields, limits and prices on the official pages before you build.

2Why Delivering Software Is Hard

Understanding the pain explains every feature of the service.

In a small project, delivery can be as simple as copying a file to a server. As the project grows, the simple way breaks down. There are more environments, more people, more services and more releases. Small mistakes, such as deploying the wrong version to production or forgetting a setting, have larger consequences. Teams often respond by writing long scripts and checklists, which slowly become fragile and known by only one or two people.

Pain 1

Hand-Made Scripts

Every team builds its own delivery scripts, each slightly different, each understood by few people.

Pain 2

No Clear Record

Nobody can easily say which version is running in which environment, or who approved it.

Pain 3

Risky Big-Bang Releases

Sending a new version to every user at once means a bug hurts everyone at once.

Pain 4

Slow, Scary Rollbacks

When production breaks, teams scramble to remember how to return to the previous version.

Pain 5

Inconsistent Environments

Staging and production drift apart, so tests in staging fail to predict production behavior.

Pain 6

Weak Control

Anyone with credentials can push anything anywhere, which worries security and audit teams.

Simple Analogy

Delivering by hand is like a small shop where the owner personally carries every order to every customer. It works for ten orders. For ten thousand, you need a delivery company with routes, tracking numbers and receipts.

!
Speed Without Safety Is a Trap

Teams that ship often are usually healthier, but only when each shipment is safe and reversible. The goal of a delivery service is both speed and safety together.

3Core Concepts and Vocabulary

A handful of words describe the entire service. Learn them once and the documentation becomes readable.

Term 1

Delivery Pipeline

The definition of the path a release follows, listing the environments in order. It is described in a configuration file.

Term 2

Target

One environment in the path, such as a development cluster, a staging service or a production service.

Term 3

Promotion Sequence

The ordered list of targets a release passes through, from first to last.

Term 4

Release

A specific version of your application, packaged with the rendered instructions for each target. A new release is created for each new version.

Term 5

Rollout

The act of deploying one release to one target. Each promotion to a new target creates a new rollout.

Term 6

Promotion

Moving a release forward to the next target in the sequence.

Term 7

Render

The step that prepares the final instructions for a given target by combining your source files, settings and image references.

Term 8

Skaffold

An open source tool that Cloud Deploy uses to render, deploy and verify. You keep a skaffold configuration file with your project.

Term 9

Approval

A human or system decision that must happen before a rollout to a protected target can proceed.

Term 10

Rollback

Returning a target to the last release that deployed successfully.

Term 11

Canary

A strategy that sends a new version to a small share of traffic or infrastructure first, before everybody gets it.

Term 12

Automation

Rules attached to a pipeline that promote, advance or repair rollouts without a person clicking each time.

Simple Analogy

If the pipeline is a railway line, the targets are stations, a release is a train, a rollout is one train arriving at one station, and a promotion is the signal to continue to the next station.

i
Release Versus Rollout

Beginners often mix these. A release is the version itself and is created once. A rollout is one attempt to put that release on one target, so a single release can have many rollouts over its life.

4Where Cloud Deploy Fits in the Toolchain

Continuous integration builds the product. Continuous delivery ships it. Cloud Deploy handles the second half.

Continuous integration, usually shortened to CI, means that every time a developer saves code, an automatic process builds the application and runs tests. Continuous delivery, CD, means the tested result is automatically prepared and moved through environments toward production. Google Cloud offers a set of services that fit together across both halves.

StageTypical Google Cloud ToolJob
Write and test locallyCloud Code and SkaffoldDevelop on your own machine with fast feedback
Store sourceAny source repositoryKeep code under version control
Build and testCloud BuildCompile code, run tests and create container images
Store imagesArtifact RegistryKeep versioned container images safely
DeliverCloud DeployPromote releases through environments to GKE or Cloud Run
ObserveGoogle Cloud ObservabilityWatch logs, metrics and health
flowchart LR
  A["Developer commits code"] --> B["CI build and tests"]
  B --> C["Container image in registry"]
  C --> D["Create release in Cloud Deploy"]
  D --> E["Dev target"]
  E --> F["Staging target"]
  F --> G["Production target"]
  G --> H["Observability and feedback"]
        
FIG 1 — From a code change to production

Google’s documentation stresses that any CI tool, script or system can trigger a release, and any source repository or artifact repository can be used. You are not forced to use Cloud Build for the first half, although it fits naturally.

Simple Analogy

CI is the factory that makes a product and checks its quality. Cloud Deploy is the logistics company that takes the finished product through warehouses and onto store shelves. Each does one job well, and they hand over at a clear point.

i
The Hand-Over Point

The hand-over is the creation of a release. Your build system finishes, then calls Cloud Deploy to create a release that points to the new image.

5The Delivery Pipeline and Promotion Sequence

The pipeline is the heart of the service: it says where releases go and in what order.

A delivery pipeline is defined in a configuration file written in YAML, a simple text format of names and values that people can read easily. According to the documentation, it includes a name, a description, the promotion sequence, optional labels and annotations, and optionally the definitions of the targets themselves. Targets can alternatively live in their own files. The pipeline file is kept alongside your project so that changes to delivery are reviewed like any other change.

Rules about pipelines and targets

Several pipelines may share the same target. For example, two different services might both deliver to the same shared staging cluster. But within a single pipeline, a given target can appear only once in the sequence. This keeps the path unambiguous: a release cannot loop back to a station it already visited.

1

Name the Pipeline

Choose a clear name, usually one pipeline per application or service.

2

List Targets in Order

Write the promotion sequence, for instance development, then staging, then production.

3

Define the Targets

Describe each environment, either in the same file or separate files.

4

Apply the Configuration

Register the definitions with Cloud Deploy using the command line or automation so the service knows your pipeline.

Simple Analogy

A pipeline is like a printed route map for a delivery truck. It says first stop, second stop, last stop. Another truck may share a stop with it, but a single truck never visits the same stop twice on one route.

i
Treat Delivery as Code

Keep pipeline and target files in version control and apply them through an automated process. Then every change to how you deliver software is reviewed, tracked and reversible.

6Targets: Where Your Software Lands

A target is a destination environment, and the type of target decides how deployment happens.

The documentation lists the supported runtimes as GKE clusters, Cloud Run services or jobs, and GKE attached clusters. Google’s pages also describe custom targets, which let teams deliver to other kinds of destinations through their own deployment logic. Check the current documentation for the full and latest list.

Target TypeWhat It IsGood For
GKE clusterA Kubernetes cluster managed by GoogleComplex multi-service applications and teams invested in Kubernetes
Cloud Run serviceA serverless service that runs containers and scales automaticallyWeb services and APIs without cluster management
Cloud Run jobA container that runs to completion rather than serving requestsBatch work and scheduled tasks
GKE attached clusterA Kubernetes cluster outside Google Cloud, attached to itDelivering to clusters in other clouds or on premises
Custom targetA destination you define with your own deployment stepsPlatforms the built-in types do not cover

What a target definition holds

Field

Location Details

Which cluster or Cloud Run region this target points to.

Field

Approval Setting

Whether a person or system must approve rollouts to this target.

Field

Execution Settings

Which identity and settings Cloud Deploy uses when rendering and deploying to this target.

Field

Labels and Parameters

Tags and per-target values that help organize targets and customize what is deployed.

Simple Analogy

A target is a delivery address. The type of address decides how the courier works: a house with a doorbell, an apartment lobby or a warehouse loading dock. The package is the same, but the handover differs.

i
Mixing Is Normal

Teams sometimes use Cloud Run for early environments for speed and low cost, and a GKE cluster for production. Make sure the application behaves consistently in both.

7Releases: A Version Ready to Travel

A release freezes everything needed to deploy a specific version, so that what you test is exactly what you ship.

A release is created when your CI process or a script calls Cloud Deploy. It points to the exact container images to use, the rendering source, which is the set of files describing your application, and the skaffold configuration. Cloud Deploy then renders the final instructions for each target in the pipeline and stores them. Because the rendered result is stored with the release, it does not change afterwards.

This is a quiet but powerful idea. When you promote a release from staging to production, you are not rebuilding anything. You are moving the same, already-tested bundle forward. The image that passed tests in staging is the very same image that runs in production.

1

CI Produces an Image

The build finishes and stores a uniquely identified image in a registry.

2

A Release Is Created

The build system calls Cloud Deploy, naming the pipeline, the images and the source files.

3

Rendering Happens

Cloud Deploy prepares the final instructions for each target.

4

The First Rollout Starts

The release is automatically deployed to the first target in the sequence.

5

The Release Is Promoted

When ready, it moves to the next target, creating a new rollout there.

Simple Analogy

A release is a sealed shipping container. Everything inside was packed and checked at the factory. As it travels from port to port, nobody opens it and repacks. It either arrives intact or does not arrive.

i
Use Unique Image References

Point releases to images by a unique identifier, not a moving label such as “latest”. Otherwise two deployments of the same release could run different code.

8Rollouts: One Release on One Target

A rollout is the live act of deployment, and it has a life cycle you can watch.

Every deployment of a release to a target is a rollout. The first release in a pipeline automatically creates a rollout to the first target, and every promotion afterwards creates a new rollout. A rollout moves through states such as waiting for approval, in progress, succeeded or failed. Behind the scenes Cloud Deploy uses Cloud Build to run the deployment step in the same region as your pipeline.

stateDiagram-v2
  [*] --> PendingApproval: target needs approval
  [*] --> InProgress: no approval needed
  PendingApproval --> InProgress: approved
  PendingApproval --> Rejected: rejected
  InProgress --> Succeeded: deployment healthy
  InProgress --> Failed: deployment error
  Failed --> InProgress: retry
  Succeeded --> [*]
  Rejected --> [*]
        
FIG 2 — A simplified view of rollout states

What you can do with a rollout

Action

Watch

See the status and logs in the console or command line.

Action

Approve or Reject

For protected targets, authorized people decide whether it may proceed.

Action

Advance

For canary rollouts, move on to the next phase when you are satisfied.

Action

Cancel or Retry

Stop a rollout that should not continue, or try a failed one again.

Simple Analogy

If a release is a train, a rollout is that train’s arrival at one particular station: the doors opening, passengers stepping out, the stationmaster confirming everything is in order.

i
History Is Kept

Each rollout is recorded. Later you can answer questions such as when version 42 reached production and who approved it.

9Skaffold and Rendering Explained

Skaffold is the engine under the hood, and rendering is how one set of files becomes many environment-specific instructions.

Skaffold is an open source command line tool originally designed to speed up development for container applications. Cloud Deploy uses it for three jobs: rendering, deploying and verifying. You keep a skaffold configuration file with your project, and Cloud Deploy runs Skaffold through Cloud Build when needed.

Rendering means producing the final deployment instructions for each target. Your application usually has common instructions, such as which container to run, along with differences per environment, such as how many copies to run or which database to connect to. The render step combines the common files, the per-target differences and the exact image references into a finished set for each target. Render events can send notifications so tools or people know when rendering started and whether it succeeded.

Skaffold JobWhat HappensWhy It Matters
RenderBuilds final manifests for a target from source files and image referencesGuarantees each environment gets the correct, complete instructions
DeployApplies the rendered result to the targetPerforms the actual change in the environment
VerifyRuns checks after deploymentConfirms the new version behaves as expected
Simple Analogy

Rendering is like printing a personalized letter from a template. The template is the same for everyone, but the name and address change for each recipient. Skaffold is the printing press that fills in the blanks correctly every time.

i
Same Tool Locally and in the Cloud

Because developers can use Skaffold on their own machines, they can test how an application renders and deploys before it ever reaches the shared pipeline.

10The Life of a Release, End to End

Putting every concept together in a single story.

sequenceDiagram
  participant Dev as Developer
  participant CI as CI build
  participant CD as Cloud Deploy
  participant T1 as Staging target
  participant Appr as Approver
  participant T2 as Production target
  Dev->>CI: Push a code change
  CI->>CD: Create release with image
  CD->>CD: Render for every target
  CD->>T1: Rollout to staging
  T1-->>CD: Deployment succeeded
  CD->>Appr: Production needs approval
  Appr-->>CD: Approved
  CD->>T2: Rollout to production
  T2-->>CD: Deployment succeeded
        
FIG 3 — A release travelling from staging to production
1

Code Changes

A developer pushes a change and the CI build produces a tested image.

2

Release Created

CI asks Cloud Deploy to create a release referencing the image.

3

First Rollout

Cloud Deploy deploys to the first target automatically.

4

Checks and Testing

Automated checks, and people if needed, confirm the release behaves well.

5

Promotion with Approval

The release moves forward, pausing for approval where configured.

6

Production and Beyond

The release reaches production, where observability tools confirm real-world health. If problems appear, a rollback restores the earlier version.

Simple Analogy

It is a relay race. The runner from CI hands the baton to Cloud Deploy, who carries it from checkpoint to checkpoint, stopping when a judge needs to inspect it, and finally crossing the finish line in production.

11Approvals: A Human Gate Before Production

Some changes deserve a second pair of eyes, and approvals build that pause into the pipeline.

You can require approval for any target by setting a flag in the target definition. When a rollout to that target is ready, Cloud Deploy does not start it. Instead it waits, and publishes a message through Pub/Sub, a messaging service, announcing that approval is required. A connected system, such as a ticketing tool or a chat bot, can pick up that message and start its own approval workflow. A person with the right permission then approves or rejects the rollout.

Benefits of Approvals

  • Clear accountability for who allowed what
  • A place to check change tickets, freeze periods or business timing
  • Fits audit and compliance requirements
  • Prevents accidental production releases

Costs of Approvals

  • Adds waiting time to every release
  • Can become a rubber stamp if approvers do not look
  • Needs clear ownership and cover for absences
  • Too many gates slow teams and encourage workarounds

Approval is also a permission

The right to approve is controlled by access rules, just like other actions. A common good practice is to separate roles: the person or system that creates releases should not be the only one who can approve them for production. This is called separation of duties.

Simple Analogy

Approval is like the two-key system for a safe. One key holder prepares the delivery. The other confirms the moment is right. Neither can open the safe alone.

!
Approve with Evidence

Give approvers useful information, such as test results and the list of changes. An approval that takes two seconds and shows no evidence is theater, not control.

12Promotion and Notifications

Promotion moves releases forward, and notifications keep everybody informed along the way.

Promoting a release deploys it to the next target in the sequence, which creates a new rollout. You can promote through the console, the command line or automatically using automation rules, which we will explore soon. Promotion is the heart of the “ship through stages” idea.

Cloud Deploy also publishes notifications through Pub/Sub for important events. According to the documentation, these cover rendering and deployment starting, succeeding and failing, along with approvals being required, granted or rejected. Other systems can subscribe to these messages to post to a team chat, open a ticket, update a dashboard or trigger a further process.

Event

Render Events

Tell you when the preparation of manifests starts and whether it worked.

Event

Deployment Events

Announce when a rollout begins, succeeds or fails.

Event

Approval Events

Announce when an approval is needed, given or refused.

Simple Analogy

Notifications are the station announcements and the delivery text messages. “Your parcel left the depot.” “Your parcel needs a signature.” Nobody must keep staring at the tracking page.

i
Send Failures to People

Route failed deployment and approval-needed messages to a channel someone actually watches. Silent failures are the most expensive kind.

13Deployment Strategy: Standard

The standard strategy is the simplest: deploy the new version in one step.

With a standard deployment, Cloud Deploy puts the new version on the target in a single step, with no gradual traffic shift between old and new versions. Rollback, verification and multi-target deployment are all supported. For many development and test environments, this simplicity is exactly right. Nobody minds if a test environment is briefly unstable, and speed matters more than caution.

Good Fit: Development and Staging

Fast feedback is more important than gradual exposure, because no real customers are affected.

Good Fit: Low-Risk Internal Tools

A small internal application with few users can be safely updated in one step.

Think Twice: Customer-Facing Production

When a bug would hurt many customers at once, a gradual approach such as canary is usually wiser.

Simple Analogy

A standard deployment is like swapping the sign above a shop door overnight. Quick and simple, and fine if a mistake only means a few people see a typo. For a main storefront, you might want a more careful method.

i
Standard Still Has Safety

Even with the standard strategy, you keep rollback ability, history and optional verification. It is simple, not reckless.

14Deployment Strategy: Canary and Progressive Rollouts

A canary sends the new version to a few users first, so problems are found while they are still small.

The name comes from the old practice of miners carrying a canary bird into a mine: if the air turned bad, the small bird showed it first, and the miners had time to leave. In software, the “canary” is a small share of your traffic or infrastructure running the new version. If it behaves, you gradually increase the share. If it misbehaves, only a few users were affected and you pull back.

In Cloud Deploy, a canary rollout moves through canary phases before reaching the final stable phase. According to the documentation, a typical example for Cloud Run is a 50 percent canary, where half of the traffic goes to the new revision and half to the old one, followed by advancing to 100 percent. Percentages must be whole numbers. Canary needs an existing version for comparison, so on the very first deployment to a target, Cloud Deploy may skip the canary phases and go straight to stable.

flowchart LR
  A["Old version serves all traffic"] --> B["Canary phase 10 percent new"]
  B --> C{"Healthy"}
  C -->|"Yes"| D["Canary phase 50 percent new"]
  D --> E{"Healthy"}
  E -->|"Yes"| F["Stable phase 100 percent new"]
  C -->|"No"| G["Roll back to old version"]
  E -->|"No"| G
        
FIG 4 — A canary with two checkpoints before the stable phase

How traffic splitting is done

The mechanism depends on the runtime. On Cloud Run, traffic is divided between revisions. On GKE, Google’s documentation describes approaches that use Kubernetes service networking or the Gateway API. Because the details are specific to each setup, read the current canary guide for your runtime before configuring it.

Planning a good canary

A successful canary is planned before it starts. First, choose the signals that show health, such as the share of requests that fail, how long responses take and any business measure that matters, like completed purchases. Second, choose how long each phase should last. A phase that is too short may end before rare problems appear, while a phase that is too long slows every release. Third, decide what happens on failure: who is alerted, whether an automatic rollback should occur and how the team learns from it afterwards.

It also helps to think about who sees the canary. If the new version receives a random slice of traffic, the same user may see old and new behavior on consecutive requests, which can be confusing if the two versions differ visibly. For changes that affect what users see, teams sometimes combine canaries with feature switches, which are settings inside the application that turn new behavior on for chosen groups. The delivery service controls which code is running, and the feature switch controls who sees the new behavior.

Simple Analogy

A canary release is like a restaurant testing a new dish on one table before adding it to the menu. If the guests at that table smile, the dish goes to more tables. If they push the plate away, the kitchen changes course and nobody else is disappointed.

!
A Canary Needs Eyes

A canary only helps if someone or something watches the results. Decide in advance which signals, such as error rate and response time, mean “healthy”, and wire them to alerts.

15Rollbacks: The Safety Net

Every release plan should include a way back.

You can roll back on any target. According to the documentation, a rollback creates a new rollout of the last successfully deployed release, using the same parameters that were used for that earlier deployment. Notice that a rollback is itself a recorded rollout, so your history stays complete and honest: it shows the bad release, the decision and the return.

Rollbacks are quick because the earlier release is already rendered and stored. Nothing needs to be rebuilt. The risk is not in the mechanics, but in what has changed outside the application, such as database structure changes that the old version cannot understand. A safe release plan always asks whether the previous version can still run against the current data.

SituationRollback Safe?Reason
Bug in application logic onlyUsually yesOld release works with the same data
New column added to a database, still unused by old codeUsually yesOld code ignores the extra column
Column removed or renamedNoOld code expects the missing column and fails
Data converted to a new formatRiskyOld code may not understand the new format
Simple Analogy

A rollback is the undo button, and it works well for changes inside the document. But if you also reorganized the filing cabinet, pressing undo does not put the papers back where the old index says they are.

i
Make Changes Backward Compatible

Add new things first, switch to them later, and remove old things last, across several releases. This keeps rollback available at every step.

16Parallel and Multi-Target Deployment

Real products often run in many places at once, and the service can deploy to several at the same time.

Imagine a global application that runs in clusters in several regions. Deploying to each region one by one, by hand, would be slow and error-prone. The documentation describes parallel deployment: one stage of the pipeline can deploy to multiple targets at the same time, and this works with every deployment strategy. In practice, a team defines a parent target that groups child targets, and a single rollout fans out to the children.

flowchart TD
  R["Release approved for production"] --> P["Production group target"]
  P --> A["Region A cluster"]
  P --> B["Region B cluster"]
  P --> C["Region C cluster"]
        
FIG 5 — One rollout fanning out to several regional targets

Parallel deployment also affects how you think about failure. If one regional target fails while the others succeed, you have a partial rollout, and the team must decide whether to retry the failed region, roll it back or pause everything. Writing this decision down in advance, as a short runbook, turns a stressful improvisation into a calm checklist.

Why it helps

Benefit

Speed

All regions receive the release together instead of waiting in line.

Benefit

Consistency

One decision, one release, one record, so all regions run the same version.

Benefit

Simplicity

One approval can cover a whole group of destinations.

The trade-off is blast radius. Releasing to all regions together means that a hidden bug reaches all regions together. Many teams therefore deploy first to one pilot region and only then to the rest, using separate stages. Pricing also considers multi-target pipelines, as discussed in the cost chapter.

Simple Analogy

Parallel deployment is like a chain restaurant introducing a new menu in all branches on the same day. It is efficient and consistent, but if the recipe is flawed, every branch hears about it on day one.

17Automation: Letting the Pipeline Move Itself

Automation rules remove repetitive clicking while keeping control where it matters.

An Automation is a resource attached to a delivery pipeline. It selects one or more targets and holds rules describing what should happen automatically. Each time a rule fires, a record called an automation run is created. You can suspend an automation without deleting it, and a pipeline can hold a large number of rules, documented as up to 250.

Rule

Promote Release

After a successful rollout to the source target, automatically promote to the next target or a specific one, with an optional waiting time.

Rule

Timed Promotion

Promote according to a schedule, for example during a quiet maintenance window.

Rule

Advance Rollout

For canary rollouts, move from one phase to the next after a chosen wait time.

Rule

Repair Rollout

After a failed rollout, retry a set number of times, and if all attempts fail, roll back to the most recent successful release.

How an automation is organized

Think of an automation as a small rulebook with a clear subject. It names the targets it watches, called selectors, and then lists rules. When a rollout on a watched target reaches a certain state, the matching rule acts. For example, “after a successful rollout to staging, wait thirty minutes, then promote to the production pilot”. Every action leaves a record, so you can read exactly why the pipeline moved. Platform logs are still produced when an automation is suspended, which lets you test a new rule safely before it is allowed to act.

Waiting times are an underrated feature. A short wait after a successful staging rollout gives monitoring a chance to reveal slow-burning problems. A longer wait between canary phases gives rare errors time to show up. Choosing these waits is a business decision about how much patience you can afford, and they are easy to adjust as you learn.

Combining rules wisely

A common arrangement uses automatic promotion between development and staging, where speed matters, but keeps manual approval for production. A repair rule on production gives a safety net: if a deployment fails, it retries a couple of times and then returns to the last good version without waking anyone at night.

Simple Analogy

Automation is like cruise control on a car. It keeps a steady pace on the open road, but you still steer, and you can take over the pedals the moment anything unusual appears.

!
Permissions Apply

Each rule may need extra permissions beyond the basic automation permissions. Check the automation rule documentation for exactly what each rule requires.

18Verification and Deploy Hooks

Deploying is not the same as working. Verification checks that the new version is actually healthy.

A deployment can succeed technically, meaning the files were applied and the processes started, while the application itself is broken. Maybe it cannot reach its database, or it answers every request with an error. Verification adds an automatic check after deployment. Cloud Deploy supports verification through Skaffold, where you define a test, often a container that runs a few requests against the new version and reports whether they passed. If verification fails, the rollout is marked as failed and the failure can trigger your repair rules.

Cloud Deploy also supports hooks, which are extra steps that run before or after a deployment. A pre-deployment hook might prepare something, such as announcing a maintenance window. A post-deployment hook might run a cleanup or notify another system. Exact capabilities and configuration vary, so read the current documentation on verification and hooks before relying on them.

Check TypeExampleWhen It Runs
Smoke testRequest the home page and the health endpointRight after deployment
Integration testCreate and read a sample record through the new versionAfter deployment to staging
Pre-deployment hookConfirm that required settings existBefore the new version is applied
Post-deployment hookSend a message to the support teamAfter a successful deployment
Simple Analogy

Deploying without verification is like installing a new lift and walking away as soon as the last bolt is tightened. Verification is the engineer who presses every button, rides to every floor and only then signs the certificate.

i
Keep Checks Fast and Honest

A good verification step takes seconds to a few minutes and tests what customers truly depend on. Tests that always pass teach nothing, and tests that take an hour will be skipped.

19Environment Differences and Deploy Parameters

Staging and production should be alike, but never identical, and the differences must be managed carefully.

Every environment needs some different values. Production might run ten copies of a service while development runs one. The address of the database differs. The log detail level differs. If you copy whole files and edit them by hand for each environment, the files drift apart and mistakes creep in. Cloud Deploy supports passing parameters into the rendering step so that one shared description can produce environment-specific results. The documentation describes deploy parameters that can be attached at the pipeline, target or release level; confirm the current rules about where each can be used.

1

Keep a Shared Base

Write one description of the application used by all environments.

2

Add Small Overlays

For each environment, keep only the values that truly differ, such as copy count or addresses.

3

Pass Parameters at Delivery Time

Supply values through the target or the release so that they appear in the rendered result.

4

Review the Rendered Output

Inspect what will actually be applied to each environment before approving production.

Simple Analogy

A franchise uses the same recipe book in every branch but lets each branch set its own opening hours and local supplier. The base recipe is shared, and the small local settings are written on a separate sticker.

!
Never Put Secrets in Parameters

Passwords and keys do not belong in pipeline files or release parameters, because many people can read them. Store secrets in a dedicated secret service and give the application permission to read them at run time.

20Custom Targets and Extending the Service

When the built-in destinations do not fit, you can describe your own.

Not every organization runs on Google Kubernetes Engine or Cloud Run. Some deliver to virtual machines, to other cloud platforms, to internal systems or to special hardware. Google’s documentation describes custom targets, in which you provide the rendering and deployment logic yourself, often as containers that Cloud Deploy runs, and the service continues to supply the pipeline structure, promotion, approvals, history and automation around it.

The attraction is that you keep a single, consistent delivery process, even though the destinations differ. The cost is that you now own the code that does the deployment, including its testing and maintenance. Use custom targets only when no built-in target can meet your needs, and read the current documentation to learn what is supported.

Why Use a Custom Target

  • One delivery process across very different platforms
  • Approvals, history and automation come along for free
  • Teams migrate gradually without changing their process

What It Costs

  • You must write, test and maintain the deployment logic
  • Fewer built-in conveniences than first-class targets
  • Extra care needed for permissions and error handling
Simple Analogy

A courier company normally delivers to houses and offices. For a remote island, you hire a boat owner to do the last mile. The company’s tracking and receipts still work, but the boat is your responsibility.

21Identity and Access Management

Delivery tools have the keys to production, so who can do what must be planned carefully.

Google Cloud controls access through Identity and Access Management, called IAM. In Cloud Deploy, different actions need different permissions: creating pipelines and targets, creating releases, approving rollouts, promoting, and managing automations. The service also uses a service account, which is a non-human identity, to render and deploy. That identity needs permission to act on the target environment, such as updating a Cloud Run service or a cluster.

Person or SystemShould Be Able ToShould Not Be Able To
CI systemCreate releases in the pipelineApprove production or edit targets
DevelopersView pipelines, releases and rolloutsDeploy directly to production outside the pipeline
Release managersPromote and approve production rolloutsChange the build system
Platform teamDefine pipelines, targets and automationsApprove their own release changes alone
Deployment identityUpdate only the environments it servesAccess unrelated projects or data

Principles to follow

Rule

Least Privilege

Grant the smallest role that does the job, and no more.

Rule

Separate Identities per Environment

Use a different deployment identity for production than for development, so a development mistake cannot touch production.

Rule

Separation of Duties

The one who creates a release should not be the only one who approves it for production.

Rule

No Shared Personal Accounts

Use named people and service accounts so the audit record means something.

Simple Analogy

Think of a warehouse. The driver can deliver parcels to the dock, the manager signs for valuable ones, and the cleaner has a key to the corridor only. No single key opens every door.

i
Check Current Role Names

Predefined roles and permission names can evolve. Review the official access control page when designing your roles, and prefer predefined roles over powerful general ones.

22Software Supply Chain Security

A delivery pipeline is a favorite target for attackers, because whatever it ships runs with trust.

If an attacker slips a malicious image into your pipeline, the pipeline itself will deliver it all the way to production. Protecting the supply chain means making sure that only trusted, verified software travels through. Several Google Cloud capabilities relate to this, including vulnerability scanning of images in the registry and policy tools that can require images to be signed or attested before deployment. Cloud Deploy fits into this picture because releases refer to specific image identifiers and because it records what was deployed. The exact integrations and their availability change, so confirm the current documentation for features such as attestation checks.

1

Build in a Trusted Place

Use a controlled build service so images are not created on personal laptops.

2

Scan for Known Weaknesses

Check images for known vulnerabilities and set limits on what severity is acceptable.

3

Sign or Attest

Record that an image passed the required checks, in a way that cannot be forged easily.

4

Enforce at Deployment

Allow only images that carry the proof of passing, and refuse everything else.

5

Keep the Record

Retain audit trails of who deployed what, so you can investigate quickly.

Simple Analogy

It is like food safety. Ingredients are inspected on arrival, the kitchen is checked, packages carry sealed labels, and the shop refuses unlabeled boxes. Safety comes from checks at every step, not one inspection at the door.

!
The Pipeline Is Privileged

Protect the pipeline definitions, build configuration and deployment identities as carefully as production itself. Whoever controls them effectively controls production.

23Observability, Logs and Audit

You cannot manage what you cannot see, and delivery produces useful signals at every step.

Cloud Deploy collects metrics and audit details throughout pipeline execution. Logs from rendering and deployment are available through Google Cloud’s logging service, audit logs record who did what, and Pub/Sub notifications announce key events. Combined with application metrics from your running services, these signals answer the questions that matter during and after a release.

Signal

Delivery Logs

Show what rendering and deployment did, and why a step failed.

Signal

Audit Logs

Show who created releases, approved rollouts and changed configuration.

Signal

Notifications

Push important events to chat, tickets or dashboards.

Signal

Application Health

Error rates and response times of the new version show whether the release is good for users.

Making signals useful to people

Raw logs are rarely read in the middle of an incident. What people need is a short, clear story: which release, which target, which stage, what changed and what the current state is. Teams often build a simple dashboard or chat summary fed by delivery notifications, showing the latest release in each environment, any rollout waiting for approval and any recent failures. A new team member can then understand the state of delivery within a minute, without learning the whole system first.

Alerts deserve the same care. An alert should tell the receiver what happened, why it matters and what to do first. Alerts that fire constantly teach people to ignore them, so tune them to the few conditions that truly need a human, such as a production rollout failing, a canary showing rising errors or an approval waiting too long.

Useful delivery measures

Many organizations track a few simple measures of delivery health, popularized by research on high-performing teams. Deployment frequency shows how often you ship. Lead time shows how long a change takes from commit to production. Change failure rate shows how often releases cause problems. Time to restore shows how fast you recover. Delivery records from Cloud Deploy supply raw material for these numbers.

Simple Analogy

The logs are the flight recorder, the notifications are the cockpit alarms, and the application metrics are the passengers’ comfort. A good flight needs all three.

i
Link Releases to Dashboards

Mark release times on your monitoring graphs. When a graph changes shape, you can instantly see whether a release happened just before.

24Pricing and Cost Awareness

The service itself is priced simply, and the supporting services are where most costs hide.

According to the pricing page, the unit of billing is an active delivery pipeline. A pipeline counts as active in a billing month if at least one release or rollout was created for it. The first active multi-target pipeline in a billing account is free. Each additional active multi-target pipeline was listed at five US dollars per month. Single-target pipelines, which use exactly one target, are not charged. Pricing is tied to the pipeline name, so deleting a pipeline and creating another with the same name counts as one pipeline.

Cloud Deploy also relies on other services that are billed separately. Cloud Build runs the render and deploy steps. Cloud Storage holds the rendered files in a bucket in the same region as the pipeline. Audit logging and the logging service store records. Always confirm current numbers on the official pricing page, since prices and free allowances can change.

Cost ItemBilled ByWhat Drives It
Active multi-target pipelinesCloud DeployNumber of pipelines with releases or rollouts in the month
Render and deploy workCloud BuildAmount and length of render and deploy steps
Rendered filesCloud StorageNumber and size of releases kept
Logs and audit recordsLogging servicesVolume of logs you keep
The deployed workloadsGKE, Cloud Run and othersThe environments you deliver to, often the largest cost

Ways to keep costs sensible

1

One Pipeline per Application

Avoid creating many near-identical pipelines when one with several stages would do.

2

Retire Unused Pipelines

Inactive pipelines are not billed, but they still add clutter and security surface.

3

Trim Old Releases and Logs

Apply sensible retention to stored files and logs.

4

Shut Down Idle Environments

Temporary test environments can be removed or scaled down after use.

Simple Analogy

Cloud Deploy’s fee is like the booking fee on a courier route, small and predictable. The real expense is the trucks, the warehouses and the fuel, which are the environments you deliver to.

i
Use the Official Calculator

Estimate your bill with Google’s pricing calculator and review your billing reports after the first month, because real usage often differs from plans.

25A Reference Architecture

A typical, sensible setup that many teams can adopt and adjust.

In this arrangement, developers push code to a repository. A trigger starts a build that tests the code, creates a container image, scans it and stores it in a registry. The build then creates a release in Cloud Deploy. The release deploys to a development target automatically, then is promoted to staging with checks, and then, after human approval, to production using a canary strategy. Notifications go to a team chat, and monitoring watches the canary.

flowchart TD
  A["Source repository"] --> B["Build and test"]
  B --> C["Scan and store image"]
  C --> D["Create release"]
  D --> E["Dev target auto deploy"]
  E --> F["Staging target with verification"]
  F --> G["Approval gate"]
  G --> H["Production canary phases"]
  H --> I["Production stable"]
  D -.-> N["Notifications to chat and tickets"]
  H -.-> M["Monitoring and alerts"]
  M -.-> R["Repair or rollback"]
        
FIG 6 — A reference delivery architecture

Walking through a normal day

On an ordinary morning a developer merges a small fix. Within minutes the build finishes and a release appears in the pipeline. It lands on the development target without anyone touching a button. The team lead sees the staging rollout succeed and verification pass, so she approves the production rollout before lunch. The canary starts at a small share of traffic, a dashboard shows normal error rates, and the automation advances the phases while the team eats. By the afternoon the release is stable in production, and nobody had to remember a single command. That quiet, repeatable rhythm is the real product Cloud Deploy gives a team.

On a bad day the same rhythm protects you. Suppose the canary shows rising errors. The monitoring alert fires, the rollout is stopped or rolled back, and only a small share of users ever saw the problem. The rollout history records exactly what happened, and the team fixes the bug in a new release that goes through the same steps. Nobody has to improvise under stress, because the path was already built.

Choices inside the architecture

Choice

Projects

Many teams place the pipeline in a shared delivery project and keep each environment in its own project for strong separation.

Choice

Regions

Keep the pipeline in a region that suits your teams, and note that rendering and storage use the pipeline’s region.

Choice

Triggers

Create releases automatically from the build for every successful change, or only for tagged versions if you prefer controlled cadence.

Choice

Approval Points

Place gates before production, and perhaps before regulated environments, but not everywhere.

Simple Analogy

The architecture is an airport. Check-in is the build, security is the scan, the gate is the approval, and the runway is production. Passengers move smoothly because each area has one clear job.

26Designing Your Environments

The number and shape of your stages is a design decision with real trade-offs.

More stages mean more safety but more time and cost. Fewer stages mean speed but less protection. A good starting point for many teams is three: development, staging and production. Development accepts every change automatically and exists for quick feedback. Staging closely resembles production and runs deeper checks. Production receives only releases that passed staging, often through approval and a canary.

StagePurposeStrategyApproval
DevelopmentFast feedback for developersStandardNone
StagingRealistic testing and verificationStandard with verificationNone or light
Production pilotSmall real-world exposureCanaryRequired
Production fullEveryone receives the releaseCanary advancing to stableOften automated after healthy pilot

Thinking about teams and ownership

Environments also reflect how people are organized. In a small company, one team often owns the whole path from code to production, and a single pipeline with three stages is perfect. In a larger company, a platform team may own the targets and the rules for production, while product teams own their own releases and the early stages. This division works well when it is written down clearly: the platform team decides what protections production requires, and product teams decide how often and how fast they ship within those protections.

Be careful with shared environments. When many pipelines deliver to the same staging cluster, one team’s broken release can disturb everyone else’s tests. Teams often solve this by giving each service its own namespace or its own small environment, or by scheduling heavy tests carefully. The point is that environment design is partly a technical question and partly a question about how people work together, and both deserve attention.

Keeping staging honest

Staging is only valuable if it resembles production. Use the same kind of runtime, the same configuration structure and similar data shape and volume, as far as cost and privacy allow. A staging environment that is much simpler than production will happily approve releases that then fail for real customers.

Simple Analogy

Staging is a dress rehearsal. If the rehearsal is held in a different theater with no lights and no audience, it tells you little about opening night.

i
Start Small, Add Stages When You Need Them

Begin with the simplest sequence that protects production. Add stages when incidents or compliance needs show a real gap.

27Real-World Scenarios

Stories show how the pieces work together in daily life.

Scenario 1: Small Team with Cloud Run

A team of five runs a web API on Cloud Run. Every merged change builds an image and creates a release. It deploys automatically to development and, after a smoke test, to staging. A team lead approves production, which uses a 50 percent canary and then advances to full traffic. One simple pipeline replaced a folder of scripts nobody dared to touch.

Scenario 2: Many Microservices on GKE

A company has forty services. Each has its own pipeline following a common template maintained by the platform team. Teams control their own releases, while the platform team controls the targets and approval rules. Consistency across services makes support and audits far easier.

Scenario 3: Regulated Industry

A financial firm requires change tickets for production. A connected ticketing system listens to approval-needed notifications, opens a ticket and approves the rollout only after the ticket is authorized. Audit logs plus the rollout history satisfy the auditor’s questions about who approved what and when.

Scenario 4: Global Application

A consumer app runs in several regions. A pilot region receives each release first. After a healthy period, an automation promotes the release to a group target containing the remaining regions, which deploy in parallel.

Scenario 5: Nightly Batch Jobs

A data team delivers Cloud Run jobs through a pipeline so that job versions are tracked and tested before the nightly run, with timed promotion to production after business hours.

Scenario 6: Hybrid Environment

An organization keeps some clusters on premises for data reasons. Those clusters are attached to Google Cloud and used as targets, so the same pipeline and approvals serve both cloud and on-premises environments.

Simple Analogy

All these stories use the same railway with different timetables. Small towns run a few trains, big cities run many, and cargo lines add checks, but the tracks and signals are the same.

28Cloud Deploy Compared with Other Approaches

There is more than one way to deliver software, and each has its place.

ApproachStrengthWeaknessBest For
Cloud DeployManaged pipelines, promotion, approvals, canary, history and rollback in one serviceFocused on supported runtimes and its own modelTeams delivering to GKE and Cloud Run who want a managed, auditable process
Scripts inside the CI toolFast to start, familiarHard to audit, inconsistent, tangled with buildingVery small projects and prototypes
Git-based continuous reconciliation toolsEnvironment state lives in a repository and is continuously enforcedYou operate the tool and design promotion yourselfKubernetes-focused teams who want repository-driven control
Manual deploymentNo tooling neededSlow, error-prone, unrecordedNothing that matters

These approaches are not enemies. Some organizations use a repository-driven tool inside clusters and still use a managed delivery service to orchestrate the promotion of releases between environments. Choose based on where your team’s strengths lie and which platforms you deliver to, and evaluate with a small pilot before committing.

The best delivery process is the one that makes shipping boring: the same steps, the same checks, every single time.
Simple Analogy

Choosing among them is like choosing between your own van, a hired courier company and a freight railway. The van is quickest to start, the courier is convenient and tracked, and the railway shines for big, regular loads. Match the vehicle to the load.

i
Pilot First

Deliver one low-risk service through each candidate approach and compare effort, visibility and safety before choosing for the whole company.

29Key Design Decisions

Architects write down significant choices so that later teams understand the reasons.

ADR-1 Accepted
Separate building from delivering

Let the CI system build and test, and let Cloud Deploy handle promotion through environments.

Reason: each tool does one job well, and the same tested image moves through every stage. Trade-off: two systems to learn and connect.

ADR-2 Accepted
Promote the same release, never rebuild per environment

Build once, reference images by unique identifier and promote the same release through every target.

Reason: what was tested is exactly what ships. Trade-off: configuration differences must be handled through parameters, not by rebuilding.

ADR-3 Accepted
Canary for customer-facing production

Use a canary strategy with health-based advancement for production services.

Reason: limits the damage of a bad release. Trade-off: slower releases and the need for good monitoring.

ADR-4 Accepted
Automate early stages, gate production

Promote automatically through development and staging, and require approval before production.

Reason: speed where risk is low and control where risk is high. Trade-off: production waits for a human, so cover for absences is needed.

ADR-5 Accepted
Separate environments into separate projects

Keep production in its own project with its own deployment identity.

Reason: stronger isolation and clearer permissions. Trade-off: more projects to manage and more cross-project permissions to configure.

Simple Analogy

A decision record is a ship’s log. Years later, a new captain reads why the ship changed course and avoids sailing back to the same rocks.

30Common Mistakes and Anti-Patterns

Learning from the mistakes of others is the cheapest education.

Healthy Habits

  • Build once and promote the same release
  • Reference images by unique identifier
  • Keep pipeline files in version control
  • Verify after deployment and watch canaries
  • Rehearse rollbacks before you need them

Risky Habits

  • Rebuilding a different image for each environment
  • Using moving labels such as “latest”
  • Giving everyone permission to deploy to production
  • Approving without looking at evidence
  • Putting secrets into pipeline files

Five classic traps in detail

Trap 1

Staging That Does Not Resemble Production

Releases pass staging easily, then fail in production because of missing data volume, different settings or simpler infrastructure.

Trap 2

Canary Without Metrics

A canary phase that nobody watches is just a slow deployment. Define healthy signals and alerts first.

Trap 3

Rollback Blocked by Data Changes

The new version changes the database in a way the old version cannot read, so going back is impossible.

Trap 4

Approval Fatigue

Too many approvals turn into automatic clicking, and people stop reading. Keep gates few and meaningful.

Trap 5

Over-Broad Deployment Identity

One powerful identity deploys everywhere, so a single compromise or mistake reaches all environments.

Simple Analogy

These traps are loose floorboards in a house. Each one looks harmless until someone carries something heavy across it.

31Troubleshooting Guide

When something fails, work calmly from the simplest cause to the hardest.

SymptomLikely CauseWhat To Try
Release creation failsMissing permission, wrong pipeline name or invalid configuration fileCheck the error message, the identity used by the build, and the pipeline name and region
Render failsMistake in source files, bad image reference or missing skaffold configurationRender the same files locally with Skaffold and read the logs
Deployment fails with permission errorsDeployment identity cannot update the targetGrant the narrow role needed on the target environment
Rollout waits foreverApproval required but nobody was notifiedCheck notification routing and who holds the approver role
Canary does not advanceWaiting for manual advance or automation rule not matchingReview the automation selector and wait time, and the current phase
Rollback failsEarlier release incompatible with current data or settingsFix forward with a new release, and plan backward-compatible changes in future
Unexpected billMany active multi-target pipelines or heavy build and logging useReview pipelines, retention and billing reports by service
Wrong version runningMoving image label or manual changes outside the pipelineUse unique image identifiers and restrict direct changes

A calm method

1

Find the Stage That Failed

Was it release creation, rendering, approval or deployment? Each has different causes.

2

Read the Logs

The logs usually name the cause plainly, such as a missing permission or a bad reference.

3

Reproduce Locally

Rendering the same files on your machine isolates the problem quickly.

4

Change One Thing at a Time

Fix a single suspect, retry and compare, so you know what helped.

Simple Analogy

Troubleshooting is tracing a lost parcel. You check each scanning point in order, find where the trail stops, and then ask what happened at that exact point.

32Best Practices Checklist

A short list to review before every important launch.

Design

Build Once, Promote Everywhere

Use one immutable release per version and never rebuild per environment.

Design

Keep Environments Alike

Make staging resemble production in runtime, settings and data shape.

Design

Start with Three Stages

Development, staging and production are enough for many teams. Add more only for a clear reason.

Safety

Use Canary for Critical Services

Expose a small share first and define healthy signals in advance.

Safety

Verify Automatically

Run quick smoke tests after every deployment, and fail the rollout when they fail.

Safety

Rehearse Rollbacks

Practice returning to the previous release in staging, and make database changes backward compatible.

Control

Least Privilege and Separate Duties

Give each identity only what it needs, and separate release creation from production approval.

Control

Delivery as Code

Keep pipeline and target definitions in version control with reviews.

Operate

Notify the Right People

Send approval-needed and failure messages to channels that people watch.

Operate

Track Delivery Health

Measure frequency, lead time, failure rate and recovery time, and improve steadily.

Operate

Follow Product Updates

Read release notes so changes in features, limits and prices never surprise you.

Simple Analogy

A pilot walks through the same checklist before every flight, however experienced. The list does not express doubt. It expresses respect for what could go wrong.

33Frequently Asked Questions

Quick answers to the questions beginners ask most often.

Q1Is Cloud Deploy the same as Cloud Build?

No. Cloud Build is a build and CI service that compiles code, runs tests and creates images. Cloud Deploy delivers finished releases through environments. They work together: Cloud Build usually creates the release, and Cloud Deploy promotes it. Cloud Deploy also uses Cloud Build behind the scenes to run render and deploy steps.

Q2Which platforms can Cloud Deploy deliver to?

The documentation lists GKE clusters, Cloud Run services and jobs, and GKE attached clusters, plus custom targets for other destinations. Because supported platforms expand over time, confirm the current list in the official documentation.

Q3What is the difference between a release and a rollout?

A release is a specific version of your application with its rendered instructions, created once. A rollout is one deployment of that release to one target. One release can create many rollouts as it is promoted and sometimes retried.

Q4Do I need to know Skaffold?

You need a basic skaffold configuration file because Cloud Deploy uses Skaffold for rendering, deploying and verifying. You do not need deep expertise at first. Start from a simple example in the documentation and grow from there.

Q5Can I require approval before production?

Yes. You set an approval requirement in the target definition. Cloud Deploy then waits and publishes an approval-needed message. An authorized person or connected system approves or rejects the rollout.

Q6How does a rollback work?

A rollback creates a new rollout of the last successfully deployed release to that target, using the same parameters as that earlier deployment. Because the earlier release is stored, nothing needs to be rebuilt. Remember that data changes outside the application can still make going back unsafe.

Q7What is a canary deployment?

It is a strategy that sends the new version to a small share of traffic or infrastructure first, then increases the share in phases if all looks well. If problems appear, you stop early and only a few users are affected.

Q8Can the pipeline promote releases automatically?

Yes. Automation rules can promote a release after a successful rollout, promote on a schedule, advance canary phases after a wait time, and repair failed rollouts by retrying and then rolling back to the last successful release.

Q9How much does Cloud Deploy cost?

The pricing page described billing per active multi-target delivery pipeline, with the first one per billing account free and single-target pipelines not charged. Supporting services such as Cloud Build and Cloud Storage are billed separately. Prices change, so check the official page.

Q10Can I use my existing CI tool?

Yes. Any CI tool or script that can call Cloud Deploy and has the right permissions can create releases. Cloud Build is a natural fit, but it is not required.

Q11Can one pipeline serve several services?

Usually a pipeline represents one application or service. Many teams create one pipeline per service from a shared template. Several pipelines can share the same target, but a target may appear only once within a single pipeline.

Q12How do I keep secrets safe?

Keep secrets out of pipeline files, release parameters and images. Use a secret management service and let the running application read secrets with its own limited identity.

Q13How do I know who deployed what?

Rollout history shows which release went to which target and when, and audit logs show which identity performed each action. Use named people and separate service accounts so the record is meaningful.

Q14Why did my canary skip the early phases?

Canary needs an existing version to compare against. On the first deployment to a target, Cloud Deploy may go straight to the stable phase. Later canaries behave normally.

Q15Can I deploy to many regions at once?

Yes, through parallel deployment, where one stage deploys to several targets together. Many teams still use a pilot region first to limit risk.

Q16What if my platform is not supported?

Consider a custom target, where you supply the deployment logic while Cloud Deploy supplies the pipeline structure, approvals and history. Be ready to maintain that logic yourself.

Q17Does Cloud Deploy replace testing?

No. It delivers what your build and tests produced. It can run verification after deployment, but the main test suite still belongs in your CI process and in staging.

Q18How many environments should I have?

Start with development, staging and production. Add more only when there is a clear need, such as compliance, a regional pilot or extra testing. Each stage adds time and cost.

Q19How do I handle database changes safely?

Make changes backward compatible across several releases: add new structures first, switch the application to use them next, and remove old structures last. That keeps rollback possible at every step.

Q20How do I get started today?

Pick one small service, create a two-stage pipeline with a development and a staging target, connect your build to create releases, and try a promotion and a rollback. Then add approvals, verification and a canary for production.

Q21Should every service use a canary?

Not necessarily. Canaries add time and need good monitoring. They pay off for customer-facing services where a bad release is costly. Internal tools and low-traffic services may do fine with the standard strategy, provided they keep verification and rollback.

Q22What happens if a rollout fails halfway?

The rollout is marked as failed and notifications are published. You can retry it, cancel it or roll back. A repair automation rule can perform retries automatically, and if every attempt fails it can create a rollback rollout to the last successful release.

Q23Can I see which version is running in each environment?

Yes. The console and command line show the latest release and rollout for each target in a pipeline, so one screen answers the common question of what is running where, and since when.

Q24Where should the pipeline definitions live?

Keep them in a version-controlled repository, either next to the application or in a central platform repository, and apply them through an automated process. That makes every change to delivery reviewable and reversible.

Q25How do I stop people from deploying around the pipeline?

Remove direct deployment permissions from people on production environments, and let only the pipeline’s deployment identity make changes there. Keep a documented emergency procedure for real incidents, with extra logging and review afterwards.

Q26Is Cloud Deploy suitable for a small team?

Yes. A small team can start with a simple two-stage pipeline and gain history, approvals and rollback quickly. Single-target pipelines are not charged, and the first multi-target pipeline per billing account was free at the time of writing, so trying it costs little.

Q27How do notifications reach my team chat?

Cloud Deploy publishes events to Pub/Sub. A small subscriber, such as a serverless function, reads those messages and posts them to chat or opens a ticket. Many teams build this once and reuse it for every pipeline.

Q28What should I measure to know my delivery is improving?

Track how often you deploy, how long a change takes from commit to production, how often releases cause incidents, and how fast you recover. Improving these together, not just speed, shows healthier delivery.

34Summary and Key Takeaways

Everything in this guide on one short page.

Cloud Deploy is a managed continuous delivery service. You describe a pipeline of targets, your build system creates releases, and the service renders, deploys, pauses for approvals, supports canary strategies and rollbacks, and records everything. It works best when combined with a good build process, honest staging, careful permissions and watchful monitoring.

Key Takeaways

  • Cloud Deploy delivers finished releases through an ordered pipeline of targets such as GKE clusters and Cloud Run services, while a separate CI system builds and tests.
  • A release is a sealed, versioned bundle. Each deployment of it to a target is a rollout. Build once and promote the same release to keep tested and shipped code identical.
  • Use approvals before production, canary strategies for customer-facing services and automation to promote, advance and repair, keeping humans in charge of the high-risk steps.
  • Verify every deployment, watch health signals during canaries and rehearse rollbacks, remembering that database changes must be backward compatible.
  • Apply least privilege, separate identities and duties, keep secrets out of pipeline files and protect the pipeline as carefully as production.
  • Watch cost across pipelines, builds, storage and logs, and confirm current prices and limits on the official pages.
  • Start small with three stages, treat delivery configuration as code, track delivery health measures and keep up with product updates.