From dfb1511e7c875ba75684f0e4b7b8a89d71822f2e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 10 Aug 2026 15:22:38 +0000 Subject: [PATCH 1/6] Changescopy --- src/main/webapp/index.jsp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index a5febb751c..07d09d3162 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -3,6 +3,7 @@

HEY WE DEPLOYED OUR APP USING JENKINS

MY 2nd VERSION

+

MY Copied VERSION

From c8858d6e7d5856c79bff24430d2b4e2c14eb0825 Mon Sep 17 00:00:00 2001 From: Midhilesh <72137078+Midhilesh-19@users.noreply.github.com> Date: Mon, 10 Aug 2026 21:53:50 +0530 Subject: [PATCH 2/6] Update pom.xml Update Maven WAR plugin --- pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index 9cab804820..865ad55916 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,16 @@ + + + + + org.apache.maven.plugins + maven-war-plugin + 3.4.0 + + + From d66cd91f3a2a3f25acbc52dba07b9993ce42f7f8 Mon Sep 17 00:00:00 2001 From: Midhilesh <72137078+Midhilesh-19@users.noreply.github.com> Date: Mon, 10 Aug 2026 22:25:14 +0530 Subject: [PATCH 3/6] Update index.jsp Autobuild --- src/main/webapp/index.jsp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 07d09d3162..db5a1bfd02 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -4,8 +4,10 @@

MY 2nd VERSION

MY Copied VERSION

- +

HanGovaaaa

+ +

BloodRave

From 277d6fadb4beda17410f6333bc89bbd6aa600213 Mon Sep 17 00:00:00 2001 From: Midhilesh <72137078+Midhilesh-19@users.noreply.github.com> Date: Mon, 10 Aug 2026 22:27:57 +0530 Subject: [PATCH 4/6] Update index.jsp Chat code --- src/main/webapp/index.jsp | 275 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 263 insertions(+), 12 deletions(-) diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index db5a1bfd02..eab046968b 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -1,15 +1,266 @@ - +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + +Nova β€’ Dashboard + + + + -

HEY WE DEPLOYED OUR APP USING JENKINS

-

MY 2nd VERSION

- -

MY Copied VERSION

- -

HanGovaaaa

- -

BloodRave

- - - + +
+ + + +
+ +
+ πŸš€ Powered by Java + JSP +
+ +

+ Build something + crazy. +

+ +

+ A tiny Java web experience with a big personality. + Simple. Fast. Beautiful. +

+ +
+ +
+ +
+
⚑
+

Performance

+

Fast and lightweight web experience.

+
99%
+
+ +
+
☁️
+

Cloud Ready

+

Deploy your application anywhere.

+
24/7
+
+ +
+
πŸ”₯
+

Java Power

+

Running smoothly on your Tomcat server.

+
JSP
+
+ +
+ +
+ +

Ready to deploy? πŸš€

+ +

+ Build β†’ Package β†’ Deploy β†’ Flex 😎 +

+ + + +
+ +
+ Built with ❀️ using JSP β€’ Java β€’ Tomcat +
+ +
+ From 65403b9e6c936f496aac0a2658e9807a2c77e4c7 Mon Sep 17 00:00:00 2001 From: Midhilesh <72137078+Midhilesh-19@users.noreply.github.com> Date: Mon, 10 Aug 2026 22:31:30 +0530 Subject: [PATCH 5/6] Update index.jsp DevOps learning --- src/main/webapp/index.jsp | 590 +++++++++++++++++++++++--------------- 1 file changed, 358 insertions(+), 232 deletions(-) diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index eab046968b..52ef069f0c 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -1,266 +1,392 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page contentType="text/html;charset=UTF-8" %> + - + - - -Nova β€’ Dashboard + +DevOpsVerse πŸš€ + -
+
+ +
+ + + + + - + + - - + + -
+ + + -
- πŸš€ Powered by Java + JSP -
+ + -

- Build something - crazy. -

+ + -

- A tiny Java web experience with a big personality. - Simple. Fast. Beautiful. -

+ + DevOps + -
+ -
+

+ Welcome to + DEVOPSVERSE +

-
-
⚑
-

Performance

-

Fast and lightweight web experience.

-
99%
-
+

+ From "What is Linux?" πŸ€” + to "I deployed Kubernetes!" πŸš€ +

-
-
☁️
-

Cloud Ready

-

Deploy your application anywhere.

-
24/7
-
+
+ +
+ + +
+ +

πŸ—ΊοΈ Your DevOps Journey

+ +
+
🐧
+ +

LEVEL 1 β€” Linux

-
-
πŸ”₯
-

Java Power

-

Running smoothly on your Tomcat server.

-
JSP
-
+

+ Imagine Linux as your DevOps house. + Before learning DevOps, learn how to + walk around inside the house. +

-
+
-
+ $ whoami
+ + devops_learner + -

Ready to deploy? πŸš€

+

-

- Build β†’ Package β†’ Deploy β†’ Flex 😎 -

+ $ pwd
+ /home/devops - +

+ + $ ls
+ projects logs scripts docker
-
- Built with ❀️ using JSP β€’ Java β€’ Tomcat -
+
+ + +
+ +
🌳
+ +

LEVEL 2 β€” Git & GitHub

+ +

+ Think of Git as a time machine for your code. +

+ +
+Developer
+   |
+   | git add
+   ↓
+Staging
+   |
+   | git commit
+   ↓
+Local Repository
+   |
+   | git push
+   ↓
+☁️ GitHub
+    
+ +
+ +
🐳
+ +

LEVEL 3 β€” Docker

+ +

+ Your application says: + "It works on my machine!" πŸ˜‚ +

+ +

+ Docker says: + "Fine. I'll package the entire machine." +

+ +
+β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
+β”‚ 🐳 Docker Container         β”‚
+β”‚                             β”‚
+β”‚   Application               β”‚
+β”‚   Runtime                   β”‚
+β”‚   Dependencies             β”‚
+β”‚   Configuration             β”‚
+β”‚                             β”‚
+β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
+    
+ +
+ + +
+ +
βš™οΈ
+ +

LEVEL 4 β€” Jenkins CI/CD

+ +

+ You push code... +

+ +
+πŸ‘¨β€πŸ’» Developer
+      ↓
+   Git Push
+      ↓
+🌳 GitHub
+      ↓
+βš™οΈ Jenkins
+      ↓
+πŸ§ͺ Build
+      ↓
+πŸ” Test
+      ↓
+🐳 Docker Build
+      ↓
+πŸš€ Deploy
+    
+ +
+ + +
+ +
☁️
+ +

LEVEL 5 β€” AWS

+ +

+ Now your application leaves your laptop + and enters the cloud. +

+ +
+                 ☁️ AWS
+                   |
+        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
+        ↓          ↓          ↓
+      EC2        S3         RDS
+       πŸ–₯️         πŸ“¦         πŸ—„οΈ
+        |
+      Docker
+        |
+      App πŸš€
+    
+ +
+ + +
+ +
☸️
+ +

LEVEL 6 β€” Kubernetes

+ +

+ One container is easy. + 500 containers? + Kubernetes enters the chat. 😎 +

+ +
+                 ☸️
+            Kubernetes
+                 |
+       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
+       ↓         ↓         ↓
+    🐳 Pod    🐳 Pod    🐳 Pod
+       ↓         ↓         ↓
+     App       App       App
+    
+ +
+ + +
+ +
πŸ—οΈ
+ +

LEVEL 7 β€” Terraform

+ +

+ Stop manually clicking AWS buttons. + Tell infrastructure what you want. +

+ +
+ + resource "aws_instance" "devops" {
+   instance_type = "t3.micro"
+   ami = "amazon-linux"
+ } + +
+ +
+ + +
+ +
πŸ“Š
+ +

LEVEL 8 β€” Monitoring

+ +

+ Production is running... + but is it actually healthy? πŸ‘€ +

+ +
+CPU       β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘ 72%
+Memory    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘ 51%
+Disk      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 81%
+Requests  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘ 94%
+
+        🟒 SYSTEM HEALTHY
+    
+ +
+ + +
+ +
πŸš€
+ +

FINAL LEVEL

+ +

+ DEVOPS ENGINEER +

+ +

+ Linux β†’ Git β†’ Docker β†’ Jenkins β†’ + AWS β†’ Kubernetes β†’ Terraform β†’ + Monitoring β†’ DevSecOps +

+ +
+ + + From aef39b46078dc808b553a39e0533aa990fc647c0 Mon Sep 17 00:00:00 2001 From: Midhilesh <72137078+Midhilesh-19@users.noreply.github.com> Date: Mon, 10 Aug 2026 22:40:16 +0530 Subject: [PATCH 6/6] Update index.jsp New DevOps --- src/main/webapp/index.jsp | 3273 ++++++++++++++++++++++++++++++++++--- 1 file changed, 3017 insertions(+), 256 deletions(-) diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 52ef069f0c..af276000e4 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -1,392 +1,3153 @@ -<%@ page contentType="text/html;charset=UTF-8" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + +<% + String candidate = "DevOps Engineer"; + int xp = 8450; + int level = 12; +%> - + + -DevOpsVerse πŸš€ + + + + +DEVOPS ENGINEER OS πŸš€ - .roadmap { - max-width: 1200px; - margin: auto; - padding: 50px 20px; - } + - .terminal { - background: #050505; - border-radius: 15px; - padding: 20px; - font-family: monospace; - color: #00ff88; - text-align: left; - } + - .command { - color: white; - } - .emoji { - font-size: 70px; - } - + - + + + + -
+
- - + +πŸ”₯ 2 YEARS β†’ PRODUCTION-READY DEVOPS MINDSET + + +

+Become a +
+ +DevOps Engineer + +

+ +

+ +This is not a list of commands. + +This is a production-engineering journey: +Linux β†’ Networking β†’ Git β†’ Maven β†’ Tomcat β†’ +Docker β†’ Jenkins β†’ CI/CD β†’ AWS β†’ Terraform β†’ +Kubernetes β†’ Security β†’ Monitoring β†’ +Troubleshooting. - +

- - +

- - + +Think like an engineer. +Debug like an engineer. +Deploy like an engineer. + - - - +

- - + +START THE JOURNEY πŸš€ + - - +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + - - DevOps - +DEVOPS - + -

- Welcome to - DEVOPSVERSE -

+ -

- From "What is Linux?" πŸ€” - to "I deployed Kubernetes!" πŸš€ -

+deploy.sh + +
+ + + + + +☁️ πŸš€ ☸️ + + + +
-
+ + + + + +
+ +
+ +
+ +
+<%= level %> +Current Level +
+ +
+<%= xp %> +XP Earned +
+
+26 +Engineering Modules +
+ +
+50+ +Production Scenarios +
-
+
-

πŸ—ΊοΈ Your DevOps Journey

+
-
🐧
-

LEVEL 1 β€” Linux

+

🎯 Overall Engineering Progress

+ +
+ +
+ +
+ +
+ +72% β€” Keep building real projects. + +
+ +
+ +
+ + + -

- Imagine Linux as your DevOps house. - Before learning DevOps, learn how to - walk around inside the house. -

+
-
+
- $ whoami
- - devops_learner - +
-

+MODULE 00 - $ pwd
- /home/devops +

🧠 The DevOps Mindset

-

+

- $ ls
- projects logs scripts docker +The biggest difference between a junior and experienced +engineer is not the number of commands they know. -

+It is how they approach problems. + +

+
+
-
🌳
+
🟒
-

LEVEL 2 β€” Git & GitHub

+

Junior Thinking

-

- Think of Git as a time machine for your code. -

+

-

-Developer
-   |
-   | git add
-   ↓
-Staging
-   |
-   | git commit
-   ↓
-Local Repository
-   |
-   | git push
-   ↓
-☁️ GitHub
-    
+"Deployment failed." + +"Server is down." + +"Docker stopped." + +

-
🐳
+
πŸ”₯
+ +

Experienced Thinking

+ +

+ +What changed? + +Where exactly did it fail? + +Can I reproduce it? -

LEVEL 3 β€” Docker

+What evidence do the logs provide? -

- Your application says: - "It works on my machine!" πŸ˜‚ -

+What is the blast radius? -

- Docker says: - "Fine. I'll package the entire machine." -

+How do I prevent it from happening again? -
-β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
-β”‚ 🐳 Docker Container         β”‚
-β”‚                             β”‚
-β”‚   Application               β”‚
-β”‚   Runtime                   β”‚
-β”‚   Dependencies             β”‚
-β”‚   Configuration             β”‚
-β”‚                             β”‚
-β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
-    
+

-
βš™οΈ
+
🧠
-

LEVEL 4 β€” Jenkins CI/CD

+

Golden Rule

-

- You push code... -

+

-

-πŸ‘¨β€πŸ’» Developer
-      ↓
-   Git Push
-      ↓
-🌳 GitHub
-      ↓
-βš™οΈ Jenkins
-      ↓
-πŸ§ͺ Build
-      ↓
-πŸ” Test
-      ↓
-🐳 Docker Build
-      ↓
-πŸš€ Deploy
-    
+OBSERVE + +↓ + +IDENTIFY + +↓ + +ISOLATE + +↓ + +FIX + +↓ + +VERIFY + +↓ + +PREVENT + +

+ +
+
-
+
-
☁️
-

LEVEL 5 β€” AWS

+ -

- Now your application leaves your laptop - and enters the cloud. -

+
-
-                 ☁️ AWS
-                   |
-        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
-        ↓          ↓          ↓
-      EC2        S3         RDS
-       πŸ–₯️         πŸ“¦         πŸ—„οΈ
-        |
-      Docker
-        |
-      App πŸš€
-    
+
+ +
+ +MASTER ROADMAP + +

πŸ—ΊοΈ From Developer β†’ DevOps Engineer

+
-
+
+
🐧
+Linux +
+ +
β†’
+ +
+
🌐
+Networking +
+ +
β†’
+ +
+
🌳
+Git +
+ +
β†’
+ +
+
β˜•
+Java +
+ +
β†’
+ +
+
🐱
+Tomcat +
+ +
β†’
+ +
+
🐳
+Docker +
+ +
β†’
+ +
+
βš™οΈ
+Jenkins +
+ +
β†’
+ +
+
☁️
+AWS +
+ +
β†’
+ +
+
☸️
+Kubernetes +
+ +
+ +
+ +
+ + + + +
+ +
+ +
-
☸️
+MODULE 01 -

LEVEL 6 β€” Kubernetes

+

🐧 Linux β€” Your DevOps House

-

- One container is easy. - 500 containers? - Kubernetes enters the chat. 😎 -

+

-

-                 ☸️
-            Kubernetes
-                 |
-       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
-       ↓         ↓         ↓
-    🐳 Pod    🐳 Pod    🐳 Pod
-       ↓         ↓         ↓
-     App       App       App
-    
+Most production environments still require you to +understand processes, filesystems, permissions, +networking, services and logs. + +

+
+
-
πŸ—οΈ
+BEGINNER -

LEVEL 7 β€” Terraform

+

Filesystem

-

- Stop manually clicking AWS buttons. - Tell infrastructure what you want. -

+
+/
+β”œβ”€β”€ etc
+β”œβ”€β”€ var
+β”‚   └── log
+β”œβ”€β”€ home
+β”œβ”€β”€ opt
+β”œβ”€β”€ tmp
+β”œβ”€β”€ usr
+└── app
+
-
+
- resource "aws_instance" "devops" {
-   instance_type = "t3.micro"
-   ami = "amazon-linux"
- } -
+
+ +INTERMEDIATE + +

Processes

+ +
+ps -ef
+top
+htop
+kill PID
+kill -9 PID
+systemctl status nginx
+journalctl -u nginx
+
-
πŸ“Š
+PRODUCTION + +

Disk / Memory

+ +
+df -h
+du -sh *
+free -m
+vmstat
+iostat
+uptime
+
+ +
+ +
+ + +
+ +
+● ● ●   production-debug.sh +
+ +
+ + +# Application is down. Don't restart blindly. + + +
+ + +$ ps -ef | grep java + + +
+ + +$ ss -lntp + + +
+ + +$ df -h + + +
+ + +$ free -m + + +
+ + +$ journalctl -u tomcat --since "30 minutes ago" + + +
+ + +# Evidence first. Action second. + + +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 02 + +

🌐 Networking

+ +

+ +A DevOps engineer must understand what happens between +the browser and the application. + +

+ +
+ + +
+ +
🌍 Browser
+ +
↓
-

LEVEL 8 β€” Monitoring

+
DNS
-

- Production is running... - but is it actually healthy? πŸ‘€ -

+
↓
-
-CPU       β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘ 72%
-Memory    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘ 51%
-Disk      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘ 81%
-Requests  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘ 94%
+
πŸ”€ Load Balancer
- 🟒 SYSTEM HEALTHY -
+
↓
+ +
NGINX / Reverse Proxy
+ +
↓
+ +
🐱 Tomcat :8080
+ +
↓
+ +
β˜• Java Application
+ +
↓
+ +
πŸ—„οΈ Database :1521
+
+ + +
+
-
πŸš€
+

Know These

+ +
    + +
  • IP Address
  • +
  • DNS
  • +
  • TCP / UDP
  • +
  • HTTP / HTTPS
  • +
  • Ports
  • +
  • TLS
  • +
  • NAT
  • +
  • Subnet / CIDR
  • +
  • Firewall
  • +
  • Load Balancer
  • +
  • Reverse Proxy
  • + +
+ +
+ -

FINAL LEVEL

+
+ +

Debugging Toolkit

+ +
+ping
+curl -v
+wget
+nslookup
+dig
+telnet
+nc
+traceroute
+ss
+netstat
+
-

- DEVOPS ENGINEER -

+
-

- Linux β†’ Git β†’ Docker β†’ Jenkins β†’ - AWS β†’ Kubernetes β†’ Terraform β†’ - Monitoring β†’ DevSecOps -

+
+ + + +
+ +
+ +
+ +MODULE 03 + +

🌳 Git β€” Time Machine for Code

+ +
+ + +
+ +
+πŸ‘¨β€πŸ’» Working Directory +
+ +
↓ git add
+ +
+πŸ“¦ Staging Area +
+ +
↓ git commit
+ +
+πŸ—ƒοΈ Local Repository +
+ +
↓ git push
+ +
+☁️ GitHub +
+ +
+ + +
+ +
+git.sh +
+ +
+ +$ git clone repository + +
+ +$ git checkout -b feature/login + +
+ +$ git add . + +
+ +$ git commit -m "Add login feature" + +
+ +$ git push origin feature/login + +
+ +$ git log --oneline + +
+ +$ git diff + +
+ +$ git revert <commit> + +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 04 + +

🐱 Java + Tomcat

+ +

+ +Understand what your DevOps pipeline is actually +building and deploying. + +

+ +
+ + +
+ +
πŸ‘¨β€πŸ’» Java Source
+ +
↓
+ +
πŸ—οΈ Maven
+ +
↓
+ +
πŸ“¦ app.war
+ +
↓
+ +
🐱 Tomcat
+ +
↓
+ +
🌐 :8080
+ +
+ + +
+ +
+ +

Tomcat Concepts

+ +
    + +
  • JVM
  • +
  • WAR
  • +
  • JAR
  • +
  • Servlet
  • +
  • Connector
  • +
  • Threads
  • +
  • Heap
  • +
  • Garbage Collection
  • +
  • Connection Pool
  • +
  • Access Logs
  • +
  • catalina.out
  • + +
+ +
+ + +
+ +

Deployment

+ +
+mvn clean package
+
+scp app.war server:/tmp/
+
+cp app.war \
+/opt/tomcat/webapps/
+
+systemctl restart tomcat
+
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 05 + +

🐳 Docker β€” Package the Application

+ +

+ +Don't just learn docker run. + +Understand images, layers, containers, +networking, volumes, registries, security, +multi-stage builds and production debugging. + +

+ +
+ + +
+ +

Build #1 β€” Java Application

+ +
+ +
+ +FROM eclipse-temurin:21-jre + +

+ +WORKDIR /app + +

+ +COPY target/app.jar app.jar + +

+ +EXPOSE 8080 + +

+ +ENTRYPOINT ["java","-jar","app.jar"] + +
+ +
+ +
+ + +
+ + +
+ +

Build #2 β€” Maven + Docker

+ +
+SOURCE
+   ↓
+Maven
+   ↓
+Compile
+   ↓
+Test
+   ↓
+Package
+   ↓
+JAR
+   ↓
+Docker Image
+   ↓
+Container
+
+ +
+ + +
+ + +
+ +

πŸ”₯ Build #3 β€” Multi-Stage Docker

+ +
+ +
+ +FROM maven:3.9-eclipse-temurin-21 AS build + +

+ +WORKDIR /build + +

+ +COPY pom.xml . + +
+ +RUN mvn dependency:go-offline + +

+ +COPY src ./src + +
+ +RUN mvn clean package + +

+ + +FROM eclipse-temurin:21-jre + +

+ +WORKDIR /app + +

+ +COPY --from=build \ +/build/target/app.jar app.jar + +

+ +USER 1001 + +

+ +EXPOSE 8080 + +

+ +ENTRYPOINT ["java","-jar","app.jar"] + +
+ +
+ +
+ + +
+ + +
+ +

🐱 Build #4 β€” Docker + Tomcat

+ +
+ +
+ +FROM maven:3.9-eclipse-temurin-21 AS build + +

+ +WORKDIR /build + +

+ +COPY pom.xml . + +
+ +COPY src ./src + +

+ +RUN mvn clean package + +

+ + +FROM tomcat:10-jdk21 + +

+ +RUN rm -rf /usr/local/tomcat/webapps/* + +

+ +COPY --from=build \ +/build/target/app.war \ +/usr/local/tomcat/webapps/app.war + +

+ +EXPOSE 8080 + +

+ +CMD ["catalina.sh","run"] + +
+ +
+ +
+ + +
+ + +
+ +
+ +

Docker Commands

+ +
+docker build
+docker images
+docker ps
+docker ps -a
+docker run
+docker stop
+docker start
+docker rm
+docker rmi
+docker logs
+docker exec
+docker inspect
+docker stats
+
+ +
+ + +
+ +

Experienced Engineer Questions

+ +
    + +
  • Why is my image huge?
  • +
  • Why is the container restarting?
  • +
  • Why does it work locally?
  • +
  • Why is port 8080 inaccessible?
  • +
  • Why is the container using too much memory?
  • +
  • Why should we avoid running as root?
  • +
  • How do I make builds reproducible?
  • + +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 06 + +

βš™οΈ Jenkins CI/CD

+ +
+ + +
+ +
πŸ‘¨β€πŸ’»
Developer
+
β†’
+
🌳
Git
+
β†’
+
βš™οΈ
Jenkins
+
β†’
+
πŸ—οΈ
Maven
+
β†’
+
πŸ§ͺ
Tests
+
β†’
+
🐳
Docker
+
β†’
+
☁️
Deploy
+ +
+ + +
+ +

Production-style Jenkinsfile

+ +
+ +
+ +pipeline { + +
+ +  agent any + +

+ +  stages { + +

+ +    stage('Checkout') { + +
+      steps { +
+        checkout scm +
+      } +
+ +    } + +

+ +    stage('Build') { + +
+      steps { +
+        sh 'mvn clean package' +
+      } +
+ +    } + +

+ +    stage('Test') { + +
+      steps { +
+        sh 'mvn test' +
+      } +
+ +    } + +

+ +    stage('Docker Build') { + +
+      steps { +
+        sh 'docker build -t myapp:${BUILD_NUMBER} .' +
+      } +
+ +    } + +

+ +    stage('Deploy') { + +
+      steps { +
+        sh 'docker compose up -d' +
+      } +
+ +    } + +

+ +  } + +
+ +} + +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 07 + +

☁️ AWS Architecture

+ +
+ + +
+ +
+🌍 Internet +
+ +
↓
+ +
+Route 53 +
+ +
↓
+ +
+πŸ”€ Application Load Balancer +
+ +
↓
+ +
+☁️ VPC +
+ +
↓
+ +
+πŸ–₯️ EC2 / EKS +
+ +
↓
+ +
+🐳 Application +
+ +
↓
+ +
+πŸ—„οΈ RDS +
+ +
+ + +
+ +
+ +

Must Understand

+ +
    + +
  • VPC
  • +
  • Subnet
  • +
  • Route Table
  • +
  • Internet Gateway
  • +
  • NAT Gateway
  • +
  • Security Group
  • +
  • IAM
  • +
  • EC2
  • +
  • EBS
  • +
  • S3
  • +
  • RDS
  • +
  • ALB
  • +
  • Auto Scaling
  • +
  • CloudWatch
  • +
  • ECR
  • +
  • EKS
  • + +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 08 + +

πŸ—οΈ Terraform

+ +

+ +Infrastructure should be repeatable, reviewable +and version-controlled. + +

+ +
+ + +
+ +
+ +resource "aws_instance" "devops" { + +

+ +  ami = "ami-example" + +

+ +  instance_type = "t3.micro" + +

+ +  tags = { + +
+ +    Name = "devops-server" + +
+ +  } + +
+ +} + +

+ +terraform init + +
+ +terraform plan + +
+ +terraform apply + +
+ +terraform destroy + +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 09 + +

☸️ Kubernetes

+ +

+ +One container is simple. + +Hundreds of containers require orchestration. + +

+ +
+ + +
+ +
+☸️ Kubernetes Cluster +
+ +
↓
+ +
+Control Plane +
+ +
↓
+ +
+Worker Nodes +
+ +
↓
+ +
+ +
🐳 Pod
+
🐳 Pod
+
🐳 Pod
+ +
+ +
+ + +
+ +
+ +

Core Objects

+ +
    + +
  • Pod
  • +
  • Deployment
  • +
  • ReplicaSet
  • +
  • Service
  • +
  • Ingress
  • +
  • ConfigMap
  • +
  • Secret
  • +
  • Volume
  • +
  • Namespace
  • +
  • StatefulSet
  • +
  • DaemonSet
  • +
  • CronJob
  • + +
+ +
+ + +
+ +

Production Debugging

+ +
+kubectl get pods
+
+kubectl describe pod APP
+
+kubectl logs APP
+
+kubectl get events
+
+kubectl get svc
+
+kubectl get ingress
+
+kubectl exec -it APP -- /bin/sh
+
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 10 + +

πŸ” DevSecOps

+ +
+ + +
+ +
🌳
Source
+
β†’
+
πŸ”
SAST
+
β†’
+
πŸ“¦
Dependency Scan
+
β†’
+
πŸ”
Secret Scan
+
β†’
+
🐳
Image Scan
+
β†’
+
πŸš€
Deploy
+ +
+ + +
+ +
+ +

Security Principles

+ +
    + +
  • Least Privilege
  • +
  • IAM
  • +
  • RBAC
  • +
  • Secrets Management
  • +
  • TLS
  • +
  • Image Scanning
  • +
  • Dependency Scanning
  • +
  • Network Segmentation
  • + +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 11 + +

πŸ“Š Monitoring & Observability

+ +
+ + +
+ +
+ +

CPU

+ +

72%

+ +
+
+
+ +
+ + +
+ +

Memory

+ +

51%

+ +
+
+
+ +
+ + +
+ +

Disk

+ +

81%

+ +
+
+
+ +
+ + +
+ +

Error Rate

+ +

0.8%

+ +
+
+
+ +
+ +
+ + +
+ + +
+ +
+ +

Metrics

+ +

+CPU, memory, latency, throughput, +request rate, error rate. +

+ +
+ +
+ +

Logs

+ +

+Application logs, access logs, +system logs and audit logs. +

+ +
+ +
+ +

Traces

+ +

+Follow one request across +multiple services. +

+ +
+ +
+ +

Alerts

+ +

+Alert on meaningful symptoms, +not every tiny metric change. +

+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +MODULE 12 + +

🚨 Production Incident Simulator

+ +

+ +This is where you stop thinking like someone who +only knows commands and start thinking like an +operations engineer. + +

+ +
+ + +
+ +

🚨 INCIDENT #001

+ +

+ +Production is returning HTTP 502. + +What do you do? + +

+ + +
+ +Step 1 β€” Don't restart immediately. + +

+ +Check whether the application is alive. + +
+systemctl status tomcat
+
+ps -ef | grep java
+
+ss -lntp
+
+ +
+ + +
+ +Step 2 β€” Check logs. + +
+tail -100 catalina.out
+
+journalctl -u tomcat
+
+ +
+ + +
+ +Step 3 β€” Test locally. + +
+curl -v http://localhost:8080/app
+
+ +
+ + +
+ +Step 4 β€” Check the complete path. + +
+Browser
+ ↓
+DNS
+ ↓
+Load Balancer
+ ↓
+Reverse Proxy
+ ↓
+Tomcat
+ ↓
+Application
+ ↓
+Database
+
+ +
+ +
+ + +
+ + +
+ +

🚨 INCIDENT #002

+ +

+ +Docker container keeps restarting. + +

+ +
+ +Investigate: + +
+docker ps -a
+
+docker logs APP
+
+docker inspect APP
+
+docker stats
+
+ +Possible causes: + +
    + +
  • Application crash
  • +
  • Wrong environment variable
  • +
  • Missing dependency
  • +
  • Incorrect command
  • +
  • Port configuration
  • +
  • Memory limit
  • +
  • Health check failure
  • + +
+ +
+ +
+ + +
+ + +
+ +

🚨 INCIDENT #003

+ +

+ +Kubernetes Pod is CrashLoopBackOff. + +

+ +
+ +Start with: + +
+kubectl get pod
+
+kubectl describe pod APP
+
+kubectl logs APP
+
+kubectl logs APP --previous
+
+kubectl get events
+
+ +Never assume Kubernetes itself is broken. + +Find the failing layer. + +
+ +
+ + +
+ + +
+ +

🚨 INCIDENT #004

+ +

+ +Jenkins pipeline suddenly takes 25 minutes. + +

+ +
+ +Investigate each stage: + +
+Checkout
+Build
+Dependencies
+Tests
+Static Analysis
+Docker Build
+Push
+Deployment
+Smoke Test
+
+ +Then optimize the actual bottleneck. + +Potential improvements: + +
    + +
  • Dependency caching
  • +
  • Docker layer caching
  • +
  • Parallel tests
  • +
  • Smaller images
  • +
  • Reusable agents
  • +
  • Parallel pipeline stages
  • + +
+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +REAL PROJECT BUILDS + +

πŸ”₯ Build These Systems

+ +
+ + +
+ +
+ +
1️⃣
+ +

Java β†’ Tomcat

+ +

+Git β†’ Maven β†’ WAR β†’ Tomcat β†’ Browser +

+ + +FOUNDATION + + +
+ + +
+ +
2️⃣
+ +

Java β†’ Docker

+ +

+Git β†’ Maven β†’ JAR β†’ Docker β†’ Container +

+ + +CONTAINERS + + +
+ + +
+ +
3️⃣
+ +

Docker + Tomcat

+ +

+Maven β†’ WAR β†’ Tomcat Image β†’ Container +

+ + +ENTERPRISE + + +
+ + +
+ +
4️⃣
+ +

Jenkins CI/CD

+ +

+GitHub β†’ Jenkins β†’ Build β†’ Test β†’ Docker β†’ Deploy +

+ + +AUTOMATION + + +
+ + +
+ +
5️⃣
+ +

AWS Deployment

+ +

+Jenkins β†’ Docker β†’ ECR β†’ EC2 β†’ Application +

+ + +CLOUD + + +
+ + +
+ +
6️⃣
+ +

Kubernetes

+ +

+Jenkins β†’ Docker β†’ Registry β†’ Kubernetes β†’ Service +

+ + +ADVANCED + + +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +INTERVIEW MODE + +

🎯 Think Like a 5-Year Candidate

+ +
+ + +
+ + +
+ +

🟒 Beginner

+ +

+What is Docker? +

+ +
+ +Docker packages applications and their dependencies +into portable containers. + +
+ +
+ + +
+ +

🟑 Intermediate

+ +

+Image vs Container? +

+ +
+ +An image is an immutable package/template. + +A container is a running instance of an image. + +
+ +
+ + +
+ +

πŸ”΄ Advanced

+ +

+ +Your Docker image is 1.5GB. + +How would you reduce it? + +

+ +
+ +Think: + +Multi-stage builds. + +Smaller base image. + +Remove unnecessary packages. + +Use `.dockerignore`. + +Reduce layers. + +Do not ship build tools into runtime. + +
+ +
+ + +
+ +

πŸ”₯ Production

+ +

+ +Your deployment succeeded but users +still receive errors. What do you check? + +

+ +
+ +Deployment success does not equal application health. + +Check: + +Load balancer. + +Application health. + +Logs. + +Metrics. + +Dependencies. + +Database. + +Network. + +Recent configuration changes. + +
+ +
+ + +
+ +
+ +
+ + + + +
+ +
+ +
+ +ENGINEERING MINDSET + +

🧠 Junior vs Experienced

+ +
+ + +
+ +
+ +

❌ Junior

+ +

+"Server is slow." +

+ +
+ + +
+ +

πŸ”₯ Experienced

+ +

+CPU? + +Memory? + +Disk I/O? + +Network? + +JVM GC? + +Threads? + +Database? + +External dependency? + +Traffic spike? + +Recent deployment? +

+ +
+ + +
+ +

❌ Junior

+ +

+"Jenkins failed." +

+ +
+ + +
+ +

πŸ”₯ Experienced

+ +

+Which stage? + +What changed? + +Is the failure reproducible? + +Code? + +Dependency? + +Credential? + +Agent? + +Infrastructure? + +Environment? +

+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +FINAL PROJECT + +

πŸ† Production-Style DevOps Architecture

+ +
+ + +
+ +
+🌍 USERS +
+ +
↓
+ +
+Route 53 +
+ +
↓
+ +
+πŸ”€ Application Load Balancer +
+ +
↓
+ +
+☸️ Kubernetes / EKS +
+ +
↓
+ +
+🐳 Application Pods +
+ +
↓
+ +
+πŸ—„οΈ RDS +
+ +
+ +
+ +CI/CD + +

+ +GitHub +β†’ Jenkins +β†’ Maven +β†’ Tests +β†’ SonarQube +β†’ Trivy +β†’ Docker +β†’ ECR +β†’ EKS + +
+ +
+ +
+ +OBSERVABILITY + +

+ +Prometheus +β†’ Grafana +β†’ Alerts + +
+ +
+ +
+ +
+ + + + +
+ +
+ +
+ +JOB READY CHECKLIST + +

πŸ† Can You Explain These?

+ +
+ + +
+ +
+ +

🐧 Linux

+ +

β˜‘ Processes

+

β˜‘ Services

+

β˜‘ Permissions

+

β˜‘ Logs

+

β˜‘ Disk / Memory

+ +
+ + +
+ +

🐳 Docker

+ +

β˜‘ Images

+

β˜‘ Containers

+

β˜‘ Networks

+

β˜‘ Volumes

+

β˜‘ Multi-stage builds

+ +
+ + +
+ +

βš™οΈ Jenkins

+ +

β˜‘ Pipeline

+

β˜‘ Webhook

+

β˜‘ Agents

+

β˜‘ Credentials

+

β˜‘ Deployment

+ +
+ + +
+ +

☁️ AWS

+ +

β˜‘ VPC

+

β˜‘ EC2

+

β˜‘ IAM

+

β˜‘ ALB

+

β˜‘ RDS

+ +
+ + +
+ +

☸️ Kubernetes

+ +

β˜‘ Pods

+

β˜‘ Deployments

+

β˜‘ Services

+

β˜‘ Ingress

+

β˜‘ Troubleshooting

+ +
+ + +
+ +

🚨 Production

+ +

β˜‘ Incident response

+

β˜‘ Root cause analysis

+

β˜‘ Monitoring

+

β˜‘ Rollback

+

β˜‘ Prevention

+ +
+ +
+ +
+ +
+ + + + +
+ +
+ +

πŸš€ DEVOPS ENGINEER OS

+ +

+ +Learn the technology. + +Understand the architecture. + +Build it. + +Break it. + +Debug it. + +Automate it. + +Monitor it. + +Then explain it like an engineer. + +

+ +

+ +Single JSP β€’ Embedded UI β€’ Embedded JavaScript β€’ +Embedded SVG β€’ DevOps Learning System + +

+ +
+ +
+ + + + + + +