
Introduce the basics of gitops, devops, and devsecops and outline a mario game case study deployed on Azure Kubernetes Service and AWS with Terraform, Argo CD, and GitHub Actions.
GitOps uses git as the single source of truth to automate continuous delivery, including integration, deployment, and security, with pull-based deployment and infrastructure managed via version control.
GitOps centers on deployments with declarative configuration in version control as the single source of truth. DevOps covers development life cycle with automation, while DevSecOps embeds security throughout the pipeline.
Explore how Terraform uses HashiCorp configuration language to blueprint and manage cloud infrastructure, apply plans, track state, and reuse code across Azure and AWS.
Explore a GitOps case study that uses Terraform to provision infrastructure on AWS and Azure. Deploy via Argo CD to Azure Kubernetes, dockerize Mario, and integrate Sonarqube and GitHub actions.
Sign up for an Azure free account, access the portal, explore 55 plus services that are always free and 13,300 credit in the first 30 days, with identity verification.
Create a free tier AWS account from sign up to console access, covering email verification, identity checks, payment verification, and initial setup.
Install the Azure CLI on your local system, verify the installation with az -v, and prepare to authenticate to Azure Portal for Terraform to create an Azure Kubernetes cluster.
Download and install Terraform on Windows by selecting the 64-bit amd64 build from HashiCorp. Add the folder to the system path and verify by running Terraform from the command prompt.
Clone the Azure cloud Terraform repo locally to learn creating an Azure Kubernetes cluster with Terraform, including init, plan, apply, and destroy.
Understand azure terraform code to create an azure kubernetes cluster using main.tf and the azurerm provider. Review variables.tf and east-us-2.tfvars, and explore system and user node pools in aks setup.
Execute Terraform on Azure to create an Azure Kubernetes cluster by authenticating with Azure CLI, then init, plan with the variable file, and apply to provision cluster and node pool.
Clone and explore the Argo CD Terraform repo to deploy Argo CD on an Azure Kubernetes cluster using Terraform, guided by the readme and prerequisites.
Learn how to install Argo CD on an Azure Kubernetes cluster using Terraform, create the Argo CD namespace, apply official manifests, and expose Argo CD via a load balancer.
Complete the prerequisites for running Terraform code to deploy Argo CD on the Azure Kubernetes cluster.
Execute Terraform to deploy Argo CD on Azure Kubernetes cluster, initialize providers, plan and apply resources, create Argo CD namespace and load balancer, verify with kubectl and log in.
Clone the AWS Terraform repo to your local system to prepare an EC2 instance with Docker and Sonar Cube for static analysis of the Mario game project.
Explore how to provision AWS infrastructure with Terraform by examining code for region, VPC ID, key pair, a sonar cube security group, and an EC2 instance with user data.
Explore the install_sonarqube.sh script that deploys docker and sonarqube on an AWS EC2 instance via Terraform, including package setup, docker config, and running the 9.9 community image on port 9000.
Execute prerequisites before Terraform: locate the VPC id in us-west-2, generate and download an AWS key pair, and update the VPC and key_name variables in the Terraform files.
Deploy AWS infrastructure with Terraform, provisioning an EC2 instance, security group, and a dockerized sonarQube setup, then access the sonarQube dashboard.
Clone the game repo locally and configure GitHub actions for a GitOps pipeline. Fork, enable actions permissions, and open the project in visual studio code for hands-on devsecops practice.
Integrate sonar cube for static security testing into a GitOps pipeline with GitHub actions. Create dot github, workflows, and a yaml file; configure sonar project and repository secrets.
Integrate SonarQube code analysis into a GitOps pipeline by adding a GitHub actions YAML workflow that runs on pushes to main, checks out code, and executes a SonarQube scan.
Create a SonarQube project, generate a token, and configure a GitHub Actions workflow to run a SonarQube scan in a GitOps pipeline, storing host URL and token as secrets.
Push your GitHub actions–based code changes and integrate SonarQube analysis into a GitOps pipeline to reveal bugs, code smells, and security hotspots in the project.
Dockerize the Super Mario game by writing a dockerfile at the repo root, using an alpine-based tomcat image and deploying to Azure Kubernetes cluster.
Create a Docker Hub account and repository for the Super Mario GitOps project, then build and push the Docker image to enable Azure Kubernetes deployment.
Carry out a hands-on GitOps workflow to build and push a Super Mario Docker image to Docker Hub via a GitHub Actions workflow, including Docker login, build, and push steps.
Create Docker Hub secrets in a GitHub repo, then build and push a Docker image to Docker Hub with GitHub actions. Prepare for dynamic tagging and container scans in GitOps.
implement dynamic tagging for the game's docker image by reading version.txt, incrementing it via an environment variable, and using the result to build and push with a sequential tag.
Implement container security scanning in a GitOps pipeline by pulling the Super Mario Docker image, running Treev vulnerability scanner, and enforcing a quality gate to pass or fail build.
Push changes to the GitHub repo to run a container scan on the Super Mario image through the devsecops workflow and learn how exit code zero lets the pipeline pass.
Deploy a Super Mario Docker image to Azure Kubernetes Service via Argo CD by connecting a GitHub repo, root deployment.yaml with image name and tag, and enabling auto sync.
Deploy a dockerized Super Mario game on Azure Kubernetes Service using Argo CD and a deployment.yaml manifest. Learn automatic GitOps sync, load balancer exposure, and future ci/cd concepts.
Overview
Dive into the world of GitOps, an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD, and applies them to infrastructure automation. This comprehensive course is designed to equip professionals with the knowledge and skills needed to implement GitOps strategies using Terraform, Kubernetes, Azure, and AWS.
What You Will Learn
Foundations of GitOps: Understand the principles behind GitOps, including version control, CI/CD, and IaC, to manage and automate your infrastructure efficiently.
Terraform Mastery: Dive deep into Terraform to manage infrastructure as code across both AWS and Azure platforms. Master the Terraform CLI, workflows, and best practices for writing, planning, and creating reproducible infrastructure states.
Kubernetes in Action: Explore how to manage and scale containerized applications using Kubernetes. Learn how to deploy, manage, and scale your applications dynamically with Kubernetes on Azure (AKS).
Multi-Cloud Strategies: Gain proficiency in using both AWS and Azure. Understand the unique features and management tools offered by each cloud provider.
GitOps Workflow Implementation: Learn how to integrate GitOps workflows into your CI/CD pipeline, leveraging tools like ArgoCD to automate deployments in a Kubernetes environment.
Security Best Practices: Understand security practices related to managing secrets, compliance standards, and access controls in a GitOps workflow.
Real-World Scenarios: Engage with hands-on labs and projects that simulate real-world scenarios to apply what you've learned in a practical setting.
Who Should Enroll
This course is ideal for DevOps engineers, cloud architects, system administrators, and software developers who wish to enhance their skills in infrastructure automation and management using cutting-edge technologies and practices.
Why Enroll in This Course
In this course, you'll move from theoretical understanding to practical application, ensuring you are job-ready to implement GitOps practices across multiple cloud environments using Terraform and Kubernetes. You'll emerge from this course with the confidence to tackle complex deployments and manage infrastructure at scale using modern DevOps and GitOps principles.