In this course, we'll learn about GitOps. GitOps is an operational model that allows developers to accelerate the delivery of cloud-native applications that run on Kubernetes. Many predict that GitOps will be the default operational model for modern continuous delivery tools and development platforms. It combines concepts such as infrastructure as code, continuous delivery, and source control management to create a stable yet rapid approach to delivering changes to software and infrastructure.

The underlying principles of GitOps create a more secure, repeatable, and transparent operational model that enhances how teams operate their software. Recently, the Cloud Native Computing Foundation (CNCF) established the GitOps Working Group and recommended the adoption of Flux, a GitOps tool used for continuous delivery of applications that run on Kubernetes.

Concepts covered

Throughout the course, the following topics will be covered:

  • The history of GitOps

  • Key GitOps principles

  • The benefits of GitOps

  • Applying GitOps with Flux

  • Using Flux with Helm

  • Establishing progressive delivery strategies with Flagger

Technologies

While completing the course, we'll get hands-on experience working with the following technologies:

  • Flux

  • Kubernetes

  • kubectl

  • Docker

  • Helm

  • Flagger

  • Git

Prerequisite skills

This is an advanced course that requires a basic familiarity with the following technologies in order to be successful:

  • Kubernetes

  • Docker

  • Git

This course is not for first time users of any of these technologies. For those who find they lack the prerequisite skills, please complete other courses on the Educative platform on these topics before proceeding.

Course Outline

Chapter 1: Introduction to GitOps

This chapter introduces the concept of GitOps and explains its emergence. We'll learn why GitOps is used and how the GitOps pattern is beneficial for the operation of cloud-native systems.

Chapter 2: GitOps principles

This chapter provides in-depth explanations of the key principles underlying GitOps. We'll learn about each principle and its importance when using GitOps for operating a system. Each principle is supported by a hands-on example that we'll interact with.

Chapter 3: Architecting GitOps-based systems

This chapter introduces foundational technologies like Kubernetes and Docker that are necessary for using a GitOps approach. We'll learn about each technology and complete hands-on lessons that demonstrate their usage.

Chapter 4: GitOps in practice

This chapter explains how to use Flux, which is a continuous delivery tool that uses GitOps to manage workloads on Kubernetes. We'll walk through the steps to configure and establish the Flux resources necessary to manage workloads on a Kubernetes cluster.

Chapter 5: Using Flux with Helm

This chapter provides in-depth explanations of how Helm can be used with Flux to manage workloads on Kubernetes with GitOps. We'll learn the basics of using Helm and then see how it is integrated with Flux.

Chapter 6: Advanced deployment models with Flagger

In the final chapter, we'll learn about progressive delivery strategies and how they can be achieved using Flagger. Flagger is a progressive delivery tool that utilizes GitOps to perform deployment strategies like canary deployments and blue/green deployments.