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 :

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 :

Commandes courantes :

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

Voir aussi