🎓 Projet Final : Architecture Micro-Services & DĂ©ploiement

1. Contexte & Objectifs

Vous ĂȘtes une Ă©quipe d’ingĂ©nieurs DevOps chargĂ©e de concevoir, conteneuriser et dĂ©ployer une solution web robuste. Le sujet est libre (site e-commerce, dashboard IoT, blog perso, outil de gestion de collection, etc.), mais l’architecture technique est imposĂ©e.

L’objectif n’est pas de coder l’application du siĂšcle, mais de construire l’infrastructure qui l’hĂ©berge de maniĂšre professionnelle.

2. Modalités de Rendu

  • Groupe : 1 Ă  3 personnes maximum.

  • Livrable : Un lien vers un dĂ©pĂŽt GitHub Public.

  • Date limite : [InsĂ©rer Date/Heure]

  • ⚠ CRITÈRE ÉLIMINATOIRE :

    • Le fichier README.md doit ĂȘtre prĂ©sent Ă  la racine.

    • Il doit contenir clairement les Nom(s) et PrĂ©nom(s) de chaque membre du groupe en haut de page.

    • Sans ces informations, le projet est considĂ©rĂ© comme “Non Rendu” (0/20).

3. Spécifications Techniques (Le Cahier des Charges)

Votre dépÎt doit contenir un docker-compose.yml fonctionnel respectant les contraintes suivantes :

  1. Services Web (Min. 2) :

    • Au moins deux services applicatifs distincts (ex: un Frontend + une API, ou un WordPress + un Wiki, ou une App Custom + un outil de Chat).
  2. Service de Données (Min. 1) :

    • Une base de donnĂ©es (MySQL, Postgres, Mongo, Redis…) avec persistance des donnĂ©es (Volumes Docker).
  3. Service de Gestion/Admin :

    • Une interface pour gĂ©rer l’infra ou les donnĂ©es (ex: Portainer, Adminer, PhpMyAdmin, ou un dashboard de monitoring).
  4. Reverse Proxy & Réseau :

    • Utilisation de Caddy (ou Traefik) comme point d’entrĂ©e unique.

    • Pas d’exposition directe des ports de BDD ou d’API sur internet.

  5. Accessibilité Internet :

    • Mise en place d’un tunnel Cloudflare (cloudflared) pour rendre le projet accessible publiquement via HTTPS.
  6. Robustesse :

    • Politiques de redĂ©marrage (restart: always ou unless-stopped).

    • Utilisation de healthcheck est un plus.

4. Le Rapport (README.md)

Le code ne suffit pas. Votre README.md servira de rapport de projet. Il doit expliquer :

  • Ce que fait votre projet.

  • L’architecture technique (SchĂ©ma UML obligatoire).

  • Comment le lancer.

  • Votre mĂ©thodologie (Organisation, Outils).

  • Transparence IA : Une section dĂ©diĂ©e expliquant quels outils d’IA (ChatGPT, Copilot, Cursor…) vous avez utilisĂ©s, pour quelles tĂąches (gĂ©nĂ©ration de code, dĂ©bug, Ă©criture) et votre retour d’expĂ©rience dessus.