Through the use of a pipeline to automate the entire software release process, teams can provide software fast and reliably thanks to a set of techniques and concepts known as continuous delivery (CD). In this post, Google Cloud use the recently announced Gitlab Google Cloud interface to demonstrate how to set up a Continuous Delivery pipeline that automates software delivery from code commit to use Google Cloud Deploy and Gitlab CI/CD for a production release on Cloud Run.
Components of the resolution
Gitlab CI/CD
Gitlab Continuous Integration/CD
Within GitLab, there is an integrated platform for continuous integration and delivery called GitLab CI/CD. Your development workflow is streamlined as it automates the build, test, and deployment of your code modifications. Consult the Gitlab CI/CD guide for additional details.
Cloud Deploy
Cloud Implementation
You can use the Google managed service Google Cloud Deploy to automate the deployment of your application to multiple runtime environments at different phases. You can create delivery pipelines using Cloud Deploy to deploy container images to GKE and Cloud Run targets in a specified order. Advanced deployment techniques like parallel deployments, approvals, progressive releases, and deployment verifications are supported by Google Cloud Deploy.
Integration of Gitlab with Google Cloud
Authentication: Recently, Gitlab and Google Cloud launched integrations to make code deployment from Gitlab to Google Cloud simpler and more secure. The following are the aspects of integration covered in this article:
Authentication: GitLab workloads, as CI/CD jobs, may be securely authorised and authenticated with Google Cloud thanks to the interaction between GitLab and Workload Identity Federation. This streamlines the procedure and lowers security risks by doing away with the need to manage service accounts or service account keys. This authentication technique is used by all the other integration areas that are detailed below.
Artifact Registry: GitLab artefacts may be accessed from the Gitlab UI and uploaded to the Artefact Registry thanks to the integration.
Cloud Deploy: Using Gitlab CI/CD pipelines, this Gitlab component makes it easier to create Google Cloud Deploy releases.
Gcloud: With Gitlab CI/CD pipelines, this component makes it easier to perform gcloud commands.
Gitlab runners on Google Cloud: This connection enables you to build up runner parameters directly from the Gitlab UI and then use Terraform to deploy them to your Google Cloud project.
Important characteristics
Continuous supply that is simplified
Continuous delivery to GKE, Cloud Run jobs and services, and Anthos is made simple and effective with Google Cloud Deploy. Define releases and move them through the test, stage, and production environments. Releases may be easily promoted and rolled back in one step using Cloud Deploy using the web UI, CLI, or API. Contextual metrics provide information into the success and frequency of deployments.
Completely controlled single glass pane
Cloud Deploy is a completely managed solution that offers automatic scale-up and scale-down to maximise cost and performance without requiring any infrastructure to be set up or maintained. Additionally, as release candidates move closer to production, this centralisation offers an organization-wide single pane of glass for monitoring and management.
Closely linked to Google Cloud
The most comprehensive GKE, Cloud Run, and Anthos deployment platform on the market is called Google Cloud Deploy. Use IAM to control the release process, use cloud logging to track release events, and use cloud audit logs to establish traceability. Link the resources that have been deployed to the monitoring.
Works with the tools you already own
CI and ticketing are two common DevOps tools that can be connected with Cloud Deploy. When combined with Cloud Code, Skaffold from Cloud Deploy allows your pipelines to have pipeline parity for both development and CI/CD.
Visualisation of pipelines
Envision the route to be taken. Define delivery pipelines and show how candidate releases are sent from development to production.
Simple rollout and rollback
There has never been a simpler or more transparent rollout and rollback process for GKE, Cloud Run, and Anthos user clusters. Promote a release via a one-step web console, CLI, or API activity between target stages.
Integrated approvals
With official release promotion approvals that are accessible through the web portal, CLI, or API and connected with IAM, Cloud Deploy facilitates the division of labour and addresses problems.
In parallel, implement
Concurrently deploy to several GKE or Anthos clusters, or Cloud Run service regions. To guarantee that the deployment is successful everywhere or is collectively rolled back, Cloud Deploy orchestrates.
Canary put into action
Gradually roll out an updated version of your program to a certain percentage of users (say, 10%).
Put hooks in place
Set up Cloud Deploy to carry out actions prior to deployment, following deployment, or both.
Verification of deployment
To have Cloud Deploy verify rollout success, integrate deployment and verification tests.
Mechanisation
Automate the configuration of continuous deployment in your delivery pipeline. Promote releases automatically from one target to the next and roll out canary percentages automatically.
Configuration that is declarative
Just specify the what, never worry about the how, and let Google Cloud Deploy handle the hard work. Based on intended end states, Cloud Deploy fully automates the installations of Anthos user cluster, Cloud Run, and Google Kubernetes Engine (GKE).
Certain target categories
Custom target types provide functionality to Cloud Deploy by enabling you to utilise features like clearance and promotion while defining and utilising a custom target type with its own renderer and deployer.
Views
Through Skaffold, Cloud Deploy offers a subjective on-ramp to GKE, Cloud Run, and Anthos. Utilise built-in best practices to protect pipelines against modifications and maintain their durability.
Firmly incorporated
There is no need for manual wiring. Cloud Audit Logs, and Cloud Logging are all pre-integrated with Cloud Deploy.
Measures
Instant access to insights. Understand the frequency and efficaciousness of progress releases via delivery pipelines.
Traceability and auditing
Release auditability and traceability are made possible by the integration of Cloud Deploy with Cloud Logging. Keep track of the releases that were promoted and by whom clearly in mind.
IAM and permissioning for execution
Implementation of scoped service accounts and granular IAM permissioning for lockdown release deployments.
Link your favourite tools
With Google Cloud Deploy, you can play with all the tools you love and expand your DevOps ecosystem. Use the CLI or API to invoke Cloud Deploy from well-known CI products, then federate permissions to your preferred ticketing system.
Combined with your background as a developer
By adding Skaffold to your pipelines, Cloud Deploy helps operators get pipeline parity between development and CI/CD, while allowing developers to take use of Cloud Code’s intuitive developer experience and stay productive even in the face of platform changes.
Cloud Deploy Pricing
A management fee is assessed to Google Cloud Deploy clients for each active delivery pipeline that has several targets (also known as a “multiple target delivery pipeline”). Each subsequent active multiple target delivery pipeline is charged $5 per month; the first active multiple target delivery pipeline per billing account is free.