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 input et forward pour 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.fr au 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.


Retour en haut