Getting Started with DevOps
Table of contents
1 - Where to start?
Assess your starting point
Prerequisites checklist
| Skill | Required level | Priority |
|---|---|---|
| Linux basics | Intermediate | High |
| Command line | Comfortable | High |
| Git | Fundamentals | High |
| Scripting (Bash/Python) | Basic | Medium |
| Networking basics | Fundamentals | Medium |
| Cloud concepts | Notions | Medium |
Self-assessment
Rate yourself from 1 (beginner) to 5 (expert):
| Domain | Score |
|---|---|
| Linux/Unix | ? |
| Git | ? |
| Scripting | ? |
| Containers | ? |
| Cloud | ? |
| CI/CD | ? |
| IaC | ? |
tip
Focus first on your most critical gaps (Linux, Git, scripting) before moving to advanced tools.
🔝 Back to table of contents
2 - The first technical steps
Step 1: Master the Linux fundamentals
Essential skills:
# Navigation et fichiers
ls, cd, pwd, mkdir, rm, cp, mv
# Visualisation
cat, less, head, tail, grep
# Permissions
chmod, chown, sudo
# Processus
ps, top, kill, systemctl
# Réseau
ping, curl, netstat, ss
Step 2: Git and GitHub
Commands to master:
git init,git clonegit add,git commit,git push,git pullgit branch,git checkout,git mergegit log,git diff,git status
Step 3: Scripting
Bash for system automation:
#!/bin/bash
# Exemple: Script de backup
DATE=$(date +%Y%m%d)
tar -czf backup_$DATE.tar.gz /path/to/data
echo "Backup completed: backup_$DATE.tar.gz"
Python for more complex scripts:
#!/usr/bin/env python3
import os
import subprocess
def check_service(service_name):
result = subprocess.run(
['systemctl', 'is-active', service_name],
capture_output=True, text=True
)
return result.stdout.strip() == 'active'
services = ['nginx', 'docker', 'postgresql']
for svc in services:
status = "UP" if check_service(svc) else "DOWN"
print(f"{svc}: {status}")
Step 4: Docker
Essential commands:
# Images
docker pull nginx
docker build -t myapp .
docker images
# Containers
docker run -d -p 80:80 nginx
docker ps
docker logs <container>
docker exec -it <container> bash
docker stop <container>
# Cleanup
docker rm <container>
docker rmi <image>
Step 5: First CI/CD pipeline
GitHub Actions example:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: echo "Building..."
- name: Test
run: echo "Testing..."
🔝 Back to table of contents
3 - Building your lab
Option 1: Local lab with Vagrant/VirtualBox
# Vagrantfile
Vagrant.configure("2") do |config|
config.vm.define "devops-lab" do |lab|
lab.vm.box = "ubuntu/jammy64"
lab.vm.network "private_network", ip: "192.168.56.10"
lab.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = 2
end
end
end
Option 2: Docker Desktop
# docker-compose.yml pour un lab DevOps
version: '3.8'
services:
jenkins:
image: jenkins/jenkins:lts
ports:
- "8080:8080"
volumes:
- jenkins_data:/var/jenkins_home
gitlab:
image: gitlab/gitlab-ce:latest
ports:
- "80:80"
- "443:443"
volumes:
- gitlab_data:/var/opt/gitlab
volumes:
jenkins_data:
gitlab_data:
Option 3: Free cloud
| Provider | Free offer |
|---|---|
| AWS | Free tier 12 months |
| Azure | $200 credits + free services |
| GCP | $300 credits + always free |
| Oracle Cloud | Generous always free tier |
note
Start with a local lab to learn at no cost, then move to the cloud for more realistic projects.
Recommended hands-on projects
| Project | Skills developed |
|---|---|
| Website with CI/CD | Git, GitHub Actions, Docker |
| AWS infrastructure with Terraform | IaC, Cloud |
| Monitoring stack | Prometheus, Grafana |
| Local Kubernetes cluster | K8s, containers |
🔝 Back to table of contents
4 - Learning roadmap
12-month roadmap
By level
Months 1-3: Fundamentals
- Linux administration
- Git and GitHub
- Bash scripting
- Python basics
Months 4-6: Containerization and CI/CD
- Docker
- Docker Compose
- GitHub Actions or GitLab CI
- Automated tests
Months 7-9: Cloud and IaC
- AWS or Azure fundamentals
- Terraform
- Ansible basics
Months 10-12: Orchestration and Monitoring
- Kubernetes basics
- Prometheus + Grafana
- ELK Stack
warning
Do not try to learn everything at once. Master each level before moving to the next.
🔝 Back to table of contents
5 - Recommended resources
Books
| Title | Author | Level |
|---|---|---|
| The Phoenix Project | Gene Kim | Beginner |
| The DevOps Handbook | Gene Kim et al. | Intermediate |
| Site Reliability Engineering | Advanced | |
| Kubernetes in Action | Marko Lukša | Intermediate |
Learning platforms
| Platform | Type | Price |
|---|---|---|
| Linux Foundation | Certifications | Paid |
| KodeKloud | Interactive labs | Freemium |
| A Cloud Guru | Videos + Labs | Paid |
| freeCodeCamp | Free | Free |
| Udemy | Videos | Paid (frequent promos) |
Free online labs
| Resource | Description |
|---|---|
| Play with Docker | Temporary Docker lab |
| Play with Kubernetes | Temporary K8s lab |
| Katacoda | Interactive scenarios |
| GitHub Learning Lab | Learn Git/GitHub |
Communities
| Community | Platform |
|---|---|
| DevOps subreddit | |
| Docker Community | Slack |
| CNCF | Slack |
| DevOpsDays | Conferences |
| Local meetups | Meetup.com |
Certifications (optional but useful)
🔝 Back to table of contents
Concrete action plan
Week 1
- Install a Linux environment (WSL, VM, or dual boot)
- Create a GitHub account
- Follow a basic Git tutorial
- Write your first Bash script
Weeks 2-4
- Complete a Linux basics course
- Master the essential Git commands
- Create your first repository and README
Month 2
- Install Docker
- Containerize a simple application
- Create your first docker-compose.yml
Month 3
- Set up your first CI/CD pipeline
- Automate the tests
- Deploy automatically
🔝 Back to table of contents
Key takeaways
- Assess your level before starting
- The fundamentals (Linux, Git, scripting) are essential
- Build a hands-on lab to experiment
- Follow a progressive roadmap over 12 months
- Practice is more important than theory
- Join communities to learn from others