DevOps & SRE

Google Cloud Deploy gets continuous delivery productivity enhancements

blog post header.jpg

Since Google Cloud Deploy became generally available in January 2022, we’ve remained focused on our core mission: making it easier to establish and operate software continuous delivery to a Google Kubernetes Engine environment. 

Through ongoing conversations with developers, DevOps engineers, and business decision makers alike, we’ve received feedback about onboarding speed, delivery pipeline management, and expanding enterprise features.Today, we are pleased to introduce numerous feature additions to Google Cloud Deploy in these areas. 

Faster onboarding

Skaffold is an open source tool that orchestrates continuous development, continuous integration (CI), and continuous delivery (CD), and it’s integral to Google Cloud Deploy. Through Skaffold and Google Cloud Deploy, the local application development loop is seamlessly connected to a continuous delivery capability, bringing consistency to your end-to-end software delivery lifecycle tooling. 

This may be the first time your team is using Skaffold. To help, Google Cloud Deploy can now generate a Skaffold configuration for single manifest applications when one is not present. 

When you create a release, the new ‘gcloud deploy releases create … --from-k8s-manifest‘ command provides an application manifest, and generates a Skaffold configuration. This lets your application development teams and continuous delivery operators familiarize themselves with Google Cloud Deploy, reducing early-stage configuration and learning friction as they establish their continuous delivery capabilities. 

When you use this option, you can review the generated Skaffold configuration, and as your comfort with Skaffold configuration and Google Cloud Deploy increases, you can develop your own Skaffold configurations tailored to your specific delivery pipeline needs.

Delivery pipeline management

Continuous delivery pipelines are always in use. New releases navigate a progression sequence as they make their way out to the production target. The journey, however, isn’t always smooth. In that case, you may need to manage your delivery pipeline and related resources more discretely. 

With the addition of delivery pipeline suspension, you can now temporarily pause problematic delivery pipelines to restrict all release and rollout activity. By pausing the activity, you can undertake an investigation to identify problems and their root cause. 

Sometimes it isn’t the delivery pipeline that has a problem, but rather a release. Through release abandonment, you can prohibit application releases that have a feature defect, outdated library, or other identified issues from being deployed further. Release abandonment ensures an undesired release won’t be used again, while keeping it available for issue review and troubleshooting.

suspended_pipeline_blog.jpg
A suspended delivery pipeline and abandoned releases

When reviewing or troubleshooting release application manifest issues, you may want to compare application manifests between releases and target environments to determine when an application configuration changed and why. But comparing applications manifests can be hard, requiring you to use the command line to locate and diff multiple files.

To help, Google Cloud Deploy now has a Release inspector, which makes it easy to review application manifests and compare against releases and targets within a delivery pipeline.

release-inspector.gif
Reviewing and comparing application manifests with the Release Inspector

Rollout listings within the Google Cloud Deploy console have, to date, been limited to a specific release or target. A complete delivery pipeline rollout listing (and filtering) has been a standing request, and you can now find it on the delivery pipeline details page.

rollouts_tab_blog.jpg
Delivery pipeline details now with complete Rollouts listing

Finally, execution environments are an important part of configuring custom render and deploy environments. In addition to the ability to specify custom worker pools, Cloud Storage buckets, and service accounts, we’ve added an execution timeout to better support long-running deployments. 

Expanded enterprise features

Enterprise environments frequently have numerous requirements to be able to operate, such as security controls, logging, Terraform support, and regional availability.

In a previous blog post, we announced support for VPC Security Controls (VPC-SC) in Preview. We are pleased to announce that Google Cloud Deploy VPC-SC is now generally available. We’ve also documented how you can configure customer managed encryption keys (CMEK)with services that Google Cloud Deploy depends on.

There are also times when reviewing manifest-render and application deployment logs may not be sufficient for troubleshooting. For these situations, we’ve added Google Cloud Deploy service platform logs, which may provide additional details towards issue resolution.

Terraform plays an important role in deploying Google Cloud resources. You can now deploy Google Cloud Deploy delivery pipelines and target resources using Google Cloud Platform’s Terraform provider. With this, you can now deploy Google Cloud Deploy resources as part of a broader Google Cloud Platform resource deployment.

Regional availability is important for businesses that need a regional service presence. Google Cloud Deploy is now available in an additional nine regions, bringing the total number of Google Cloud Deploy worldwide regions to 15.

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 Google Cloud Deploy will help you implement complete CI/CD pipelines. And we’re just getting started. Stay tuned as we introduce exciting new capabilities and features to Google Cloud Deploy in the months to come. 

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