ESIROI · Maquettes Connexion
AccueilITS7 · UE7-SYSRES
ESI-SPI-CI-IN4-S7-UE1-EC2

Administration des Systèmes : Orchestration, Conteneurs et Automatisation

FR EN ⬇ PDF
RéférentMaîtriser les outils et les pratiques modernes de déploiement, d'orchestration et d'automatisation des systèmes d'information. Ce cours forme les étudiants à la conteneurisation des applications avec Docker, à leur orchestration à grande échelle avec Kubernetes, et à l'automatisation de l'administration système avec Ansible. Il couvre également les services d'infrastructure essentiels au déploiement d'un SI (annuaire LDAP, DNS, messagerie) et les paradigmes du cloud, permettant aux étudiants de concevoir, déployer et maintenir un système d'information complet dans le respect des contraintes de sécurité et de disponibilité.
ECTS1
CM / TD / TP4 / 10 / 6
Typematiere

Viable
Viable100%
Complète86%
Manque pour « complète »
  • But du cours
  • Version EN relue

Acquis 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.