Automation with Jenkins and GCP-Native CI/CD Services

This chapter covers Jenkins and GCP-native CI/CD services to deploy applications on GCP. This chapter covers the following topics:

  • PDF / 5,667,945 Bytes
  • 79 Pages / 439.37 x 666.142 pts Page_size
  • 36 Downloads / 283 Views

DOWNLOAD

REPORT


Automation with Jenkins and  GCP-Native CI/CD Services This chapter covers Jenkins and GCP-native CI/CD services to deploy applications on GCP. This chapter covers the following topics: •

Introduction to automation



Overview of GCP development automation



Overview of Jenkins



Setting up Jenkins with the GCP development automation workflow



Use case implementation using Jenkins with Google-­ native services

© Navin Sabharwal, Piyush Pandey 2021 N. Sabharwal and P. Pandey, Pro Google Cloud Automation, https://doi.org/10.1007/978-1-4842-6573-4_5

221

Chapter 5

Automation with Jenkins and GCP-Native CI/CD Services

Introduction to Automation Rapid technology advancements and demand for shorter time to market are driving organizations to invest in automation technologies. This led to the evolution of a philosophy we all now know as DevOps. The primary goal of DevOps is to accelerate an organization’s ability to deliver services at a high velocity while ensuring quality, stability, and security. CI/CD (Continuous Integration/Continuous Deployment) is a common practice that is followed within the umbrella of DevOps ecosystem. It brings the following benefits to the table: •

Frequent deployments each day/week/month



Low failure rate and fewer security bugs in releases



Less time between consecutive fixes/releases



Faster time to market

A typical application release workflow is shown in Figure 5-1.

Figure 5-1.  DevOps workflow

222

Chapter 5

Automation with Jenkins and GCP-Native CI/CD Services

This approach is based on the following methodologies, which largely consist of the DevOps principle around people-process-tools: •





Requirements Management •

Enable Agile ways of project planning and delivery with Scrum/Kanban processes



Product requirements to be collected and documented in ALM tools



Foster collaboration between Dev, Test, and OPS teams, with a single dashboard view of ongoing product development activities, release planning, and dependencies

Continuous Integration •

Enable SDLC process integration of new code developed with automated builds, unit testing, code quality, and artifact repository



Provide orchestration among various identified tools for automation applications and infrastructure provisioning

Environment Provisioning •

Allow zero touch provisioning of infrastructure components, including VMs or containers, storage, network, and products with automated configuration management and verification activities



Infrastructure components to be exposed as API reference points to be integrated in automated pipelines

223

Chapter 5





Automation with Jenkins and GCP-Native CI/CD Services

Continuous Testing •

Enable the shift-left approach to reduce delivery timelines across the entire SDLC process, including the infrastructure build



Identify defects and non-compliance to agreed on design principles and avoid late detection of issues that could lead to an increase in application delivery to end-­users

Continuous Deploymen