Jump to Content
[go: nahoru, domu]

DevOps & SRE

Google Cloud Deploy adds canary and parallel deployment support

April 6, 2023
Louis Jimenez

Software Engineer

Jhonmattew Santa

Software Engineer

Editor’s note: This blog post was updated to reflect the general availability status of these features as of June 26, 2023.


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 General 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

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_DelPipelineCanary.max-2200x2200.jpg
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.

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Run_your_game_infrastructure_on_GKE_Auto.max-2200x2200.jpg
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

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_MultiTargetDetails.max-2200x2200.jpg
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

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_CanaryChild.max-2200x2200.jpg
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!

Posted in