DevOps - ESIEE 2025-2026
Gallina · Wu · Torres
Lancement
Tout lancer en une commande
make site/launchLance automatiquement Docker Desktop, le site de documentation Quartz et l’application FOC, chacun dans un onglet terminal separe, puis ouvre le site Quartz dans le navigateur des que le deploiement Cloudflare est termine.
Le deploiement complet prend quelques minutes. Docker Desktop doit demarrer, Minikube initialiser le cluster, les images Docker se construire et les pods Kubernetes passer en etat pret. Une page “Internal Error” peut s’afficher brievement au premier acces au site FOC : elle disparait automatiquement une fois tous les services up.
0 matchs affiches sur FOC ? C’est normal. Le scraper a besoin de quelques minutes pour effectuer son premier cycle de scraping sur OddsPortal. Patientez et les cotes apparaitront automatiquement.
Commandes disponibles
make site/setup # A executer une seule fois lors du premier lancement
make site/launch # Lance Docker + le site Quartz + l'application FOC
make site/update # Resynchronise le contenu et redeploie le site Quartz
make site/check # Verifie la syntaxe des scripts
make site/clean # Supprime le repertoire local du site QuartzArchitecture du projet FOC
FOC (First On Cotes) est un agregateur de cotes sportives en temps reel. Il scrape automatiquement OddsPortal toutes les 3 minutes et expose les donnees via une API Flask avec rafraichissement automatique toutes les 10 secondes.
OddsPortal --> Scraper (Selenium) --> MongoDB --> Flask API --> Frontend JS
^ ^
(toutes les 3 min) (rafraichissement auto 10s)
L’application est deployee sur un cluster Kubernetes local (Minikube) avec trois micro-services :
| Service | Type Kubernetes | Port | Role |
|---|---|---|---|
flask-app | NodePort | 5000 | Interface web et API REST |
mongodb | ClusterIP | 27017 | Base de donnees NoSQL |
scraper | Deployment | - | Worker de scraping periodique |
Stack technique
| Couche | Technologies |
|---|---|
| Backend | Python 3.12, Flask |
| Scraping | Selenium, Chromium headless |
| Base de donnees | MongoDB 7.0, PyMongo |
| Conteneurisation | Docker |
| Orchestration | Kubernetes, Minikube |
| CI/CD | GitHub Actions |
| Automatisation | Make, Bash |
Labs
Cinq travaux pratiques progressifs couvrant les fondations du DevOps, de l’infrastructure as code jusqu’au CI/CD complet.
Lab 1 — Prise en main
Introduction au DevOps avec une application Node.js simple. Decouverte de l’environnement de travail et premiers deploiements.
Lab 2 — Infrastructure as Code
Automatisation de l’infrastructure avec Ansible, Terraform/OpenTofu et Packer sur AWS :
- Provisionnement d’instances EC2 avec Ansible et inventaire dynamique par tags AWS
- Creation d’images VM preconfigureees (AMI) avec Packer
- Deploiement d’infrastructure reproductible avec OpenTofu (modules EC2, groupes de securite, paires de cles SSH)
Lab 3 — Deploiement d’applications
Quatre approches d’orchestration comparees en profondeur :
- Ansible — configuration de serveurs, rolling updates avec
serial: 1, Nginx comme load balancer - Packer + OpenTofu — images VM immuables, Auto Scaling Groups, Application Load Balancer, Instance Refresh
- Docker + Kubernetes — conteneurisation, deploiement sur cluster local et EKS, strategie RollingUpdate, registre ECR
- AWS Lambda — deploiement serverless avec API Gateway, mise a jour sans interruption
Lab 4 — Controle de version, Build Systems et Tests
Cycle de developpement DevOps complet :
- Git — branches, tags, rebase, commits signes GPG, protection de branche GitHub
- NPM — build system, gestion des dependances (
dependenciesvsdevDependencies), scripts automatises - Docker — Dockerfile optimise, images multi-plateforme avec
buildx, versions fixes pour la reproductibilite - Tests — Jest et SuperTest pour les tests unitaires et d’integration, couverture de code, Test-Driven Development (TDD)
- OpenTofu — tests d’infrastructure avec
tofu test, deploiement + validation + destruction automatique
Lab 5 — CI/CD avec Kubernetes et GitHub Actions
Pipeline CI/CD complet et securise :
- Integration Continue — workflow GitHub Actions declenche sur chaque push, tests automatises de l’application Node.js
- Authentification OIDC — credentials dynamiques a courte duree de vie, trois roles IAM distincts (testing, plan, apply)
- Livraison Continue —
tofu plansur Pull Request avec commentaire automatique,tofu applyapres fusion dansmain - Backend d’etat distant — bucket S3 chiffre + table DynamoDB pour le verrouillage concurrent
- Strategies de deploiement — Blue/Green, Canary, Feature Toggles, Promotion entre environnements
Projet FOC
La documentation complete du projet est disponible dans la section Projet : architecture detaillee, API reference, schema MongoDB, pipeline CI/CD et instructions de deploiement.
Navigation
Le site est accessible via l’Explorer sur la gauche de l’interface.