- π SDLC Overview
- π Git & GitHub
- β Maven (Build Automation Tool)
- π³ Docker (Containerization)
- βΈοΈ Kubernetes (Orchestration Tool)
- π§ͺ Selenium (Test Automation)
- π¦ Ansible (Configuration Management)
- βοΈ Jenkins (CI/CD Pipeline)
- Methodologies: Waterfall, Agile, Lean, Scrum
- DevOps Process: CI/CD Pipeline
- Version Control System
- Git Installation Steps
- Create a GitHub Account
- Git Configuration
- Git Workflow Commands
- Git Squash
- Git Reset Command
- Git Revert Command
- Git
.gitignoreFile - Git
diffCommand - 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
- Build Automation Tool Overview
- Maven Overview
- Maven Installation
- Maven Commands
- 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
- 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
- Test Automation Overview
- Selenium Overview
- Selenium Integration with Java
- Ansible Introduction
- Ansible Installation
- Ansible Inventory File
- Ansible Ad-hoc Commands
- Ansible Playbooks
- Ansible File Module
- Ansible Jinja Template
- Ansible Vault
- Ansible Roles
- 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
E-Commerce Web Application Deployment Using DevOps
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.
Students must design and implement a CI/CD pipeline for ShopEasy with the following deliverables:
- 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
mainbranch with PR approvals.
- Configure Maven to build the Java project.
- Generate the
.waror.jarfile. - Define custom Maven profiles for dev, test, and prod.
- 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.
-
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.
-
Write Ansible Playbooks to:
- Install Docker & Kubernetes on nodes.
- Configure cluster nodes with required packages.
- Automate deployment of the app onto Kubernetes.
-
Set up a Jenkins pipeline (using
Jenkinsfile). -
Stages should include:
- Checkout code from GitHub
- Build using Maven
- Run Unit Tests
- Build Docker Image
- Push Image to registry
- Deploy to Kubernetes
-
Use Webhooks for auto-trigger from GitHub commits.
-
Use Blue Ocean for visualization.
-
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).
- Configure Prometheus for metrics (CPU, memory, pod health).
- Configure Grafana dashboards for visualization.
- Use Kubernetes logs (
kubectl logs) to debug issues.
Students must deliver the following:
- GitHub Repository with source code + branching strategy.
- Maven Build setup.
- Docker Image pushed to registry.
- Kubernetes Deployment YAMLs.
- Ansible Playbooks for automation.
- Jenkins CI/CD Pipeline with
Jenkinsfile. - Selenium Test Reports.
- Monitoring Dashboard (Prometheus + Grafana screenshots).
- Case Study Report (Documentation) explaining the entire pipeline.