Terminé
Scolaire

Déploiement d'une architecture distribuée avec Ansible

2024
DevOps
Déploiement d'une architecture distribuée avec Ansible

À propos du projet

Déploiement d'une Architecture Distribuée avec Ansible

Ce projet démontre ma capacité à automatiser le déploiement d'applications complexes sur plusieurs serveurs simultanément.

Le défi : Imaginez devoir configurer manuellement 5 ordinateurs différents, chacun avec un rôle spécifique, en s'assurant qu'ils communiquent parfaitement entre eux. Un processus long, répétitif et sujet aux erreurs humaines.

Ma solution : J'ai créé un système d'automatisation qui configure et déploie l'ensemble de l'infrastructure en quelques minutes, de manière fiable et répétable. Cette approche garantit :

  • Zéro erreur de configuration grâce à l'automatisation
  • Déploiement rapide : quelques minutes vs plusieurs heures
  • Reproductibilité : possibilité de recréer l'environnement
  • Réduction des coûts opérationnels et de maintenance
L'application déployée gère un système de vote avec mise en cache des données, stockage persistant, traitement en arrière-plan et affichage des résultats en temps réel. Chaque composant est isolé sur sa propre machine pour garantir performance et résilience.

Technologies & Outils

Ansible
Linux
UTM
PostgreSQL
Redis
System Administration

Détails Techniques

Contexte technique : Projet d'Infrastructure as Code (IaC) visant l'orchestration automatisée d'une application distribuée microservices sur 5 VM Linux dédiées, sans conteneurisation.

Architecture déployée :

  • Cache Layer : Instance Redis pour la gestion du cache distribué et sessions
  • Data Layer : PostgreSQL configuré pour la persistance avec réplication
  • Application Layer :
    • Service Poll (collecte des votes)
    • Worker asynchrone (traitement des jobs en arrière-plan)
    • Service Result (API/Frontend d'affichage)
Stack technique :
  • Orchestration : Ansible (playbooks, roles, inventory management)
  • Virtualisation : UTM (machines virtuelles Linux)
  • Base de données : PostgreSQL (configuration, users, grants)
  • Cache : Redis (configuration master, networking)
  • System Administration : Configuration système Linux bare-metal (systemd services, networking, firewall rules, package management)
Points techniques notables :
  • Déploiement sans Docker/conteneurs : configuration native des services sur l'OS
  • Gestion des dépendances inter-services et de l'ordre de déploiement
  • Configuration réseau inter-VM avec règles de sécurité
  • Idempotence des playbooks Ansible garantie
  • Gestion des secrets et variables d'environnement
  • Provisioning automatisé de l'infrastructure complète
Ce projet illustre une maîtrise solide des principes DevOps : automatisation, reproductibilité, et infrastructure immuable.