DevOps and Cloud Engineering Learning Path


1. Basics of SDLC
Understand how is a software created and where do “DevOps” fall in Software Development Life Cycle.

- You don't have to get too detailed; just a grasp of software deployment processes and DevOps basics is sufficient.
What is DevOps?
DevOps = Development + Operations
Imagine building a toy in a factory (development) and then delivering it to stores (operations). DevOps is the smooth teamwork between these two — so the toy (or your software) gets made faster, better, and with fewer breakdowns.
2. Operating System (Linux🐧)
As a DevOps engineer, you manage the servers where applications run.
Linux is the go-to choice for servers, and Most DevOps tools are Linux-based; so knowing linux commands helps a lot in server management and handling Devops Tasks.

✏️ Things you can do to practice Linux:
Web Server setup
Database setup
User and Group Management
Install Different Devops tools (docker, jenkins, terraform etc)
Popular Linux Distributions: Ubuntu, CentOS, Debian, Arch linux and more.Best way to learn is to have Linux as OS for your laptop, but you can also spin up servers on Cloud, WSL or virtualbox. |
3. Scripting/Programming
After you learn the basics of Linux, use your knowledge to create scripts.


✏️ How is scripting used in DevOps
Backup Automation
Working with APIs
Integration with other devops tools
System Cleanup Automation
Email Notification Script
Software Update Automation
Log Analysis Automation
Network Diagnostics Script
Data Transformation Automation
User Account Management Script

4. Git for Version Control

Version control, using Git, is important for tracking changes in code, collaborating with teams, ensuring a reliable history of software development, and facilitating essential DevOps practices such as CI/CD, GitOps, and storing Infrastructure as Code (IaC) files.

Git is Important to work as DevOps engineer but also helps if want to make open source contributions 👍
5. Networking & Security 🔐

Network Fundamentals
OSI Model - In-depth
TCP/IP Protocol Suite
Internet Protocols ( HTTP, HTTPS, SSH, SMTP, ICMP, etc)
How to analyze network packets using tools such as Wireshark
DDOS attack and how to mitigate that
CIDR and Subnetting
DNS and DHCP
Vertical V/s Horizontal Scaling
SSL/TLS, symmetric vs asymmetric encryption and how it works :
Reverse Proxy V/s Forward Proxy V/s load balancer
Troubleshooting application slowness, latency, unavailability etc
RAID
NAS vs SAN storage
SQL vs NoSQL
DB Sharding, Caching etc
6. Learn any one Cloud
- Companies now prefer deploying applications on cloud providers like AWS, Azure, or GCP instead of on-premise. This shift enables organizations to take advantage of the scalability, flexibility, and cost efficiency provided by cloud services.

AWS is most popular cloud provider. Other popular ones are Microsoft azure, Google cloud Platform, Oracle cloud etc.
What should you know as a DevOps Engineer:
for AWS, you should know the basics of:
1. VPC (Virtual Private Cloud): Create isolated networks.
2. EC2 (Elastic Compute Cloud): Manage virtual servers.
3. S3 (Simple Storage Service): Scalable object storage.
4. RDS (Relational Database Service): Managed databases.
5. IAM (Identity and Access Management): Secure access control.
6. Lambda: Serverless code execution.
7. Route 53: Scalable DNS service.
8. CloudWatch: Monitoring and observability.
9. EKS (Elastic Kubernetes Service): Managed Kubernetes service for container orchestration
7. Microservices and Containerization (Docker)📦
- Microservices is the new way to deploy applications independently for better scaling and management, and they are packaged in a container. 📦


- Docker is the most popular container technology.
# Docker Fundamentals
├── Container Basics
├── Dockerfile Creation, Multi-Stage Builds
├── Image Management
├── Docker Compose
├── Container Networking
├── Docker Best Practices
└── Volume Management
How to push and pull docker images in DockerHub
8. Container Orchestration (Kubernetes)
- When using microservices an application can have hundreds or thousands of containers on multiple servers. Managing, scaling and other operations for these containers require container orchestration tools like Kubernetes.

9. CICD Pipelines
- CICD is really important to know!!! Because every company deploys software in automated fashion using CICD.

CI = Continuous Integration
CD = Continuous Delivery/Deployment
CI/CD is like a smart robot that checks your code and puts it live automatically!
- CI/CD Pipeline ensures that each code change, whether introducing new features or fixing bugs, seamlessly integrates into the existing application and deploys continuously and automatically for end-users. This automation streamlines development processes, promotes consistency, and speeds up the delivery of software innovations.

- Popular CICD tools : Gitlab CI, GitHub Actions, Jenkins, Circle CI.
10. Infrastructure as Code 📃
- Tools like Terraform and Ansible uses the IaC concept to automate the manual creation and configuration which are time consuming and error prone.

Using IAC we code to create and configure infrastructure & there are 2 types of IAC tools:
Infrastructure Provisioning
Configuration Management

Benefits of having everything in code -
Ensures consistency accross different environments (stage, dev, prod)
Can be stored and version controlled and collaborated.
Less chances of issues or configuration errors.
Saves time avoiding to repeat creation and configuration.
11. Monitoring and Logging
- Once the software is released you need to continuosly monitor it to track performance and discover problems


- Popular tools used for Observability: Prometheus, Grafana, Cloudwatch, Nagios, ELK etc
Work on Projects 👨💻
Now combine everything:
Build an app → containerize with Docker → deploy on Kubernetes → automate with CI/CD → monitor with Prometheus
🛠️ Example Projects:
To-Do app CI/CD pipeline
Dockerize a portfolio website
Deploy a Flask app using Terraform + AWS



