Skip to main content

Getting Started with DevOps


Table of contents

  1. Where to start?
  2. The first technical steps
  3. Building your lab
  4. Learning roadmap
  5. Recommended resources


1 - Where to start?

Assess your starting point

Prerequisites checklist

SkillRequired levelPriority
Linux basicsIntermediateHigh
Command lineComfortableHigh
GitFundamentalsHigh
Scripting (Bash/Python)BasicMedium
Networking basicsFundamentalsMedium
Cloud conceptsNotionsMedium

Self-assessment

Rate yourself from 1 (beginner) to 5 (expert):

DomainScore
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 clone
  • git add, git commit, git push, git pull
  • git branch, git checkout, git merge
  • git 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

ProviderFree offer
AWSFree tier 12 months
Azure$200 credits + free services
GCP$300 credits + always free
Oracle CloudGenerous always free tier
note

Start with a local lab to learn at no cost, then move to the cloud for more realistic projects.

ProjectSkills developed
Website with CI/CDGit, GitHub Actions, Docker
AWS infrastructure with TerraformIaC, Cloud
Monitoring stackPrometheus, Grafana
Local Kubernetes clusterK8s, 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



Books

TitleAuthorLevel
The Phoenix ProjectGene KimBeginner
The DevOps HandbookGene Kim et al.Intermediate
Site Reliability EngineeringGoogleAdvanced
Kubernetes in ActionMarko LukšaIntermediate

Learning platforms

PlatformTypePrice
Linux FoundationCertificationsPaid
KodeKloudInteractive labsFreemium
A Cloud GuruVideos + LabsPaid
freeCodeCampFreeFree
UdemyVideosPaid (frequent promos)

Free online labs

ResourceDescription
Play with DockerTemporary Docker lab
Play with KubernetesTemporary K8s lab
KatacodaInteractive scenarios
GitHub Learning LabLearn Git/GitHub

Communities

CommunityPlatform
DevOps subredditReddit
Docker CommunitySlack
CNCFSlack
DevOpsDaysConferences
Local meetupsMeetup.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

🔝 Back to table of contents


← Previous chapter | Next chapter: Exercises →