Stack technique¶
Vue d'ensemble¶
L'Infrastructure DevOps Lab repose sur plusieurs technologies complémentaires.
Chaque outil intervient à une étape précise du cycle de vie de l'infrastructure, depuis la préparation des systèmes jusqu'à leur administration et leur supervision.
L'objectif n'est pas seulement d'utiliser ces technologies indépendamment, mais de les intégrer dans une architecture cohérente.
Infrastructure¶
Proxmox VE¶
Rôle : Virtualisation
Proxmox VE constitue le socle de l'infrastructure.
Il assure l'hébergement et la gestion des machines virtuelles utilisées par les différents services du laboratoire.
Packer¶
Rôle : Création des templates
Packer permet de préparer automatiquement les images système utilisées comme base pour les nouvelles machines virtuelles.
Il permet notamment de standardiser les installations avant leur transformation en templates Proxmox.
Terraform¶
Rôle : Infrastructure as Code
Terraform permet de décrire et de provisionner les machines virtuelles sous forme de code.
Il définit notamment les ressources, le stockage, le réseau et le template utilisé pour chaque machine.
Ansible¶
Rôle : Configuration Management
Ansible intervient après le provisionnement des machines.
Il permet d'automatiser la configuration des systèmes et l'installation des applications et services.
Services et applications¶
Docker¶
Rôle : Conteneurisation
Docker permet d'exécuter les applications dans des conteneurs isolés et reproductibles.
Il simplifie leur déploiement et leur maintenance.
systemd¶
Rôle : Gestion des services
systemd assure la gestion des services exécutés directement sur les systèmes Linux.
Il permet notamment leur démarrage automatique, leur supervision et leur gestion lors des redémarrages.
Traefik¶
Rôle : Reverse Proxy
Traefik constitue le point d'entrée des applications Web.
Il permet de centraliser le routage des requêtes vers les différents services publiés dans l'infrastructure.
Forgejo¶
Rôle : Gestion du code source
Forgejo fournit une plateforme Git permettant de centraliser le code source et les configurations du projet.
Les dépôts peuvent notamment contenir :
- Terraform ;
- Ansible ;
- scripts d'automatisation ;
- code Python ;
- configurations Docker ;
- documentation.
Monitoring¶
Prometheus¶
Rôle : Collecte des métriques
Prometheus collecte les métriques provenant des machines et des services supervisés.
Il constitue la source centrale des données utilisées pour la supervision.
Grafana¶
Rôle : Visualisation
Grafana permet de représenter graphiquement les données collectées par Prometheus.
Les tableaux de bord permettent notamment de suivre les performances et l'état général de l'infrastructure.
¶
Développement¶
Python¶
Rôle : Développement
Python est utilisé pour développer le portail d'administration et certaines fonctions d'intégration avec l'infrastructure.
FastAPI¶
Rôle : API et portail d'administration
FastAPI constitue la couche Web et API du portail.
Il permet au portail de communiquer avec les services d'infrastructure et de présenter les informations nécessaires à l'administration.
Répartition des responsabilités¶
| Technologie | Responsabilité |
|---|---|
| Proxmox VE | Virtualisation |
| Packer | Création des templates |
| Terraform | Provisionnement de l'infrastructure |
| Ansible | Configuration des systèmes |
| Docker | Conteneurisation |
| systemd | Gestion des services |
| Traefik | Reverse Proxy |
| Forgejo | Gestion du code source |
| Prometheus | Collecte des métriques |
| Grafana | Visualisation |
| Python | Développement |
| FastAPI | API et portail |
Architecture simplifiée¶
¶
Une stack construite progressivement¶
Cette stack technique n'a pas été définie intégralement au début du projet.
Les différents composants ont été ajoutés progressivement en fonction des besoins, des expérimentations et des contraintes rencontrées.
Cette évolution a permis de mieux comprendre le rôle de chaque technologie et surtout les interactions entre les différentes couches de l'infrastructure.
La stack actuelle constitue ainsi le résultat d'une progression technique continue.