
DevOps & Docker Workshop — Session 1
A story-driven, architectural journey through modern software engineering.

A fast-growing Indian ethnic-wear brand that just wants a website that works.

Fastest growing ethnic clothing retailer online. Handcrafted kurtas, sarees, and festive wear shipped across India.

Senior Developer. Coffee enthusiast. Believed by everyone to possess infinite computing knowledge.

Senior Software Developer & Reluctant SysAdmin

Physical hardware humming under the office desk. Pure architectural simplicity.
Dual Xeon • 64GB RAM • Humming quietly near the water cooler

When you are the developer, the sysadmin, and the midnight customer hotline.
Writes product features, creates responsive layouts, builds shopping cart logic.
Configures Nginx reverse proxies, creates systemd daemons, manages SSL certificates.
Receives emergency calls when payment gateways fail at midnight on Diwali sales.

Orders are flowing, customers are shopping, and CPU temperature is holding at 42°C.

Success breeds roadmaps. Roadmaps breed unexpected horizontal expansion.
Lehar Loom
Lehar Candles
Lehar Living
Scale Challenge

Two distinct e-commerce brands under one corporate roof.
Ethnic wear portal built on Node 20. High traffic, heavy image caching.
Luxury aromatherapy website acquired from an agency, running on Node 18.

Both Lehar Loom and Lehar Candles deployed onto the same physical office server.

Loom needs Node 20 with Package X v2. Candles requires Node 18 with Package X v1.

Two applications pulling the same global library in opposite directions.
Needs: Node 20 + Package X v2
One server filesystem cannot satisfy both versions simultaneously.
Needs: Node 18 + Package X v1

The existential dread of running npm update in production.

Enter the Hypervisor: carving one physical box into discrete virtual machines.

VM 1 runs Linux + Node 20. VM 2 runs Linux + Node 18. Zero interference.

Every single VM demands its own full Guest Operating System kernel, drivers, and gigabytes of memory.
Each VM virtualizes full physical hardware and runs an entire Guest OS.
Containers share the host OS kernel via Linux namespaces & cgroups.

10 applications = 10 full guest operating systems chewing through RAM.

Priya, Rahul, Anita join the engineering ranks to accelerate feature delivery.
Senior Dev (MacBook)
Frontend Dev (MacBook)
Backend Dev (Ubuntu)
QA Engineer (Windows)

Fresh git clone, clean terminal, standard npm install.

Missing native C++ bindings, mismatched Node version, corrupted global lockfile.

Error: Cannot find module './build/Release/canvas.node'. Missing Xcode tools, Cairo headers, and Python 3.9 path.

The most notorious five-word sentence in the history of software development.

Software is an iceberg: Code + Runtime + System Libs + Env Variables + OS Config.

Bundle the code, the runtime, the libraries, and the exact dependencies into a sealed unit.
Don't just send code over git. Send the code, the exact runtime, pre-built binaries, and configuration packed in a sealed box.

Isolated process user-spaces sharing a single host operating system kernel.

Build once. Ship anywhere. Run consistently.

An immutable blueprint containing application code, runtime, libraries, and files.

Spin up one, two, or twenty identical running processes from a single immutable image.

Microservices boom: Frontend, Backend, Redis, Postgres, Auth, Payment Workers...

Tracking container health, port mappings, failover, and IP addresses by hand.

How do containers discover each other? What handles load balancing? What restarts dead services at 3 AM?

Docker helps run containers. Kubernetes helps manage them at scale.
Docker helps run containers. Kubernetes helps manage them across thousands of servers.

Declarative desired state + automatic self-healing restart loops.
👉 Click any pod below to crash it. Watch K8s auto-reconcile and revive a new healthy container!

Feature Monday, hotfix Tuesday, promo Wednesday, rollback Thursday, bugfix Friday.

Manual testing, manual ssh into servers, manual Docker build commands.

Automate the journey from git push to live production.
Merged to main
Compile assets
248 tests pass
Package image
Rollout to Prod

Every pull request triggers an automated test runner. Catch bugs before humans ever merge.

Approved commits build into Docker images and deploy to staging and production without manual SSH.

One powerful way to implement CI/CD directly within your code repository.
on: [push]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: docker build -t lehar/app:latest .
- run: kubectl set image deployment/web web=lehar/app:latest
VPCs, Subnets, EC2, Load Balancers, RDS Databases, S3 Buckets, Security Groups.

Clicking through hundreds of wizard dropdowns in the AWS/GCP web console.
Can anyone remember all 142 checkboxes, port allowances, and security groups configured over the last two years?

Infrastructure as Code (IaC).
Don't click cloud resources. Write them in declarative code and version control them.

Write declarative configuration files and let Terraform provision the cloud automatically.
Clicking 142 checkboxes, dropdowns, and subnets across 8 different web console tabs.
Define the desired state once in code. Terraform builds the entire fleet in seconds.
resource "aws_vpc" "lehar_vpc" {
cidr_block = "10.0.0.0/16"
}
resource "aws_eks_cluster" "cluster" {
name = "lehar-production"
role_arn = aws_iam_role.eks.arn
version = "1.30"
}
The unified DevOps Architecture: Containers, Automation, and Infrastructure as Code.

The complete journey of modern software from developer keystroke to global cloud.

A continuous feedback loop: Plan, Code, Build, Test, Release, Deploy, Operate, Monitor.

Clear mental models for the four pillars of modern cloud architecture.
Package & run applications consistently.
Manage & scale container fleets.
Automate testing and releases.
Infrastructure as Code.

The glue connecting code changes directly to container builds and cluster deployments.

Docker is one vital foundational piece of the larger DevOps ecosystem.
DevOps is the entire manufacturing factory and engineering culture. Docker is the standardized shipping container that makes modern factories possible.

From the high-altitude cloud map down to the core engine of containerization.
Now that you understand the entire DevOps map, the rest of this workshop is dedicated to mastering containerization with Docker.

Images, Containers, Dockerfiles, Networking, Volumes, and Docker Compose.

docker run -d -p 80:80 nginx

No more 'works on my machine'. Time to get hands-on in the terminal.
No more “works on my machine”. Time to open your code editors and terminals for hands-on Docker exercises!