
Explain using git fork to create a private copy for contributing to a repository with write access disabled, and using git clone for local copies when not contributing.
Learn how git fetch updates your local repository with the latest commits, branches, and tags from a remote; git pull combines fetch with merge or rebase.
Explain when to use git pull versus git fetch, noting that git pull keeps the repo up to date for CI/CD checks, while git fetch with cherry-pick suits experimental work.
Demonstrate git rebase versus git merge with a sample repository, showing how commit order differs when integrating main and a feature branch, and how rebase changes the history.
Explain git merge versus git rebase in interviews: merge preserves full history with a merge commit, while rebase creates a cleaner linear history.
Explain three git challenges faced in a prior role: implementing a modified trunk-based branching strategy, tightening access control, and enforcing git hygiene with dot gitignore, pre-commit hooks, and webhooks.
Respond to a Kubernetes secret accidentally committed to git by revoking it, cleaning history with BFG, rotating credentials, and preventing future pushes with pre-commit hooks and education.
Investigate high disk usage on a Linux instance and locate /var/logs. Prevent 100% utilization by rotating, archiving, or deleting old logs, and cleaning apt caches.
Troubleshoot ssh to an instance by verifying the IP address, PEM file and its permissions, firewall status, security groups on port 22, and the sshd service with systemctl.
Scenario:
Your application generates large logs in /var/log/myapp/ and there's no log rotation setup.
Task:
Write a shell script that compresses logs older than 7 days and deletes logs older than 30 days. Also, run it daily via cron.
Bulk User Creation from CSV
Scenario:
You’ve received a CSV file with a list of usernames and passwords to create users on a Linux system.
Task:
Write a shell script to read the CSV and:
Create each user with the specified password.
Force password change on first login.
INPUT:
services=("nginx" "sshd" "docker")
OUTPUT:
-----------------------------------
Service Health Check Report
-----------------------------------
nginx is ✅ RUNNING
-----------------------------------
sshd is ✅ RUNNING
-----------------------------------
docker is ❌ STOPPED
Attempting to restart docker...
docker has been ✅ restarted successfully.
-----------------------------------
Use the Linux find command to locate files over 100 MB for disk cleanup, then preview and delete them (with sudo and -exec) to free space on a VM.
Command:
last -F | grep "$(date '+%b %e')" | awk '{print $1}' | sort | uniq
Explore local variables scoped to a shell script, environment variables created with export for global access, and special variables like $?, $0, and $1 for status and arguments.
Explain the OSI model by tracing a client request from browser to server across layers seven to one, including http/https, tls/ssl, cookies, and packet routing.
Learn how dns resolution causes curl to fail with domain names but succeed with ip addresses, and fix it by setting nameserver 8.8.8.8 in resolv.conf.
Discover five day-to-day maven build targets: clean, compile, test, package, and install. Learn how these steps compile code, run tests, package artifacts, and publish to local or remote repositories.
Explain how the Terraform state file acts as the brain, storing resource IDs, metadata, IPs, and last known state to guide plans and updates.
Terraform state locking in remote backends prevents conflicts when two engineers run apply concurrently; the first wins the lock and creates the VPC, the second may fail.
Learn how to store the Terraform state file on premises using remote backends like HashiCorp console or Terraform Enterprise, without cloud accounts, with state locking and drift detection.
Understand the difference between resources and data sources in Terraform, where resources create, modify, or delete cloud provider assets, while data sources read existing cloud information.
Learn the true role of the EXPOSE keyword in a Dockerfile as metadata for port documentation, not for publishing, and how Docker Compose uses it for inter-service communication.
Learn how Docker image caching can hide code changes after a rebuild and how to force a fresh build with docker build --no-cache to reflect updates.
Learn when to forcefully remove a container and how, covering stuck or unresponsive containers, continually restarting containers, and CI/CD pipeline scenarios using docker rm -f and docker ps.
Control Plane (Master) Components
kube-apiserver
The central API endpoint (https://<master>:6443)
Authenticates, validates, and processes all REST requests (e.g., kubectl apply)
Stores state changes in etcd
etcd
A strongly consistent key–value store
Holds the entire cluster state and configuration data
kube-scheduler
Watches for newly created Pods with no assigned node
Selects an appropriate node based on resource requirements, affinity/anti-affinity, taints/tolerations, and other policies
kube-controller-manager
Runs control loops (“controllers”) that reconcile desired vs. actual cluster state, e.g.:
Node Controller: detects unhealthy nodes
Replication Controller: ensures the right number of Pod replicas
Endpoint Controller: populates Service→Pod mappings
Job Controller, DaemonSet Controller, etc.
Learn why hardcoding pod IPs fails in Kubernetes as pods are ephemeral. Discover how services use labels and selectors to provide stable communication and avoid outages.
Compare NodePort and LoadBalancer Kubernetes service types, focusing on access scope and external exposure. Learn when to use each based on VPC access and Cloud Controller Manager availability.
Explain deployment strategies used, highlighting blue-green and canary approaches: create a new environment with a load balancer for v2, and gradually roll out traffic while ensuring easy rollback.
Learn how taints on a Kubernetes node marked no schedule can be overridden by pod tolerations, enabling exception scheduling during maintenance or upgrades.
Explain how node affinity, the modern alternative to node label selector, uses required during scheduling and preferred during scheduling to place pods on labeled nodes.
Explain how Kubernetes assigns quality of service by pod resource requests and limits, classifying pods as best effort, Burstable, or guaranteed, guiding eviction during memory pressure.
Diagnose app slowness by enabling debug mode, checking Grafana/Prometheus metrics, and using distributed tracing (Jaeger) to map the request path and identify latency sources.
Explain what AWS NAT is, how a NAT gateway enables private subnets to access the internet, and why it translates source addresses for secure outbound traffic.
Understand what trust policy means in AWS and why it is used. Learn how an IAM role can be temporarily assumed via STS by services like Lambda to access DynamoDB.
Learn cross-account access: enable a lambda in account a to access dynamodb in account b via IAM roles, STS, trust policies, and get item.
Compare AWS Secrets Manager and Systems Manager Parameter Store for sensitive data in CI/CD pipelines; use Parameter Store for basic security or Secrets Manager for rotation and cross-account sharing.
Understand the difference between IAM user and IAM role, highlighting long-term identities for users and short-term identities that services or applications can assume to access AWS resources like EC2.
Ultimate DevOps and Cloud Interview Guide that covers topic by topic scenario based Interview questions with detailed notes through a GitHub Repository. All the Interview questions are collected from candidates who are actively attending Interviews for DevOps and Cloud roles.
This course covers following topics:
- Git
- Linux
- Networking
- CI/CD
- Terraform
- Docker
- Kubernetes
- Observability
- AWS
- Azure
- Project related and SDLC
GitHub repository associated with the notes has all the questions in the exact order of the course. Each question has a MD file in the repository which covers the detailed explanation of the answer for your quick reference. Questions added to this course in the future will also be updated in the GitHub repository in the same way.
The main goal of the course is to make every DevOps and Cloud aspirants job ready. If you are planning to attend Interviews or failing in clearing the Interviews currently then this course is absolutely for you. All the questions are organized to for the better experience of the user. You will find questions on various topics and sub-topics on DevOps.
Key Takeaways from the course:
- Interview Readiness
- Upskill with latest scenario based Interview Questions
- Approach to answer any scenario based Interview Question confidently.
Happy learning.