CANEVAS FORMATION DEVOPS
Formateur : Djeteje Romuald
‘’ apprendre – grandir – réussir ‘’
1. Introduction au DevOps
- Durée : 1 jour
- Objectifs : Comprendre les concepts de base du DevOps, son importance, et les
pratiques associées.
- Contenu :
- Historique et évolution du DevOps
- DevOps vs Méthodes traditionnelles
- Les principes de base : Collaboration, Intégration continue, Livraison continue,
Monitoring
- Présentation des outils DevOps courants
- Travail Pratique : Recherche et présentation d'un outil DevOps, avec une
démonstration de ses fonctionnalités principales.
2. Administration Linux
- Durée : 15 jours
- Objectifs : Acquérir les compétences de base en administration Linux, essentielles
pour tout DevOps.
- Contenu :
- Installation et configuration de Linux
- Commandes de base et navigation dans le système de fichiers
- Gestion des utilisateurs et des permissions
- Gestion des processus et des services
- Gestion des packages avec apt/yum
- Scripts Shell de base pour l'automatisation
- Travail Pratique : Configuration d'un serveur Linux, création d'utilisateurs, gestion des
permissions, et écriture d'un script Shell pour automatiser une tâche administrative.
3. Automatisation avec Bash
- Durée : 7 jours
- Objectifs : Automatiser des tâches récurrentes sur un système Linux à l'aide de
scripts Bash.
- Contenu :
- Syntaxe de base du Bash scripting
- Variables, conditions, et boucles
- Gestion des fichiers et des répertoires avec des scripts
- Manipulation des textes avec sed, awk, grep
- Planification des tâches avec cron
- Travail Pratique : Écrire un script Bash pour sauvegarder automatiquement les
fichiers modifiés dans un répertoire spécifique et les compresser dans une archive.
4. Automatisation avec Python
- Durée : 14 jours
- Objectifs : Utiliser Python pour automatiser des tâches plus complexes.
- Contenu :
- Introduction à Python : Syntaxe de base, variables, et types de données
- Structures de contrôle : Conditions, boucles, fonctions
- Manipulation de fichiers et gestion des exceptions
- Bibliothèques Python pour l'automatisation (ex: os, subprocess, shutil)
- Automatisation des tâches systèmes (ex: gestion des fichiers, manipulation des
processus)
- Travail Pratique : Écrire un script Python pour surveiller un répertoire, détecter les
nouveaux fichiers et les déplacer vers un autre répertoire en fonction de leur type.
5. Contrôle de Version avec Git
- Durée : 2 jours
- Objectifs : Maîtriser les bases de Git pour le contrôle de version.
- Contenu :
- Installation et configuration de Git
- Commandes Git de base : init, clone, commit, push, pull, branch, merge
- Travailler avec des branches
- Résolution des conflits
- Utilisation de GitHub/GitLab/Bitbucket
- Travail Pratique : Création d'un dépôt Git, collaboration sur un projet simple en
utilisant les branches, résolution des conflits, et soumission des changements sur
GitHub.
6. Intégration Continue (CI)
- Durée : 15 jours
- Objectifs : Comprendre les principes de l'intégration continue et savoir configurer un
pipeline CI.
- Contenu :
- Concepts d'intégration continue
- Présentation des outils : Jenkins, GitHub Actions, GitLab CI/CD
- Mise en place d'un pipeline CI simple
- Tests automatiques et leur importance
- Gestion des artefacts
- Travail Pratique : Configurer un pipeline CI avec GitHub Actions pour tester
automatiquement un projet Python à chaque commit.
7. Livraison Continue (CD) et Déploiement
- Durée : 14 jours
- Objectifs : Comprendre la livraison continue et savoir automatiser le déploiement.
- Contenu :
- Concepts de livraison continue et déploiement continu
- Outils de CD : Jenkins, GitLab CI/CD
- Déploiements automatiques vers des environnements de staging et de production
- Gestion des rollbacks et des déploiements bleu/vert
- Travail Pratique : Automatiser le déploiement d'une application web sur un serveur
de staging en utilisant un pipeline CD.
8. Conteneurs et Orchestration (Docker et Kubernetes)
- Durée : 15 jours
- Objectifs : Maîtriser la containerisation avec Docker et l'orchestration avec
Kubernetes.
- Contenu :
- Introduction à Docker : Concepts, installation, et commandes de base
- Création et gestion des images Docker
- Docker Compose pour orchestrer des services multi-conteneurs
- Introduction à Kubernetes : Concepts, architecture, et installation
- Déploiement et gestion des applications dans Kubernetes
- Gestion des configurations et des secrets
- Travail Pratique : Conteneuriser une application web avec Docker, puis déployer et
gérer cette application dans un cluster Kubernetes.
9. Infrastructure as Code (IaC) avec Terraform
- Durée : 40 jours
- Objectifs : Apprendre à gérer l'infrastructure comme du code avec Terraform.
- Contenu :
- Concepts d'Infrastructure as Code
- Installation et configuration de Terraform
- Écriture de fichiers de configuration Terraform
- Gestion des variables et des états Terraform
- Provisionnement d'infrastructures sur AWS/Azure/GCP
- **Travail Pratique** : Provisionner une infrastructure complète (VPC, instances, bases
de données) sur AWS à l'aide de Terraform.
10. Monitoring et Logging
- Durée : 7 jours
- Objectifs : Comprendre l'importance du monitoring et du logging dans un
environnement DevOps.
- Contenu :
- Concepts de base du monitoring
- Outils de monitoring : Prometheus, Grafana, ELK (Elasticsearch, Logstash, Kibana)
- Mise en place d'un système de monitoring pour les applications et l'infrastructure
- Analyse des logs et gestion des alertes
- Travail Pratique : Configurer Prometheus et Grafana pour monitorer une application
Dockerisée, et utiliser l'ELK stack pour analyser les logs.
11. Sécurité DevOps (DevSecOps)
- Durée : 7 jours
- Objectifs : Intégrer la sécurité dans le processus DevOps.
- Contenu :
- Concepts de base de la sécurité en DevOps
- Outils de sécurité : OWASP ZAP, SonarQube, Snyk
- Analyse de sécurité continue et scans de vulnérabilités
- Sécurité des conteneurs et des images Docker
- Travail Pratique : Configurer un scan de sécurité automatique sur un projet
d'application web utilisant OWASP ZAP et SonarQube.
12. Automatisation des tâches avec Ansible
- Durée : 4 jours
- Objectifs : Automatiser la gestion des configurations avec Ansible.
- Contenu :
- Introduction à Ansible : Concepts et installation
- Écriture de playbooks et de rôles Ansible
- Gestion des configurations sur plusieurs serveurs
- Intégration d'Ansible dans le pipeline CI/CD
- Travail Pratique : Créer un playbook Ansible pour déployer une application web sur
plusieurs serveurs, incluant la configuration des services nécessaires.
13. Projet Final
- Durée : 2 mois
- Objectifs : Appliquer les compétences acquises à un projet DevOps complet.
- Contenu :
- Choix d'un projet DevOps (ex: déploiement d'une application web avec CI/CD,
orchestration de microservices, etc.)
- Planification et exécution du projet
- Révision et retour d'expérience
- Travail Pratique : L’apprenant devra choisir ou je lui proposerai un projet complet qui
englobe les compétences acquises durant la formation, comme la mise en place d'un
pipeline CI/CD complet pour une application multi-conteneur, ou la gestion de
l'infrastructure cloud avec Terraform et Ansible.