1. Pourquoi les conteneurs #
« Ça marche sur ma machine » ne suffit plus.
Les apports #
- Un artefact unique et reproductible qui contient l'application et ses dépendances.
- La parité entre développement, test et production (12 facteurs, facteur X).
- Un démarrage en secondes, adapté à la mise à l'échelle et aux déploiements progressifs.
- Une interface commune pour tous les langages : le pipeline et la plateforme traitent toutes les applications de la même façon.
Une bonne image #
# Dockerfile multi-stage : image finale minimale, sans outils de build
FROM python:3.12-slim AS build
WORKDIR /app
COPY requirements.txt .
RUN pip wheel --no-cache-dir -r requirements.txt -w /wheels
FROM python:3.12-slim
RUN useradd -r -u 10001 app
WORKDIR /app
COPY --from=build /wheels /wheels
RUN pip install --no-cache-dir /wheels/* && rm -rf /wheels
COPY src/ .
USER app
EXPOSE 8080
HEALTHCHECK CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8080/health')"
CMD ["gunicorn", "-b", "0.0.0.0:8080", "main:app"]Bonne Pratique : Image de base minimale et épinglée, utilisateur non root, une seule application par conteneur, logs sur la sortie standard, configuration par variables d'environnement.
2. Kubernetes #
La plateforme d'exécution standard.
Ce qu'il apporte au DevOps #
| Besoin | Réponse Kubernetes |
|---|---|
| Déployer sans interruption | Deployment, rolling update, readiness probes |
| Se réparer seul | redémarrage des conteneurs, replanification des pods |
| Absorber la charge | HorizontalPodAutoscaler |
| Décrire en code | manifestes YAML, Helm, Kustomize |
| Isoler les équipes | namespaces, quotas, RBAC, NetworkPolicies |
Helm et Kustomize #
# Kustomize : une base et des surcouches par environnement
overlays/production/kustomization.yaml
resources: [../../base]
images:
- name: shop-api
newName: ghcr.io/mon-org/shop-api
newTag: 3f9c2e1
replicas:
- name: shop-api
count: 6kustomize build overlays/production | kubectl apply -f -
helm upgrade --install shop ./chart -f values-production.yaml --set image.tag=3f9c2e1 --atomic3. Choisir son modèle d'exécution #
Pas de Kubernetes par défaut.
Comparaison #
| Modèle | Quand | Charge d'exploitation |
|---|---|---|
| Machines virtuelles + Ansible | applications historiques, besoins système spécifiques | élevée |
| Conteneurs sur un hôte (Compose) | petite application, peu d'instances | faible |
| Conteneurs managés (Cloud Run, ECS, Azure Container Apps) | services web sans besoin d'orchestration fine | faible |
| Kubernetes | nombreux services, équipes multiples, plateforme interne | élevée (ou managée : EKS, GKE, AKS) |
| Serverless (fonctions) | événements, charge très variable | très faible |
À savoir : Les formations Docker et Kubernetes de RousselTM Learning détaillent la construction d'images, Compose, Swarm, l'orchestration et la sécurité des clusters.
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Glossaire de la formation
DevOps
Culture, mouvement et pratiques visant à unifier le développement logiciel (Dev) et l'administration des infrastructures informatiques (Ops).Découvrir...
DevSecOps
Intégration native de la sécurité (Security) dès la conception et tout au long du cycle de vie DevOps (approche "Shift-Left").Voir comment intégrer la...
AIOps (Artificial Intelligence for IT Operations)
Utilisation de l'intelligence artificielle et de l'apprentissage automatique pour automatiser et améliorer les opérations informatiques (ex: détection...
NoOps
Concept où l'environnement informatique est tellement automatisé et abstrait (ex: Serverless, PaaS) qu'il ne nécessite quasiment plus d'équipe opérati...
GitOps
Pratique de déploiement continu où un dépôt Git sert de source unique de vérité déclarative pour l'infrastructure et les applications.Maîtriser le dép...
FinOps (Financial Operations)
Culture de responsabilité financière du Cloud visant à maximiser la valeur métier en optimisant les coûts. Elle permet une collaboration étroite entre...
SRE (Site Reliability Engineering)
Discipline qui applique les principes de l'ingénierie logicielle aux problématiques d'exploitation. Le but est de créer des systèmes hautement scalabl...
Platform Engineering
Discipline consistant à concevoir et construire des chaînes d'outils et des flux de travail permettant aux développeurs de gérer leur infrastructure e...
Articles recommandés
Mur de la confusion
Le 'mur de la confusion' (ou 'wall of confusion') est une métaphore souvent utilisée dans le cont...
Soutien Logistique Intégré
Soutien Logistique Intégré (SLI) (L'Integrated Logistics Support (ILS) en anglais), est une appro...
Application 12 Facteurs
Un guide détaillé sur la méthodologie des 12 facteurs pour le développement d'applications modern...
Le framework CALMS : Les 5 piliers du DevOps
Découvrez le framework CALMS, le socle indispensable pour réussir votre transformation DevOps à t...
Bonnes pratiques DevOps : culture, CI/CD, infrastructure as code et mesure
Bonnes pratiques DevOps : culture et collaboration, intégration et livraison continues, trunk-bas...
Tests de charge avec Grafana k6 : pourquoi et quels types de tests
Pourquoi tester la performance avant la production, les types de tests (smoke, charge, stress, pi...
Écrire des scripts k6 : requêtes, vérifications, scénarios et exécuteurs
La structure d'un script k6 (init, setup, default, teardown), les requêtes HTTP, les checks, les ...
Seuils, métriques et résultats d'un test k6
Lire le résumé d'un test k6, comprendre les métriques intégrées (http_req_duration, http_req_fail...
Observer un test k6 : Prometheus, Grafana et corrélation avec le système testé
Envoyer les résultats de k6 dans Prometheus (remote write) ou en OpenTelemetry, les visualiser da...