Aller au contenu principal

Cours · L3

DevOps & Cloud

Progression du module

Points d’expérience : XPSérie de jours consécutifs : · —Progression du module : — / —compris

#DevOps et Cloud

DevOps est une culture et un ensemble de pratiques qui visent à unifier le développement (Dev) et les opérations (Ops). L'objectif est de livrer des changements de manière rapide, fiable et fréquente.

#Principes fondamentaux

Automatisation
Tout ce qui peut être automatisé doit l'être
CI/CD
Intégration et déploiement continus
Infrastructure as Code
Infra versionnée et reproductible
Observabilité
Logs, métriques, traces
Feedback rapide
Détecter les problèmes tôt

#CI/CD Pipeline

L'intégration continue (CI) vérifie automatiquement chaque changement de code. Le déploiement continu (CD) pousse automatiquement en production les changements validés.

yamlyaml

1# Exemple GitHub Actions2name: CI/CD3on: [push, pull_request]4 5jobs:6  test:7    runs-on: ubuntu-latest8    steps:9      - uses: actions/checkout@v410      - uses: actions/setup-node@v411        with:12          node-version: '20'13      - run: npm ci14      - run: npm test

#Infrastructure as Code (IaC)

Au lieu de configurer manuellement des serveurs, on décrit l'infrastructure dans des fichiers versionnés.

Terraform: provisionne des ressources cloud (AWS, GCP, Azure).

Ansible: configure des machines.

Pulumi: IaC en langages de programmation (TypeScript, Python).

CloudFormation: IaC spécifique AWS.

hclhcl

1# Exemple Terraform2resource "aws_instance" "web" {3  ami           = "ami-0c55b159cbfafe1f0"4  instance_type = "t2.micro"5  6  tags = {7    Name        = "web-server"8    Environment = "production"9  }10}

#Conteneurs et orchestration

Docker: empaqueter une application avec ses dépendances dans une image portable.

Kubernetes: orchestrer des conteneurs à grande échelle (scaling, self-healing, rolling updates).

bashbash

1# Build et push une image Docker2docker build -t myapp:v1 .3docker push registry.example.com/myapp:v14 5# Déployer sur Kubernetes6kubectl apply -f deployment.yaml7kubectl rollout status deployment/myapp

#Observabilité

Les trois piliers de l'observabilité permettent de comprendre ce qui se passe en production:

Logs: événements textuels horodatés. Structurés (JSON) pour être requêtables.

Métriques: valeurs numériques agrégées (latence p99, taux d'erreurs, CPU).

Traces: suivre une requête à travers plusieurs services (distributed tracing).

#Environnements et promotion

Une pratique saine consiste à déployer d'abord en staging avant la production:

Dev: environnement local ou partagé pour le développement.

Staging: réplique de la prod pour les tests finaux.

Production: l'environnement visible par les utilisateurs.

Les changements progressent de dev à staging à prod, avec des validations à chaque étape.

#Quiz

Quel est le principal avantage de l'Infrastructure as Code?
Quel est le principal avantage de l'Infrastructure as Code?

Plan du cours · 12 sections

Sections du cours