This course is a hands-on learning experience designed to familiarize the student with GitOps. GitOps is a unique approach to automating DevOps pipelines. It utilizes a version control system to create and maintain the infrastructure as well as the application source code. This course demonstrates how Flux is used to keep Kubernetes clusters synchronized with GitHub and GitLab repositories.
introduction To The Course Author
This is a brief introduction to the course author, John Marx.
This is a brief video introduction to the course with some background and explanation of GitOps.
Hands-On GitOps Deep Dive
DevOps with GitOps
This lesson briefly reviews the overall DevOps flow, and explains how GitOps is used to automate deployments to Kubernetes clusters. It explains the overall architecture of a GitOps solution inclusive of a Git Version Control System (VCS) and a pod deployment running Flux within a cluster.
Declarative Infrastructure and Infrastructure as Code (IaC)
In this lesson we cover how Virtual Machine environments have become increasingly complex and dynamic with the onset of cloud computing. We cover what is meant by "Declarative Infrastructure" and "Infrastructure as Code." Most importantly, we establish why GitOps Automation is needed in these new hybrid cloud computing environments.
Using a Version Control System as the Foundation of DevOps
In this lesson we explain the DevOps methodology and how a VCS system is used to version control application source code and infrastructure artifacts. The lesson is followed by a hands-on demonstration of GitHub, DockerHub, and the Kubernetes cluster that make up a GitOps solution.
Continuous Integration and Git Flow
This lesson covers the basics of a VCS system and demonstrates how a feature branch may be used to facilitate continuous integration. Continuous delivery is emphasized as a pull request is used to instigate code review before updating the master branch or trunk. This lesson covers GitFlow and the practice of CI/CD in a Git environment.
Continuous Delivery vs. Continuous Deployment
This lesson covers Continuous Delivery methods when continuous deployment to lower environments such as development and test are used to control release gating. This lesson utilizes a "release candidate" branch to merge feature changes and test them prior to merging into a master branch or trunk. The lesson video is followed by a demonstration using GitHub. This is the article mentioned in the course video. https://martinfowler.com/bliki/ContinuousDelivery.html
Synchronizing Target Platforms with Upstream VCS Repos
This lesson covers the use of Flux to synchronize multiple versions of the same application as they are developed, enhanced, and promoted to QA and production. The Flux deamon is configured on a sample QA platform, and the lesson demonstrates the method to cause certain versions of containers to be deployed.
Application Build and Deployment Automation
This lesson explains how multiple Kubernetes clusters may be set up to each poll and pull from a different repository folder. This lesson demonstrates a production cluster monitoring the production folder in the repository, and also deploys a container from a different Docker Hub location or organization.
Hands-On GitOps Labs
Take this course and learn a new skill today.
Transform your learning with our all access plan.Start 7-Day Free Trial