Sélectionner une page
Contenu du cours
Systèmes d’Exploitation
Devenez autonome dans la gestion des environnements Linux et Windows Server. Vous apprendrez à administrer, automatiser et sécuriser les serveurs grâce à des outils et langages comme Bash, Systemd, PowerShell et Active Directory. Ce bloc développe les compétences essentielles à la maintenance et à la supervision des systèmes d’exploitation d’entreprise.
0/4
Réseaux et Télécommunications
Maîtrisez la conception, la configuration et le dépannage d’infrastructures réseau complexes. Ce module couvre les fondamentaux du modèle OSI, du subnetting, des VLAN, du routage et des services réseau (DNS, DHCP) à l’aide d’équipements professionnels (Cisco, HP). Vous apprendrez également à renforcer la sécurité et la performance des architectures réseau.
0/3
Virtualisation et Cloud
Développez une expertise en virtualisation et en Cloud Computing. Vous apprendrez à déployer des machines virtuelles avec VMware ou Proxmox, à orchestrer des conteneurs avec Docker et Kubernetes, et à utiliser les principaux Clouds publics (AWS, Azure). L’accent est mis sur l’automatisation via Terraform et Ansible pour une gestion d’infrastructure moderne et scalable.
0/4
Sécurité des Systèmes d’Information
Renforcez la résilience et la conformité des systèmes informatiques. Ce bloc vous forme au hardening des serveurs, à la configuration des pare-feu (iptables, pfSense), à la mise en place de VPN, ainsi qu’à la réalisation d’audits de sécurité. Vous serez capable d’anticiper, détecter et corriger les failles afin de protéger les infrastructures contre les cybermenaces.
0/3
DevOps et Automatisation
Intégrez les pratiques DevOps pour une gestion fluide du cycle de vie des applications. Vous apprendrez à utiliser Git, à mettre en place des pipelines CI/CD (avec Jenkins, GitLab CI), et à surveiller les systèmes via des outils d’observabilité comme Prometheus, Grafana et ELK. Ce bloc met l’accent sur l’efficacité, la collaboration et la proactivité dans la gestion IT.
0/2
Projet Final et Certification
Mettez en pratique l’ensemble des compétences acquises à travers un projet d’envergure. Vous concevrez, déploierez et documenterez une infrastructure hybride (On-Premise + Cloud), intégrant sécurité, réseau, virtualisation et DevOps. Ce projet constitue la synthèse du cursus et vous prépare directement à la certification RNCP de niveau 6 (Bac+3).
0/2
Administrateur SysOps & DevOps
À propos de la leçon

Semaine 29-30 : Git et CI/CD 🚀

Objectifs pédagogiques

  • Maîtriser Git pour la gestion collaborative et le versionnement du code.
  • Mettre en place et administrer des pipelines d’Intégration et de Déploiement Continus (CI/CD).
  • Automatiser les déploiements d’applications de manière fiable et réversible.

 


 

1 — Git : Système de Contrôle de Version Distribué

Git est le système de contrôle de version (Version Control System – VCS) le plus utilisé. Il permet de suivre les modifications apportées aux fichiers, de revenir à des versions antérieures et de faciliter le travail collaboratif.

 

Système Distribué

Contrairement aux systèmes centralisés, chaque développeur possède une copie complète du référentiel (repository) avec tout l’historique.

  • Avantage : Vous pouvez travailler hors ligne, et la défaillance du serveur central ne paralyse pas le travail.
  • Référentiel : L’endroit où toutes les versions du code sont stockées. Exemples : GitHub, GitLab, Bitbucket.

 

Les Trois États de Git

Git gère le code à travers trois zones principales pour le suivi des modifications :

  • Répertoire de Travail (Working Directory) : Les fichiers que vous modifiez actuellement.
  • Zone de Staging (Staging Area / Index) : Zone où vous préparez les modifications à inclure dans le prochain commit.
  • Référentiel Local (.git directory) : L’historique permanent de vos commits locaux.

 


 

2 — Workflow et Commandes Fondamentales de Git

Le travail avec Git repose sur la gestion des branches et l’enregistrement régulier des commits.

 

Commandes Clés

Commande Rôle
git init Initialise un nouveau référentiel Git local.
git add [fichier] Ajoute les modifications d’un fichier à la zone de staging.
git commit -m "Message" Enregistre un ensemble de changements (staging area) dans l’historique local.
git push Envoie les commits locaux vers le référentiel distant (ex: GitHub).
git pull Récupère et fusionne les modifications du référentiel distant vers le référentiel local.

 

Gestion des Branches

  • Branche : Un pointeur léger et mobile vers un commit. La branche principale est souvent appelée `main` ou `master`.
  • Flux de Travail (Git Flow / Trunk-Based) : Utilisation de branches distinctes (`feature`, `develop`, `release`) pour isoler les développements et les tests avant de les fusionner dans `main`.
  • git checkout -b [nom_branche] : Crée et bascule vers une nouvelle branche.
  • git merge [branche_a_fusionner] : Intègre les modifications d’une branche dans la branche actuelle.

 


 

3 — Intégration Continue (CI)

L’Intégration Continue (CI) est une pratique de développement où les développeurs fusionnent leurs modifications de code fréquemment (plusieurs fois par jour) dans la branche principale. Chaque fusion déclenche une série de vérifications automatisées.

 

Objectifs de la CI

  • Détection Précoce des Erreurs : Identifier rapidement les bugs ou les problèmes de compatibilité.
  • Assurer la Qualité du Code : Exécuter des linters (vérification de style) et des tests unitaires/d’intégration.
  • Création d’Artéfacts : Produire des livrables prêts au déploiement (ex: un fichier JAR, une image Docker).

 

Outils de CI

Les outils de CI orchestrent l’exécution des tâches définies dans un fichier de configuration (Pipeline).

  • Exemples : **Jenkins**, **GitLab CI**, **GitHub Actions**, **Azure DevOps Pipelines**.

 

Étapes Typiques d’un Pipeline CI

  1. Checkout : Récupération du code depuis le référentiel Git.
  2. Build : Compilation du code (si nécessaire).
  3. Test : Exécution des tests unitaires.
  4. Packaging : Création de l’artéfact (ex: une image Docker).
  5. Scan de Sécurité : Analyse statique du code ou scan de l’image (Security Check).

 


 

4 — Livraison et Déploiement Continus (CD)

La Livraison Continue (Continuous Delivery) et le Déploiement Continu (Continuous Deployment) prolongent la CI en automatisant le déploiement de l’artéfact validé.

 

Livraison Continue (CDel)

L’artéfact est prêt à être déployé à tout moment (après la CI et les tests), mais le déploiement final en production nécessite une **approbation manuelle** (par un administrateur ou un chef de projet).

 

Déploiement Continu (CDep)

Le code qui passe tous les tests (CI et tests d’intégration/système) est **automatiquement** déployé en production **sans intervention humaine**. C’est le niveau d’automatisation le plus élevé, nécessitant une confiance totale dans le pipeline.

 

Avantages de la CI/CD

  • Déploiement plus rapide et plus fréquent.
  • Réduction des erreurs humaines lors du déploiement.
  • Possibilité de revenir en arrière (Rollback) rapidement en cas de problème.

 


 

5 — Stratégies de Déploiement Avancées

Pour minimiser l’impact des déploiements sur les utilisateurs finaux, des stratégies avancées sont utilisées, souvent facilitées par les outils CI/CD et l’orchestration (Kubernetes).

 

Rollback

Capacité à revenir à la version stable précédente en cas de défaillance du nouveau déploiement. Un déploiement fiable doit toujours être réversible.

 

Déploiement Blue/Green

  • Principe : Maintenir deux environnements de production identiques : ‘Bleu’ (ancien, stable) et ‘Vert’ (nouveau, à déployer).
  • Processus : Le trafic est basculé instantanément de ‘Bleu’ vers ‘Vert’ une fois que ‘Vert’ est validé. Si un problème survient, le trafic est instantanément rebasculé vers ‘Bleu’.

 

Déploiement Canary (Canari)

  • Principe : Déployer la nouvelle version sur un petit sous-ensemble d’utilisateurs ou de serveurs (le « canari »).
  • Processus : Si l’équipe de surveillance ne détecte aucun problème (erreurs, latence) après une période définie, la nouvelle version est progressivement étendue au reste de la flotte de serveurs.