Aller au contenu

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

Vue d'ensemble de l'infrastructure

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.