Friday, June 21, 2024
No menu items!
HomeCloud ComputingGoogle Cloud Deploy adds canary and parallel deployment support

Google Cloud Deploy adds canary and parallel deployment support

Real-world cloud deployment can be complex, often involving concurrent deployments to multiple target environments and frequently requiring a deployment strategy. Configuring and managing these deployments can be challenging.

Today, we’re pleased to announce the Preview availability of canary deployment and parallel deployment for Google Cloud Deploy. With these two capabilities, Cloud Deploy now offers simpler advanced deployment to Google Kubernetes Engine (GKE), Cloud Run, and Anthos.

Canary deployment

Delivery pipeline with canary deployment progress

Deployment safety is a primary concern for every DevOps organization. Many deployment strategies have been developed to assist with safety, including ‘canary’ deployment.

Canary deployment is a deployment strategy where a new application release is introduced alongside the current release. This typically takes the form of percentage-based traffic splitting, for example, 10% to the new application release and 90% to the current release. Validation and testing is performed against the application, current and new, to ensure the new release is not introducing any regressions.

With the introduction of canary deployment in Cloud Deploy, percentage-based deployments with (optional) verification can be used to safely deploy new releases into a target. Canary deployment is supported for all Cloud Deploy target types (GKE, Cloud Run, and Anthos) and supports multiple configuration modes (automatic and custom). Advancing a deployment from one percentage to the next is as simple as clicking ‘advance’ or calling gcloud deploy beta rollouts advance.

New rollout details page with canary deployment observability and control

If you experience a failure or need to further investigate a canary deployment, Cloud Deploy provides both observability and control. Canary deployment phase and job status as well as logs can be individually reviewed. Problematic jobs, such as an unreliable verification job, can also be retried, terminated, or ignored when issues arise. If the canary deployment is altogether problematic, it can be canceled and rolled back.

Deploy in parallel

Introducing the multi-target

Many production deployments need to deploy to not just one but often many targets at the same time. These deployments are intended to be treated as a single deployment where a collective failure is registered if a single deployment fails — the same also being true for success. When a rollback is necessary all targets should also be rolled back together.

Parallel deployment in Cloud Deploy addresses these needs by providing the ability to deploy to multiple targets simultaneously. When deploying against a multi-target, a controller rollout orchestrates multiple child rollouts, each performing their own deployment and operating in their own execution environment. Controller rollout success only occurs when each child rollout has succeeded.

Like canary deployment, observability and control are provided with parallel deployment. Individual child rollouts can be reviewed, inspected, and repaired when issues arise. If a collective failure is determined, the controller rollout (and corresponding child rollouts) can be canceled and the multi-target can be rolled back to a prior release.

All target types support parallel deployment, including GKE, Cloud Run, Anthos.

We recently demonstrated parallel deployment with GKE, Agones, and Cloud Deploy at the Game Developers Conference 2023. To learn more, read the blog post.

Canary deploy in parallel

Canary deploying to multiple targets in parallel

Parallel deployment with Cloud Deploy can also be combined with canary deployment to provide orchestrated multi-target, canary deployments. Here, child rollouts are collectively advanced between deployment phases. Each child rollout is restricted from proceeding to the next canary percentage until the prior has completed, preventing child rollouts from getting ahead of one another.

The future

Comprehensive, easy-to-use, and cost-effective DevOps tools are key to building an efficient software delivery capability, and it’s our hope that Cloud Deploy will help you implement complete CI/CD pipelines. Stay tuned as we introduce exciting new capabilities and features to Cloud Deploy in the months to come. 

In the meantime, check out the product page, documentation, quickstarts, and tutorials. Finally, If you have feedback on Cloud Deploy, you can join the conversation. We look forward to hearing from you!

Related Article

Distributing software everywhere, all at once – a look at Cloud Deploy multi-target

Cloud Deploy now supports multiple target deployments, allowing updates to run at the same time; faster and easier.

Read Article

Cloud BlogRead More



Please enter your comment!
Please enter your name here

Most Popular

Recent Comments