DevOps is a practice that combines development and operations to build, test and release software faster and more reliably. It focuses on automation, collaboration and continuous delivery to improve software quality and speed.
- Helps teams release software faster with automation
- Reduces manual errors and improves reliability
- Enables continuous integration and deployment
- Improves collaboration between development and operations teams
Basics
This section introduces the core concepts, basic workflow, and key terms used in DevOps.
Linux
Linux is widely used in servers and cloud environments. This section covers essential commands, system operations, and networking basics required for DevOps.
- Linux Introduction
- Linux Commands for DevOps
- SSH
- File management in Linux
- Linux Permissions
- System Monitoring
- Linux Firewall
Networking
Networking helps understand how systems communicate and how to identify and fix issues across different layers.
- View Network Interface
- Network Devices
- Routing
- Ping command
- OSI Model
- DNS
- TCP/IP Model
- Firewalls
- Network Protocol
System Design
System design explains how applications are structured for scalability, availability and performance in real-world environments.
- Monolithic Architecture
- Microservices
- Event Driven Architecture
- Scalability
- Availability
- CAP Theorem
- Load Balancing
- Proxy Servers
Source Code Management
Source code management helps track and manage code changes. Git and GitHub are commonly used tools for version control.
- Version Controlled Systems
- Introduction and Installation of Git
- How Git Works
- Introduction to GitHub
- Useful Git Commands and Basic Concepts
- Essential Git Commands
- Branching Strategies in Git
- Merge Strategies
- Basic Git Commands with Examples
Scripting
Scripting is used to automate repetitive tasks, making processes faster and reducing human errors.
- YAML Introduction
- Introduction to Linux Shell Scripting
- Shebang
- How to create a Shell Script
- Conditional Statements
- Loops
- Scheduling Tasks
- Automation Script
Cloud Platform
Cloud platforms provide infrastructure and services required to build and run modern applications.
Docker
Docker helps package applications into containers, making them easy to deploy and run consistently across environments.
- Introduction
- Docker Architecture
- Docker Commands
- Dockerfile
- Docker Images
- Introduction to Docker Compose
- Docker Volume
- Docker Networking
- Docker Ports
- Docker Registry
Kubernetes
Kubernetes is used to orchestrate and manage Docker containers at scale.
- Introduction to Kubernetes
- Architecture
- Pods
- Kubernetes Deployments
- Deployment Strategies
- Services
- Scheduling
- Taint and Tolerations
- Namespace
- Kubernetes Volumes
- Kubernetes Secrets
- Kubernetes
- Kubectl
- Ingress
- RBAC
- ConfigMap
CI/CD
CI/CD automates the process of building, testing, and deploying applications, making releases faster and more reliable.
- What is CI/CD?
- What is Jenkins?
- How to install Jenkins in Ubuntu
- Working with Jenkins Plugins
- How to Make a CI-CD Pipeline in Jenkins?
- Deploy an application using Jenkinsfile
Infrastructure as a Code
Infrastructure as Code (IaC) allows managing infrastructure using code, making deployments consistent and repeatable.
- Introduction to Terraform
- Terraform Syntax With Examples
- Terraform Resources
- Terraform Modules
- Create an EC2 with Terraform
- Introduction to AWS Cloudformation
Monitoring
Monitoring helps track system performance and detect issues early using metrics, logs and alerts.
- Types of Monitoring in System design
- What is Promethus Monitoring
- What is Scrape Config in Prometheus
- Promethus Collector Registry
- Promethus Blackbox Exporter
- Grafana
- how to use grafana to visualize metrics