Skip to content

kmitsolution/Mastering-DevOps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mastering DevOps Outline

Course Level
DevOps Tools


Git GitHub Docker Kubernetes Ansible Jenkins Maven Selenium


πŸ“‘ Table of Contents

  1. πŸ“ SDLC Overview
  2. πŸ™ Git & GitHub
  3. β˜• Maven (Build Automation Tool)
  4. 🐳 Docker (Containerization)
  5. ☸️ Kubernetes (Orchestration Tool)
  6. πŸ§ͺ Selenium (Test Automation)
  7. πŸ“¦ Ansible (Configuration Management)
  8. βš™οΈ Jenkins (CI/CD Pipeline)

πŸ“ SDLC Overview

SDLC

  • Methodologies: Waterfall, Agile, Lean, Scrum
  • DevOps Process: CI/CD Pipeline

πŸ™ Git & GitHub (Version Control System)

Git
GitHub

  • Version Control System
  • Git Installation Steps
  • Create a GitHub Account
  • Git Configuration
  • Git Workflow Commands
  • Git Squash
  • Git Reset Command
  • Git Revert Command
  • Git .gitignore File
  • Git diff Command
  • Git Sync with GitHub (pull, fetch, merge, push)
  • Git Branches
  • Git Remote Branches (Merge vs Rebase)
  • Git Cherry-pick
  • Git Stash
  • Git WorkTree
  • Git Tags
  • Git Assignment

β˜• Maven (Build Automation Tool)

Maven

  • Build Automation Tool Overview
  • Maven Overview
  • Maven Installation
  • Maven Commands

🐳 Docker (Containerization)

Docker

  • Docker Overview
  • Docker Containers vs Virtual Machines
  • Docker Installation
  • Docker Images
  • Docker Containers
  • Docker Custom Images
  • Docker Save & Load Images
  • Docker Registry
  • Dockerfile
  • Docker Storage
  • Docker Networking
  • Docker Compose
  • Docker Swarm
    • Swarm Setup
    • Swarm Visualizer
    • Swarm Service & Service Commands
    • Stacks
    • Backup & Restore

☸️ Kubernetes (Container Orchestration Tool)

Kubernetes

  • Introduction
  • Kubernetes Installation using kubeadm
  • etcd Server
  • Pod Overview
  • Kubernetes Design Pattern
  • Assigning Pods to Nodes
  • Static Pods
  • ConfigMaps
  • Secrets
  • Replication Controller
  • Replica Set
  • Deployment
  • Jobs
  • Namespaces
  • Dashboard
  • Volumes
  • Liveness and Readiness Probes
  • Helm Charts
  • Metrics Server
  • StatefulSet
  • Horizontal Pod AutoScaling (HPA)
  • Prometheus
  • Grafana

πŸ§ͺ Selenium (Test Automation)

Selenium

  • Test Automation Overview
  • Selenium Overview
  • Selenium Integration with Java

πŸ“¦ Ansible (Configuration Management Tool)

Ansible

  • Ansible Introduction
  • Ansible Installation
  • Ansible Inventory File
  • Ansible Ad-hoc Commands
  • Ansible Playbooks
  • Ansible File Module
  • Ansible Jinja Template
  • Ansible Vault
  • Ansible Roles

βš™οΈ Jenkins (CI/CD Pipeline)

Jenkins

  • Jenkins Overview
  • Jenkins Installation
  • Jenkins Jobs
  • Manage Jenkins
  • Maven Integration with Jenkins
  • Docker Integration with Jenkins
  • Kubernetes Integration with Jenkins
  • Webhook with GitHub Repository
  • Blue Ocean CI/CD Pipeline
  • Jenkinsfile

πŸŽ“ Capstone Project: DevOps Case Study (To be Delivered by Students)

πŸ“Œ Project Title:

E-Commerce Web Application Deployment Using DevOps

πŸ“– Case Study Scenario:

A startup ShopEasy wants to build and deploy its Java-based e-commerce web application with the following requirements:

  • The application must go through a complete SDLC pipeline (development β†’ testing β†’ deployment).
  • The company wants automated builds, containerization, CI/CD pipelines, configuration management, and monitoring.
  • Your job is to design, implement, and document the end-to-end DevOps pipeline using the tools learned in the course.

πŸ› οΈ Problem Statement:

Students must design and implement a CI/CD pipeline for ShopEasy with the following deliverables:


πŸ“‘ Tasks & Requirements (Point-Wise):

1. Source Code Management (Git & GitHub πŸ™)

  • Create a GitHub repository for ShopEasy.
  • Push the Java e-commerce app source code into the repository.
  • Create branches (dev, test, prod) and demonstrate branching strategies.
  • Use Git workflow commands: commit, merge, rebase, squash, cherry-pick.
  • Protect the main branch with PR approvals.

2. Build Automation (Maven β˜•)

  • Configure Maven to build the Java project.
  • Generate the .war or .jar file.
  • Define custom Maven profiles for dev, test, and prod.

3. Containerization (Docker 🐳)

  • Create a Dockerfile for the application.
  • Build custom Docker images from the Maven build.
  • Run the app inside a Docker container.
  • Push the image to Docker Hub / private registry.

4. Orchestration (Kubernetes ☸️)

  • Deploy the Dockerized app to a Kubernetes cluster.

  • Create Kubernetes objects:

    • Deployment
    • Service (NodePort / LoadBalancer)
    • ConfigMaps & Secrets for environment variables
    • Persistent Volume for data storage
  • Enable Horizontal Pod Autoscaling (HPA).

  • Install Prometheus & Grafana for monitoring.


5. Configuration Management (Ansible πŸ“¦)

  • Write Ansible Playbooks to:

    • Install Docker & Kubernetes on nodes.
    • Configure cluster nodes with required packages.
    • Automate deployment of the app onto Kubernetes.

6. CI/CD Pipeline (Jenkins βš™οΈ)

  • Set up a Jenkins pipeline (using Jenkinsfile).

  • Stages should include:

    1. Checkout code from GitHub
    2. Build using Maven
    3. Run Unit Tests
    4. Build Docker Image
    5. Push Image to registry
    6. Deploy to Kubernetes
  • Use Webhooks for auto-trigger from GitHub commits.

  • Use Blue Ocean for visualization.


7. Test Automation (Selenium πŸ§ͺ)

  • Write Selenium test scripts to:

    • Verify login, signup, add-to-cart, and checkout flows.
  • Integrate Selenium tests into the Jenkins pipeline (run after build stage).


8. Monitoring & Logging (Bonus 🎯)

  • Configure Prometheus for metrics (CPU, memory, pod health).
  • Configure Grafana dashboards for visualization.
  • Use Kubernetes logs (kubectl logs) to debug issues.

Final Deliverables

Students must deliver the following:

  1. GitHub Repository with source code + branching strategy.
  2. Maven Build setup.
  3. Docker Image pushed to registry.
  4. Kubernetes Deployment YAMLs.
  5. Ansible Playbooks for automation.
  6. Jenkins CI/CD Pipeline with Jenkinsfile.
  7. Selenium Test Reports.
  8. Monitoring Dashboard (Prometheus + Grafana screenshots).
  9. Case Study Report (Documentation) explaining the entire pipeline.

About

DevOps Tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published