Knowledge base of ~80+ markdown files across 14 domains (00-13), Logseq graph, hardware design files (KiCAD), infrastructure configs, and talas-wiki static site. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
96 lines
3.8 KiB
Markdown
96 lines
3.8 KiB
Markdown
# Conteneurisation — Docker & Incus
|
|
|
|
Ce dossier contient les fichiers de conteneurisation pour les services Talas.
|
|
|
|
## Stratégie de conteneurisation
|
|
|
|
Talas utilise **deux technologies complémentaires** selon le cas d'usage :
|
|
|
|
| Technologie | Usage | Pourquoi |
|
|
|-------------|-------|----------|
|
|
| **Docker** | Services applicatifs (bases de données, queues, outils) | Images standardisées, écosystème riche, docker-compose |
|
|
| **Incus** | Machines complètes nécessitant un OS complet | Isolation système, ZFS backing natif, meilleur pour les workloads persistants |
|
|
|
|
## Services Docker déployés
|
|
|
|
### Développement (`docker-compose.yml`)
|
|
|
|
| Service | Image | Port exposé | Usage |
|
|
|---------|-------|-------------|-------|
|
|
| `postgres` | PostgreSQL 16 | 15432 | Base de données principale |
|
|
| `redis` | Redis 7 | 16379 | Sessions, cache, rate limiting |
|
|
| `rabbitmq` | RabbitMQ 3 | 15672 / 25672 | Message broker (événements async) |
|
|
| `clamav` | ClamAV 1.4 | 13310 | Scan antivirus des uploads |
|
|
| `minio` | MinIO | 19000 | Stockage objet S3-compatible |
|
|
| `elasticsearch` | Elasticsearch | 19200 | Recherche full-text |
|
|
|
|
### Production (`docker-compose.prod.yml`)
|
|
|
|
Mêmes services avec en plus :
|
|
- **Volumes persistants** (données sur pools ZFS)
|
|
- **Limites de ressources** CPU/RAM par conteneur
|
|
- **Health checks** sur tous les services
|
|
- **Restart policy** : `unless-stopped`
|
|
- **Isolation réseau** (réseaux Docker dédiés)
|
|
- **Logging** centralisé vers Filebeat
|
|
|
|
### Images applicatives
|
|
|
|
| Service | Dockerfile dev | Dockerfile prod | Base prod |
|
|
|---------|---------------|-----------------|-----------|
|
|
| Backend Go | `veza-backend-api/Dockerfile` | `Dockerfile.production` | `scratch` (~15 Mo) |
|
|
| Stream Rust | `veza-stream-server/Dockerfile` | `Dockerfile.production` | `debian:bookworm-slim` (~100 Mo) |
|
|
| Frontend React | `apps/web/Dockerfile` | `Dockerfile.production` | `nginx:latest` (~30 Mo) |
|
|
|
|
## Incus
|
|
|
|
Incus (fork de LXD) est utilisé pour les workloads nécessitant un OS complet :
|
|
|
|
**Configuration :**
|
|
- Pool de stockage ZFS backing (`zfs create pool/incus`)
|
|
- Profils par type de workload
|
|
- Gestion des permissions via groupe `incus-admin`
|
|
- subuid/subgid configurés pour l'isolation
|
|
|
|
**Commandes courantes :**
|
|
```bash
|
|
incus launch images:debian/12 mon-conteneur # Créer
|
|
incus list # Lister
|
|
incus exec mon-conteneur -- bash # Shell
|
|
incus project create prod # Projet
|
|
incus project switch prod # Changer
|
|
```
|
|
|
|
Installation documentée dans `04_INFRA_DEPLOIEMENT/Notes_Operations/install_incus.txt`.
|
|
|
|
## Stockage et persistance
|
|
|
|
| Type de données | Stratégie | Backing |
|
|
|-----------------|-----------|---------|
|
|
| PostgreSQL (WAL + data) | Volume Docker sur **SSD** | ZFS mirror |
|
|
| Redis (RDB + AOF) | Volume Docker sur **SSD** | ZFS mirror |
|
|
| MinIO (audio, fichiers) | Volume Docker sur **HDD** | ZFS mirror pool (1.8 To) |
|
|
| Elasticsearch (indices) | Volume Docker sur **HDD 15K** | ZFS mirror |
|
|
| Backups PITR | Volume dédié sur **HDD** | ZFS snapshots |
|
|
|
|
## Rôles Ansible associés
|
|
|
|
| Rôle | Description |
|
|
|------|-------------|
|
|
| `docker` | Installation et configuration Docker |
|
|
| `minio` | Configuration MinIO S3 |
|
|
|
|
## Contenu de ce dossier
|
|
|
|
- `docker-compose.yml` : stack développement
|
|
- `docker-compose.prod.yml` : stack production
|
|
- `docker-compose.dev.yml` : services dev uniquement
|
|
- `Dockerfiles/` : fichiers Docker par service
|
|
- `incus-profiles/` : profils Incus par workload
|
|
- `volumes/` : scripts de montage et backup
|
|
|
|
## Voir aussi
|
|
|
|
- [[04_INFRA_DEPLOIEMENT/Architecture_Serveurs/ARCHITECTURE_INFRA]] — Allocation stockage et topologie
|
|
- [[04_INFRA_DEPLOIEMENT/CI_CD/PROCEDURES_DEPLOIEMENT]] — Procédures de déploiement
|
|
- [[03_APPS_&_SERVICES/CONFIGURATION_ENVIRONNEMENT]] — Variables d'environnement Docker
|