Stack technique
Virtualisation & Stockage
Proxmox VE (cluster 3 nœuds)
Hyperviseur open-source de type 1 basé sur KVM/LXC. Les 3 nœuds sont mis en cluster avec segmentation VLAN dédiée pour le trafic cluster, Ceph, SDN et administration. La High Availability (HA) est configurée pour assurer la continuité de service en cas de défaillance d’un nœud.
Ceph
Solution de stockage distribué et redondant utilisée comme backend de stockage unifié entre les nœuds Proxmox. Élimine les points uniques de défaillance au niveau du stockage.
Proxmox SDN + VXLAN
Réseau défini par logiciel (Software Defined Network) utilisé pour la segmentation réseau entre les VMs. VXLAN permet d’encapsuler le trafic L2 sur L3, facilitant la mobilité des VMs entre nœuds et l’isolation des réseaux.
Proxmox Backup Server (PBS) - 2 instances
Solution de sauvegarde dédiée à l’écosystème Proxmox. La première instance est connectée au cluster et pousse les sauvegardes vers la seconde via une sync job, assurant une réplication hors-site. Des prune jobs (rétention) et verify jobs (intégrité des sauvegardes) sont configurées sur les deux instances.
Réseau & Sécurité
MikroTik RouterOS (2 VMs en VRRP)
Routeurs/firewalls virtuels en haute disponibilité via VRRP (Virtual Router Redundancy Protocol), garantissant qu’une IP virtuelle reste accessible même si un des deux routeurs tombe. Embarquent plusieurs services :
- Firewall : Règles
inputetforwardpour segmenter les réseaux et contrôler les flux entre VLANs. - WireGuard : VPN utilisé pour l’administration sécurisée de l’infrastructure depuis l’extérieur.
- DNS Autoritaire & Récursif : Résolution de noms interne et authorité sur les zones internes.
- Serveur NTP : Distribution du temps sur l’ensemble de l’infrastructure.
Nginx Proxy Manager (NPM)
Reverse proxy applicatif (L7/HTTP) et TCP (L4/stream). Rôles principaux :
- Terminaison TLS : Le TLS est établi entre le client et NPM ; les services internes communiquent en HTTP classique.
- Gestion des certificats : Dépôt et cycle de vie des certificats TLS.
- Access lists : Restriction d’accès aux services
.int.edu-kit.frau subnet VPN ; support HTPASSWD pour l’authentification basique. - Journalisation des modifications : Comptes nominatifs avec logs des changements de configuration.
- Interface d’administration accessible uniquement en interne/VPN, avec TOTP.
Warpgate
Bastion SSH/HTTP permettant l’accès administré et audité à l’ensemble des machines de l’infrastructure sans exposer directement les ports d’administration.
Monitoring & Observabilité
Grafana
Interface de visualisation centrale. Agrège et affiche les métriques, logs et traces provenant de Prometheus, Loki et Tempo sous forme de dashboards.
Prometheus
Collecte et stockage des métriques (time-series). Scrape les exporters des VMs et services pour surveiller l’état des ressources (CPU, mémoire, réseau, etc.).
Loki
Agrégation et indexation des logs. Reçoit les logs des services et les rend interrogeables depuis Grafana sans indexation complète du contenu (approche label-based).
Tempo
Backend de stockage de traces distribuées (tracing). Permet de suivre le chemin d’une requête à travers les microservices (corrélation avec Loki et Prometheus dans Grafana).
OpenTelemetry Collector & Operator (dans K3s)
Collecte et routage unifié des signaux d’observabilité (logs, métriques, traces) depuis les pods Kubernetes. L’operator facilite le déploiement et la configuration de l’instrumentation automatique des microservices.
Uptime Kuma
Supervision de disponibilité : surveille l’état HTTP, TCP (port), ping et bases de données. Notifications via webhook Teams en cas d’indisponibilité. Expose une page de statut publique (status.edu-kit.fr) ; l’interface d’administration est restreinte en interne/VPN.
Wazuh
SIEM/HIDS (Host-based Intrusion Detection System) déployé sur les VMs. Monitore les événements système, détecte les comportements suspects et génère des alertes de sécurité.
CI/CD & GitOps
VM Agents (pipelines)
VM hébergeant plusieurs agents de build utilisés dans les pipelines Azure DevOps, notamment pour la construction des images Docker des microservices.
Harbor
Registry Docker privé (équivalent DockerHub auto-hébergé). Réduit le risque de supply chain en centralisant les images utilisées. Intègre Trivy pour le scan CVE avec refus automatique des images contenant des vulnérabilités de criticité CRITICAL. Utilisé comme source dans les pipelines CI (push) et CD (pull depuis K3s).
ArgoCD (2 instances - dev & prod)
Opérateur GitOps pour Kubernetes. Connecté au dépôt Azure DevOps, détecte automatiquement les changements et synchronise l’état du cluster avec le dépôt (approche app-of-apps). Une instance par environnement (dev/prod).
Kubernetes
K3s (2 clusters - dev & prod)
Distribution légère de Kubernetes. Chaque environnement dispose d’un cluster composé de 1 control-plane et 3 workers.
Longhorn
Solution de stockage distribué pour Kubernetes. Déployé via chart Helm et configuré sur un disque dédié au niveau Proxmox. Fournit des volumes persistants répliqués pour les workloads.
Sealed Secrets
Chiffrement des secrets Kubernetes pour un stockage sécurisé dans Git. Choisi pour sa simplicité de mise en œuvre. Prévu d’être remplacé par OpenBao pour l’industrialisation.
Headlamp & Rancher
Interfaces de gestion et de visualisation du cluster Kubernetes (workloads, namespaces, ressources).
Network Policies
Règles de segmentation réseau au niveau des pods Kubernetes - contrôle des flux entrants/sortants entre namespaces et services.
PodDisruptionBudgets (PDB)
Garantissent la disponibilité minimale des workloads lors des opérations de maintenance (drain de nœud, mises à jour).
Probes (Liveness / Readiness / Startup)
Mécanismes de vérification de l’état des pods. Permettent à Kubernetes de redémarrer automatiquement les conteneurs défaillants et de ne router le trafic que vers les pods prêts.
RBAC
Contrôle d’accès basé sur les rôles au niveau de l’API Kubernetes. Limite les droits des utilisateurs et des composants aux seules ressources nécessaires.
Stack Applicative
ASP.NET Core
Framework backend Microsoft utilisé pour développer les API REST des microservices. Gère le routage HTTP, l’injection de dépendances, la sérialisation et les middlewares d’authentification/autorisation.
SignalR
Bibliothèque ASP.NET pour la communication temps réel (WebSocket avec fallback). Utilisée pour les fonctionnalités nécessitant du push serveur vers client (notifications, mises à jour en direct).
PostgreSQL
Base de données relationnelle open-source utilisée comme stockage principal des microservices. Robuste, ACID-compliant, supporté nativement par l’écosystème .NET.
RabbitMQ
Broker de messages (message queue) permettant la communication asynchrone entre microservices via des échanges de messages (publish/subscribe, work queues). Découple les services et absorbe les pics de charge.
Interface Utilisateur
Angular
Framework frontend TypeScript de Google. Structure l’application en composants, modules et services avec un système de routing, de formulaires réactifs et d’injection de dépendances intégré.
Angular Material
Bibliothèque de composants UI (boutons, formulaires, tableaux, modales, etc.) suivant les guidelines Material Design. Assure une cohérence visuelle et d’accessibilité sur l’ensemble de l’interface.
Tailwind CSS
Framework CSS utilitaire. Utilisé en complément d’Angular Material pour la mise en page et les styles personnalisés sans écrire de CSS custom.
Gestion de Projet & Collaboration
Azure DevOps
Plateforme DevOps Microsoft centralisant :
- Product backlog & sprints : Suivi des user stories, bugs et tâches en méthodologie agile.
- Dépôts Git : Hébergement du code source avec stratégie de branches et revues de code (pull requests).
- Pipelines CI/CD : Build, test, push Harbor, déploiement via ArgoCD.
- Revue de code : Processus de validation par les pairs avant merge.
Microsoft Teams
Outil de communication interne. Canaux thématiques par domaine (dev, ops, incidents, etc.), organisation des dailys, partage de fichiers et réception des webhooks d’alertes (Uptime Kuma, Wazuh).
Sécurité & Accès
Keycloak
Serveur d’identité et d’accès open-source (IAM). Fournit le SSO (Single Sign-On) et le RBAC pour les applications et services de la plateforme. Gère l’authentification centralisée via OpenID Connect / OAuth 2.0.
Vaultwarden
Gestionnaire de mots de passe auto-hébergé compatible avec l’API Bitwarden. Stocke et partage de façon sécurisée les secrets d’équipe (credentials, clés, notes sécurisées) avec chiffrement côté client.
Services Applicatifs
Poste.io
Serveur de mail mono-conteneur utilisé pour l’envoi SMTP des microservices vers l’internet. Composants intégrés :
| Composant | Rôle |
|---|---|
| Haraka | Serveur SMTP |
| Dovecot | IMAP/POP |
| Rspamd | Antispam |
| ClamAV | Antivirus |
| Roundcube | Webmail |
Configuré en envoi uniquement (pas de réception, non nécessaire).
Documentation
Jekyll + Markdown
Générateur de site statique utilisé pour la documentation DevOps. Les fichiers sources sont rédigés en Markdown (syntaxe légère, versionnable dans Git) et compilés par Jekyll en site HTML navigable. Couvre les processus (workflow Git, stratégie de tests), les procès-verbaux de livraison, les comptes-rendus, et la documentation développeurs et ops.
Draw.io
Outil de création de diagrammes (architecture réseau, flux applicatifs, schémas d’infrastructure). Les fichiers .drawio sont versionnés dans les dépôts Git aux côtés de la documentation Markdown.
Outillage & Productivité
Claude Code
Assistant IA de développement en ligne de commande (Anthropic). Utilisé pour accélérer les tâches de développement et d’administration : génération de code, revue, documentation, scripts d’automatisation, et assistance sur les configurations d’infrastructure.