1 What’s CI/CD?


This chapter covers

  • The path organizations have taken to evolve from monolith to cloud-native applications
  • The challenges of implementing CI/CD practices for cloud-native architectures
  • An overview of continuous integration, deployment, and delivery
  • How CI/CD tools like Jenkins can bring business value to organizations that undertake the journey of continuous everything

Software development and operations have experienced several paradigm shifts recently. These shifts have presented the industry with innovative approaches for building and deploying applications. More importantly, two significant paradigm shifts have consolidated capabilities for developing, deploying, and managing scalable applications: cloud-native architecture and DevOps.

Cloud-native architecture emerged with cloud adoption, with cloud providers like Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure taking ownership of the infrastructure. Open source tools like Kubernetes, Docker, and Istio offer horizontal scaling ability, letting developers build and run modern scalable applications without worrying about the underlying infrastructure. As a result, operational overhead is reduced, and the development velocity of applications is increased.

DevOps bridged the divide between developers and ops teams, and brought back harmony through collaboration, automated tools, and iterative and Agile development and deployment.

1.1 Going cloud native

1.1.1 Monolithic

1.1.2 Microservices

1.1.3 Cloud native

1.1.4 Serverless

1.2 Defining continuous integration

1.3 Defining continuous deployment

1.4 Defining continuous delivery

1.5 Embracing CI/CD practices

1.6 Using essential CI/CD tools

1.6.1 Choosing a CI/CD tool

1.6.2 Introducing Jenkins