ESI-SPI-CI-IN4-S7-UE1-EC2
Administration des Systèmes : Orchestration, Conteneurs et Automatisation
FR EN ⬇ PDFAcquis d'apprentissage visés
- Concevoir, déployer et maintenir les services d’infrastructure essentiels d’un système d’information (annuaire, DNS, messagerie) en respectant les contraintes de sécurité
- Conteneuriser une application à l’aide de Docker et gérer son cycle de vie : construction d’images, composition de services multi-conteneurs, registre d’images
- Déployer et administrer un cluster Kubernetes : gestion des workloads, services, volumes persistants, mise à l’échelle et mise à jour continue
- Automatiser la configuration et le déploiement d’infrastructures systèmes à l’aide d’Ansible : playbooks, rôles, inventaires dynamiques
- Concevoir, déployer, maintenir et faire évoluer des services cloud en distinguant les modèles IaaS, PaaS et SaaS, et en évaluant les avantages et les limites de chaque approche
- Mettre en œuvre des mécanismes de collecte et d’analyse de données pour la maintenance préventive et la détection des anomalies du système d’information
Prérequis
- SR051 - Principes des réseaux et de l’IoT (S5) : modèle OSI, TCP/IP, routage, DNS — indispensables pour la compréhension des réseaux Docker et Kubernetes.
- SR052 - Système d’exploitation et langage de commande (S5) : administration Linux, gestion des processus, permissions, scripting Bash — base de toute l’administration système.
- SR062 - Administration système 1 (S6) : services systèmes (systemd), gestion des utilisateurs, introduction aux services réseau — prérequis direct pour LDAP, DNS et la messagerie.
- SR603 - Environnements Virtuels et Pratiques de Collaboration (S6) : introduction aux conteneurs, outils de collaboration, versionnement — fondements de la conteneurisation et du GitOps.
- Compétences transversales attendues :
- Administration Linux courante : gestion des services, réseau, droits, éditeur de texte (vim/nano)
- Scripting Bash de base : boucles, conditions, gestion des fichiers
- Maîtrise de Git : clone, commit, push, branches
- Notions de YAML et JSON pour la configuration des outils DevOps
- Lecture de documentation technique en anglais
Programme
- Services d’infrastructure du système d’information :
- Annuaire d’authentification : protocole LDAP — structure, schéma, déploiement et intégration dans un SI.
- La hiérarchie DNS : zones, enregistrements, résolution récursive et autoritaire.
- Installation et sécurisation d’un serveur DNS : DNSSEC, gestion des zones signées.
- Configuration d’un serveur de messagerie : protocoles SMTP, IMAP, anti-spam, DKIM, SPF, DMARC.
- Gestion centralisée des identités : intégration LDAP avec les services du SI (DNS, mail, SSH).
- Conteneurisation avec Docker :
- Rappels sur la virtualisation et positionnement des conteneurs : namespaces, cgroups, couches d’images.
- Construction d’images Docker : Dockerfile, bonnes pratiques, optimisation des couches, images multi-étapes.
- Gestion du cycle de vie des conteneurs : réseaux Docker, volumes persistants, variables d’environnement.
- Composition de services avec Docker Compose : définition de stacks multi-conteneurs, dépendances, healthchecks.
- Registres d’images : Docker Hub, registre privé (Harbor) ; gestion des versions et des politiques de sécurité.
- Sécurité des conteneurs : utilisateur non-root, scan de vulnérabilités (Trivy), politique de contenu signé.
- Orchestration avec Kubernetes :
- Architecture de Kubernetes : control plane (API server, etcd, scheduler, controller manager), nodes workers.
- Objets fondamentaux : Pod, Deployment, ReplicaSet, Service, ConfigMap, Secret, Namespace.
- Gestion du stockage persistant : PersistentVolume, PersistentVolumeClaim, StorageClass.
- Mise à l’échelle et mise à jour continue : rolling update, rollback, Horizontal Pod Autoscaler.
- Exposition des services : Ingress, LoadBalancer, gestion des certificats TLS (cert-manager).
- Sécurité dans Kubernetes : RBAC, NetworkPolicies, Pod Security Standards, gestion des secrets.
- Outils de déploiement : Helm (gestionnaire de paquets Kubernetes) ; introduction à GitOps (ArgoCD).
- Automatisation avec Ansible :
- Principes de l’automatisation : idempotence, infrastructure as code, gestion de la configuration.
- Architecture Ansible : inventaires (statiques et dynamiques), modules, playbooks, variables et facts.
- Structuration des projets Ansible : rôles, collections, Ansible Galaxy.
- Automatisation des tâches d’administration : déploiement de services, gestion des utilisateurs, mises à jour.
- Intégration d’Ansible dans un pipeline CI/CD : déclenchement automatique, gestion des secrets (Ansible Vault).
- Déploiement cloud d’applications conteneurisées :
- Applications cloud-native vs applications internes : différences de conception, scalabilité, résilience.
- Déploiement d’une application conteneurisée sur un service Kubernetes managé (AKS, GKE ou EKS).
- Principes du DevOps et CI/CD : pipeline d’intégration et de déploiement continu (GitLab CI, GitHub Actions).
- Les paradigmes IaaS/PaaS/SaaS et les choix d’architecture cloud sont approfondis en SR802.
- Observabilité dans un environnement conteneurisé (introduction) :
- Enjeux de l’observabilité dans Kubernetes : métriques, logs, traces.
- Métriques applicatives et système : exposition via Prometheus, visualisation Grafana — notions de base.
- Journalisation dans Kubernetes : stdout/stderr, agrégation des logs avec Loki.
- Ces outils seront approfondis en SR802 — Administration Système : Stockage et Surveillance.
Modalités d'évaluation
Au moins deux contrôles continus.
Bibliographie
- Evi Nemeth et al. - UNIX and Linux System Administration Handbook - Addison-Wesley, 5^(e) éd., 2017
- Kelsey Hightower et al. - Kubernetes: Up and Running - O’Reilly, 3^(e) éd., 2022
- Jeff Nickoloff & Stephen Kuenzli - Docker in Action - Manning, 2^(e) éd., 2019
- Lorin Hochstein - Ansible: Up and Running - O’Reilly, 3^(e) éd., 2022
- Documentation Kubernetes : <https://kubernetes.io/docs/>
- Documentation Docker : <https://docs.docker.com>
- Documentation Ansible : <https://docs.ansible.com>
- Documentation Helm : <https://helm.sh/docs/>
- ANSSI - Recommandations de sécurité relatives au déploiement de conteneurs Docker : <https://www.ssi.gouv.fr/guide/>
Supports
Diaporamas, fiches de travaux pratiques.