Anita has been an independent programmer for years, working solo on most of her projects. Recently, she has begun working on larger projects with a team and some of her development and deployments practices aren’t working as well as before. When merging her code, she found that there were a lot of conflicts with the other developers’ code. Some bugs were slipping through the merges and causing more issues. Even some of the deployments failed! They did not have a prototype ready to show and faced many delays.
Anita began to realize that her processes needed to change to scale up for larger projects.
Throughout this course, we have learned about various DevOps practices such as version control, environment configuration, and testing. These practices enable developers to deploy their code with great speed and reliability. However, when attempting to use these practices and tools at scale, issues like Anita’s can arise.
Teams practicing DevOps will turn to automation to scale their development and deployment practices.
Automation is the process of using tools and scripts to perform tasks for us. Many aspects of the deployment process can be automated, from version control to testing and finally to deployment. Altogether, the automation of the deployment process creates the Continuous Integration / Continuous Delivery (CI/CD) Pipeline. This pipeline also encompasses Continuous Testing and Continuous Deployment.
In this lesson, we will take a look at each of the components of the CI/CD Pipeline and how it relates to the overall culture of DevOps. We will cover:
- Bottlenecks of Manual Deployment
- Automation in DevOps
- Continuous Testing
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- The Complete CI/CD Pipeline
Let’s get started!
Take a look at the diagram and refresh your memory on the steps involved in the deployment process.
Each component of the CI/CD pipeline addresses a bottleneck in a manual deployment pipeline. In the next exercise, we’ll learn about the bottlenecks that can occur in version control, testing, and environment configuration. Press the next button when you are ready to move on to the next exercise!