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.