Skip to content

Architecture Datacenter Karwicloud — Karwisoft

1. Présentation

Ce document décrit l’infrastructure Karwicloud utilisée chez Karwisoft pour héberger des services et applications internes.
L’objectif est de fournir un environnement isolé, sécurisé, observable et sauvegardé.


2. Socle d’hébergement

Élément Description
Hébergeur OVH (serveur dédié)
Hyperviseur Proxmox VE
Types de charges Machines virtuelles (VM) + conteneurs LXC

Proxmox VE permet de combiner :

  • VM complètes : isolation forte, OS dédié
  • Conteneurs LXC : plus légers, partage du noyau hôte

Ce mélange offre un bon compromis entre performance, densité et isolation.


3. Charges de travail hébergées

L’hôte Proxmox exécute notamment :

  • Bases de données (production et développement)
  • Pipelines CI/CD
  • Applications web
  • Services internes :
  • Monitoring
  • Gestion de secrets
  • Registre d’artefacts
  • Logs

4. Principes de conception clés

4.1 Isolation des charges de travail

Chaque service critique tourne dans sa propre VM ou son propre conteneur LXC.
Cela limite les effets de bord en cas de compromission ou de panne.

4.2 Séparation production / développement

Les bases de données de production et de développement sont hébergées dans des environnements distincts.

Objectifs :

  • Éviter les fuites de données réelles vers les environnements de test
  • Prévenir les actions de dev impactant la prod

4.3 Passerelle centralisée pour le trafic entrant

Tout le trafic externe passe par une passerelle unique (reverse proxy / point d’entrée).

Avantages :

  • Point de contrôle unique pour TLS, filtrage, journalisation
  • Simplification de la gestion des certificats
  • Surface d’exposition réduite

4.4 Réseau privé interne

Les services communiquent via un réseau privé interne, non exposé publiquement.
Cela isole les échanges inter-services du trafic externe.

4.5 CI/CD via GitLab et GitLab Runner

  • GitLab : hébergement du code, gestion des projets, déclenchement des pipelines
  • GitLab Runner : exécution des jobs (build, test, déploiement)

4.6 Stockage d’artefacts via Harbor

Harbor sert de registre pour stocker :

  • Images Docker / OCI
  • Artefacts de build

Il intègre nativement :

  • Le scan de vulnérabilités
  • Le contrôle d’accès par projet

4.7 Gestion des secrets via Vault

HashiCorp Vault centralise :

  • Secrets applicatifs (mots de passe, tokens, clés API)
  • Certificats
  • Mécanismes de rotation

Cela évite les secrets en clair dans le code ou les fichiers de configuration.

4.8 Surveillance via Uptime Kuma

Uptime Kuma assure la supervision :

  • Vérification de disponibilité (HTTP, TCP, ping…)
  • Alertes en cas d’indisponibilité
  • Tableau de bord simple pour visualiser l’état des services

4.9 Consultation des logs via Dozzle

Dozzle fournit une interface web légère pour consulter en temps réel les logs des conteneurs Docker.

Caractéristiques :

  • Accès centralisé aux logs sans se connecter en SSH à chaque hôte
  • Vision temps réel par conteneur
  • Faible empreinte (agent léger, pas de stockage massif)

Dozzle complète Uptime Kuma (disponibilité) en couvrant le contenu des logs.

4.10 Sauvegardes et stockage objet via AWS (S3)

Les sauvegardes et le stockage d’objets s’appuient sur AWS S3 :

  • Sauvegardes des VM/LXC, bases de données et volumes critiques exportées vers S3
  • Stockage objet pour artefacts non critiques, exports, fichiers statiques

Bénéfices :

  • Durabilité
  • Redondance hors site
  • Coût maîtrisé
  • Restauration possible en cas de sinistre sur le serveur OVH

Stratégie recommandée :

  • Sauvegardes régulières (quotidiennes + hebdomadaires)
  • Rétention par cycle de vie (lifecycle policies S3)
  • Chiffrement au repos et en transit
  • Tests de restauration périodiques

5. Schéma logique simplifié

                        Internet
                            │
                            ▼
              ┌───────────────────────────┐
              │  Passerelle centralisée   │
              └─────────────┬─────────────┘
                            │
              ┌─────────────▼─────────────┐
              │   Réseau privé interne    │
              └──┬────────┬────────┬──────┘
                 │        │        │
          ┌──────▼──┐ ┌───▼───┐ ┌──▼──────────┐
          │   VMs   │ │  LXC  │ │  Services   │
          │ (DB,    │ │ (CI/  │ │  internes   │
          │  apps)  │ │  CD)  │ │ (Vault,     │
          └─────────┘ └───────┘ │  Harbor,    │
                                │  Uptime,    │
                                │  Dozzle)    │
                                └──────┬──────┘
                                       │
                                       ▼
                              ┌─────────────────┐
                              │   AWS S3        │
                              │ (backups +      │
                              │  stockage objet)│
                              └─────────────────┘

6. Points forts de l’architecture

  • Isolation forte grâce à Proxmox (VM + LXC)
  • Sécurité : réseau privé, passerelle unique, Vault pour les secrets
  • Automatisation : pipelines GitLab + registry Harbor
  • Observabilité : Uptime Kuma (disponibilité) + Dozzle (logs)
  • Résilience : sauvegardes externalisées sur AWS S3
  • Hygiène : séparation prod/dev