Automation is here for Cloud Deploy.

sakajunquality
sakajunlabs
Published in
4 min readNov 15, 2023

Here’s the final missing piece for complete progressive delivery capability in Google Cloud.

One of the most anticipated features, at least for me, is now available in public preview: Cloud Deploy Automation. Currently Cloud Next Tokyo ’23 is taking place in Japan, where several announcements are being made. However this automation feature stands out as the most valuable, especially if you’re using Cloud Deploy.

What is Cloud Deploy first of all?

Before delving into the details of automation, let me quickly explain what Cloud Deploy is. As the name suggests, Cloud Deploy is a fully managed continuous delivery solution in Google Cloud. It offers a high-functioning CI/CD pipeline for GKE and Cloud Run.

Here are some key features and aspects of Cloud Deploy:

  • Serial Pipeline
  • Parallel Deploy
  • Built-in Approval
  • Canary Deploy
  • Verification

Please visit the product page for full details.

To tell the truth, I WAS not a big fan of Cloud Deploy when it was initially released, as our company already had a working CI/CD system built on GitHub Actions, and I felt that migrating would be challenging. But as more features were added and I began to understand its philosophy better, I changed my mind and decided to adopt Cloud Deploy fully.

There are several reasons, but I’ll highlight two. First, it is developer-centric. Typically, it’s the developers who are responsible for handling deployment, monitoring, and rolling back when necessary. Cloud Deploy not only visualizes the pipeline but also simplifies the rollout and rollback processes for developers. Secondly, its configuration is declarative. Most CI/CD systems adopt an imperative approach, where you write specific steps. This approach offers freedom but can sometimes lead to chaos in YAML files. A declarative configuration might be more limited, but it provides a framework-like guardrail from chaos. (In the case of Cloud Deploy, it’s Skaffold.)

Progressive Delivery

In addition to the concept of continuous delivery, you might often hear about “Progressive Delivery” nowadays. Essentially, its idea revolves around the gradual release of new features and updates to specific subsets of users. For such gradual releases, canary deployments can be used. However canary releases alone are not sufficient: You also need to analyze and ensure success at each step. For example, the new feature is first rolled out to 10% of the users. If this proves successful, the rollout is increased to a larger percentage of users, say 30%, and this process continues incrementally until the feature is deployed to all users.

Canary and Verification

With Cloud Deploy, two features that have reached (GA) support this: Canary and Verification. Canary Deployment allows for deploying to a subset of users, either based on traffic or the number of pods. Verification enables the confirmation that the application is running correctly after rollout.

Why does Automation matter?

I would argue that while the minimum requirements for progressive delivery are in place, the critical question is “Can you manage this process manually, especially for every release?” The likely answer is no. That’s why automation is essential.

What is Automation?

Automation is a brand-new feature in Cloud Deploy that automates specific actions during deployment. Currently, it offers two automation rules: “promoteRelease” and “advanceRollout”.

promoteRelease: This rule promotes a release to the next target. For instance, it can move a release from staging to production.

advanceRollout: This rule progresses the rollout to the next phase in a canary deployment.

Both of these rules can be utilized without verification. Specifically, with promoteRelease, you can just automate the progression of pipelines with ease. However I believe integrating verification truly enhances its value.

You can refer to the document here for more detail.

By the way the actual executions of automation rules can be monitored directly through the console.

Conclusion

In conclusion, the introduction of automation features in Cloud Deploy marks a significant advancement in the realm of progressive delivery. These features not only streamline the deployment process but also open up new possibilities for efficiency and reliability. While canary, verification, and automation can each be used independently, integrating them creates a more robust and secure deployment strategy.

A hearty kudos to the Cloud Deploy team for their exceptional work!

--

--

sakajunquality
sakajunlabs

Google Developer Expert, Cloud. Software Engineer, Site Reliability. Photographer. #kubernetes #bigquery