Continuous Integration and Continuous Delivery (CI/CD)
Offered By: IBM via Coursera
Course Description
Overview
A principle of DevOps is to replace manual processes with automation to improve efficiency, reduce human error, and accelerate software delivery. This requires automation that continuously integrates code changes and continuously delivers those changes to a production environment.
This course introduces you to Continuous Integration and Continuous Delivery (CI/CD), an automated approach to software development. You’ll discover the benefits of CI/CD for creating a DevOps pipeline and explore popular CI/CD tools.
You’ll examine the key features of CI, explore social coding, and the Git Feature Branch Workflow. You will also learn about standard CI tools and gain a deep understanding of GitHub Actions workflows and their components.
This course provides an overview of CD and its goals, benefits, and best practices. You will learn the requirements of a CI/CD pipeline and discover standard CD tools.
You will explore Tekton and discover how its components work together to create a CD pipeline. You will learn how to build a pipeline, pass parameters to a pipeline, build triggers to start pipeline runs, implement reusable tasks, and create custom tasks. You will discover how to complete your CD pipeline by building a container image and deploying your application to an OpenShift Kubernetes cluster.
Throughout the course, you can hone your skills and challenge yourself through several hands-on labs.
Syllabus
- Introduction to CI/CD
- Welcome to Module 1, Introduction to CI/CD. In this module, you will get a broad introduction to Continuous Integration and Continuous Delivery, commonly known as CI/CD. CI/CD is an automated software development and delivery approach that ensures repeatability and reliability. Throughout this module, you will explore the concepts of CI and CD, understanding their advantages when implemented correctly in your DevOps pipeline. You will also study various popular CI/CD tools, recognizing the importance of eliminating manual procedures and acknowledging that different teams within an organization may use other CI/CD tools. Additionally, you will gain insights into Infrastructure as Code (IaC), which involves utilizing code to automate the provisioning and management of infrastructure. IaC serves as a fundamental concept for implementing automation. There are no labs in this first module. The goal is to understand what CI/CD is before we dive deep into each topic individually. Let's get started.
- Continuous Integration (CI)
- Welcome to Module 2: Continuous Integration! This module provides you with a comprehensive orientation to Continuous Integration (CI). Through this module, you will gain knowledge of CI's features and the benefits it brings to the world of DevOps. We will begin by exploring social coding, a widely adopted practice within the open-source community. Many companies are now adopting this practice for inner source purposes, to capitalize on its efficiency levels and other benefits. In support of that, you’ll learn about the Git version control system, how to practice the Git Feature Branch Workflow, and the essential commands required to manage it. The workflow will ensure that you follow good DevOps practices and work in small batches so your development work never strays too far from the main codebase. This workflow offers several other key features, along with ensuring adherence to good DevOps practices and maintaining close alignment with the main codebase. We will also explore various popular Continuous Integration (CI) tools, such as Jenkins, CircleCI, and Travis CI, and study their comparison. The tool that you will dive deep into is GitHub Actions. It’s a relatively new tool that is rapidly gaining popularity and is available on every GitHub repository. We’ll go into great detail on the events, runners, jobs, steps, and actions that are the essential components of the GitHub Actions workflow. Through hands-on labs, you can apply your knowledge by forking a repository and establishing your own GitHub Actions workflow. This workflow will involve tasks such as, code examination, quality checks, unit testing, and automatic reporting of code coverage. Importantly, this lab is not a simple "hello world" exercise; it represents a real-world example from one of my personal projects. Consequently, the knowledge and skills you acquire during this lab will be directly applicable to your own projects.
- Continuous Delivery (CD)
- The module begins by introducing Tekton and pipelines, establishing a foundation for comprehending their roles in the CI/CD process. You will also learn the significance of triggers in Tekton, enabling pipelines to execute automatically based on specific events or conditions. Through a hands-on lab, you will create a Tekton trigger to initiate pipeline runs in response to external events. You will gain proficiency in effectively utilizing the Tekton Catalog and incorporating its resources into pipelines. The module guides you in creating custom tasks for code linting, unit testing, and other quality assurance processes. Additionally, you will learn how to build container images in preparation for deployment to Kubernetes. Through hands-on labs, you will develop practical skills to effectively implement Tekton pipelines and automate their CI/CD processes.
- DevOps and GitOps with OpenShift
- Welcome to the "DevOps and GitOps with OpenShift" module. In this module, you will understand the DevOps pipeline and its essential elements that automate the software delivery process. You will explore the components of CI/CD pipelines and their utilities. Additionally, you will learn about OpenShift Pipelines, which offer benefits such as seamless integration with Kubernetes tools, scalability, and the ability to leverage OpenShift services. The module will also introduce you to GitOps, an operational framework that combines DevOps best practices with version control and automation. GitOps enables efficient deployment and management of infrastructure and application configurations by utilizing GitOps as the single source of truth. You will discover the fundamental principles, benefits, and workflow of GitOps, including visibility, audibility, and easy rollback of changes. Furthermore, the module will delve into Argo CD, a tool that plays a crucial role in the GitOps ecosystem. You will explore Argo CD's key concepts and features, including its architecture and how it enables continuous delivery and streamlines application deployment processes in Kubernetes environments. By the end of this module, you will have a comprehensive understanding of the DevOps pipeline, CI/CD components, OpenShift Pipelines, GitOps principles, benefits, and the critical features of Argo CD. This knowledge will empower you to automate software delivery, manage configurations, and streamline deployment processes in modern software development environments.
- Final Exam and Final Project
- In this module, you will complete a final exam and a final project that tests your knowledge of the course’s content. The exam will include questions on topics including but not limited to CI/CD’s principles, features, benefits, tools, and methods of implementation. The final project lab environment will provide you with a sample application and an OpenShift Cluster, and you will be asked to add CI/CD pipelines using GitHub Actions, Tekton tasks, and OpenShift Pipelines.
Taught by
John Rofrano and Upkar Lidder
Tags
Related Courses
AWS Developer Tools Deep DiveA Cloud Guru Building a Continuous Integration Pipeline with Travis CI
A Cloud Guru Google Cloud Run Deep Dive
A Cloud Guru Implementing a Full CI/CD Pipeline
A Cloud Guru Implementing Continuous Delivery in Azure
A Cloud Guru