Month 4 — IaC, Config Management & Capstone Project

Terraform • Ansible • GitOps • Deployment Strategies • Complete DevOps Project

1. Infrastructure as Code (IaC) with Terraform

Terraform is an open-source IaC tool that helps you provision cloud infrastructure using declarative configuration files. It works with AWS, Azure, GCP, Kubernetes, GitHub, Kubernetes, and hundreds more via providers.

1.1 Core Terraform Concepts

1.2 Basic Terraform Workflow

terraform init
terraform plan
terraform apply
terraform destroy

1.3 Provisioning AWS Resources Using Terraform

Terraform Official Docs:
https://developer.hashicorp.com/terraform/docs

2. Configuration Management with Ansible

Ansible is an agentless configuration management tool used to automate application deployment, updates, user creation, package installation, firewall rules, etc. It connects to servers using SSH.

2.1 Essential Ansible Components

2.2 Sample Playbook

---
- hosts: webservers
  become: yes
  tasks:
    - name: Install Nginx
      apt:
        name: nginx
        state: present

2.3 What You Will Automate

Ansible Documentation:
https://docs.ansible.com/

3. GitOps & Deployment Strategies

GitOps is a modern DevOps methodology where Git is the source of truth for all infrastructure and applications. You push changes → automation tools apply them.

3.1 GitOps with ArgoCD

ArgoCD Docs:
https://argo-cd.readthedocs.io/en/stable/

3.2 Deployment Strategies

4. End-to-End DevOps Capstone Project

You will create a full production-grade DevOps pipeline integrating all technologies from Month 1 to Month 4.

Project Flow:

  1. Code Commit → GitHub repo
  2. CI Pipeline → Jenkins (build + test)
  3. Docker Image → Build & push to Docker Hub/ECR
  4. Kubernetes Deployment → K8s cluster using Deployment + Service + Ingress
  5. IaC Provisioning → Terraform creates EC2, VPC, EKS cluster
  6. Config Management → Ansible installs dependencies on servers
  7. GitOps → ArgoCD auto-syncs app updates

Deliverables