Déploiement Docker du service de compression : guide pratique de SmartSlim Server

Conclusion d'abord : le déploiement Docker de SmartSlim Server se déroule en quatre étapes — construction de l'image, rédaction du docker-compose.yml, démarrage du service, vérification du contrôle de santé. L'image fait environ 450 Mo, la configuration minimale est de 2 cœurs et 4 Go, et le contrôle de santé est validé dans les 5 secondes suivant le démarrage. En production, il faut configurer la persistance des volumes de données, le proxy inverse Nginx, la collecte des journaux et la sauvegarde planifiée. Cet article fournit la configuration complète du docker-compose.yml, le tableau des variables d'environnement et le détail des étapes de déploiement. Commençons par l'architecture de déploiement, puis procédons étape par étape à un déploiement de niveau production.

Si vous souhaitez savoir comment appeler l'API de compression après le déploiement Docker, nous vous recommandons de lire d'abord Guide pratique de l'API de compression : documentation détaillée de l'interface RESTful

I. Architecture de déploiement Docker

Le déploiement Docker de SmartSlim Server adopte une architecture à conteneur unique : l'application FastAPI s'exécute à l'intérieur, les fichiers et configurations sont rendus persistants via des volumes de données, et le service est exposé via un mappage de ports. En production, une couche de proxy inverse Nginx est ajoutée pour gérer la terminaison TLS et l'équilibrage de charge.

ComposantTechnologieRôlePort
Conteneur SmartSlimPython 3.9 + FastAPICœur du service de compression8000 (interne)
Conteneur NginxNginx 1.25Proxy inverse/TLS80/443 (externe)
Volume-dataDocker VolumeStockage des fichiers compressés-
Volume-logsDocker VolumeFichiers journaux-
Volume-configDocker VolumeConfiguration et licence-

Avant le déploiement, vérifiez que le serveur respecte la configuration minimale requise. Le tableau ci-dessous donne les recommandations de configuration selon la charge.

Échelle de déploiementCPUMémoireDisqueConcurrentsCas d'usage
Configuration minimale2 cœurs4 Go20 Go4Test/petite équipe
Configuration recommandée4 cœurs8 Go50 Go8Entreprise moyenne
Configuration haute charge8 cœurs16 Go100 Go16Grande entreprise
Configuration cluster4 cœurs x 3 nœuds8 Go x 3Stockage partagé24+Production haute disponibilité

II. Détail de la configuration docker-compose.yml

Voici la configuration principale du docker-compose.yml pour un environnement de production, incluant le service SmartSlim, le proxy inverse Nginx, les volumes de données et la configuration réseau.

Élément de configurationDescriptionExemple de valeur
imageNom de l'imageuglypear/smartslim-server:latest
restartStratégie de redémarragealways (environnement de production)
portsMappage de ports8000:8000
volumesMontage de volumes de données./data:/app/data
environmentVariable d'environnementSMARTSLIM_LICENSE=xxx
healthcheckContrôle de santécurl -f http://localhost:8000/health
depends_onService dépendantnginx
deploy.resourcesLimites de ressourcescpus:4, memory:8G

III. Tableau des variables d'environnement

SmartSlim Server configure ses paramètres d'exécution via des variables d'environnement. Le tableau ci-dessous liste tous les paramètres configurables.

Variable d'environnementRequisValeur par défautDescription
SMARTSLIM_LICENSEOui-Clé de licence
SMARTSLIM_HOSTNon0.0.0.0Adresse d'écoute
SMARTSLIM_PORTNon8000Port d'écoute
SMARTSLIM_WORKERSNon4Nombre de processus workers
SMARTSLIM_MAX_FILE_SIZENon1073741824Limite par fichier (1 Go)
SMARTSLIM_SECURITY_LEVELNonMEDIUMNiveau de sécurité
SMARTSLIM_RATE_LIMITNon60Limite de requêtes par minute
SMARTSLIM_LOG_LEVELNonINFONiveau de journalisation
SMARTSLIM_TEMP_DIRNon/app/data/tmpRépertoire des fichiers temporaires

IV. Détail des étapes de déploiement

Le déploiement Docker se déroule en quatre étapes : construction, démarrage, vérification, surveillance. Le tableau ci-dessous indique les opérations et méthodes de vérification pour chaque étape.

ÉtapeOpérationCommandeMéthode de vérification
1. Construire l'imageConstruire l'image SmartSlimdocker build -t smartslim-server .docker images pour voir l'image
2. Rédiger la configurationRédiger le docker-compose.ymlÉditer le fichier ymldocker-compose config pour valider
3. Démarrer le serviceDémarrer tous les conteneursdocker-compose up -ddocker-compose ps pour voir le statut
4. Vérifier la santéVérifier la disponibilité du servicecurl http://localhost:8000/healthRenvoie {"status":"ok"}
5. Configurer NginxConfigurer le proxy inverseÉditer nginx.confcurl https://domaine/health
6. Déployer la surveillanceConfigurer les journaux et la surveillanceConfigurer la collecte des journauxdocker logs pour voir les journaux

V. Meilleures pratiques en production

Le déploiement en production doit prendre en compte quatre aspects : contrôle de santé, collecte des journaux, sauvegarde des données et durcissement de la sécurité. Le tableau ci-dessous présente les meilleures pratiques recommandées.

PratiqueRecommandation de configurationFréquence de vérificationOutil
Contrôle de santéinterval:30s, timeout:10s, retries:3Temps réelDocker healthcheck
Collecte des journauxpilote json-file, max-size:100m, max-file:5Temps réelDocker logging
Sauvegarde des donnéesSauvegarde quotidienne du volume data vers un stockage indépendantQuotidiennecron + docker run
Durcissement de la sécuritéExécution en utilisateur non-root, système de fichiers en lecture seuleLors du déploiementDocker security
Limites de ressourcescpus:4, memory:8G, seuil d'alerte 80 %Temps réelDocker stats
Mise à jour de l'imageRécupérer régulièrement la dernière image et mise à jour en continuMensuelledocker-compose pull

Exemple de configuration complète du contrôle de santé : dans healthcheck, interval est défini à 30 secondes (vérification toutes les 30 secondes), timeout à 10 secondes (délai d'attente avant échec), retries à 3 (3 échecs consécutifs marquent le conteneur comme unhealthy), start_period à 10 secondes (la vérification commence 10 secondes après le démarrage). Ainsi, une anomalie du conteneur est détectée dans les 90 secondes et un redémarrage automatique est déclenché.

Indicateur de surveillancePlage normaleSeuil d'alerteCommande de consultation
Utilisation CPU0 %–60 %>80 %docker stats
Utilisation mémoire0 %–70 %>85 %docker stats
Utilisation disque0 %–70 %>85 %df -h
Temps de réponse API0–2 s>5 scurl -w paramètre
Longueur de la file de compression0–20>50Interface API status
Taux d'erreur0 %–0,1 %>1 %Statistiques des journaux

Si vous souhaitez comprendre la conception sous-jacente de la file d'attente des tâches de compression, vous pouvez consulter Conception de la file d'attente des tâches de compression. Si vous préférez l'intégration SDK locale au déploiement sur serveur, vous pouvez consulter Guide d'intégration du SDK de compression

VI. FAQ

Q1:Quelle configuration est requise pour déployer un service de compression avec Docker ?

Configuration minimale pour le déploiement Docker de SmartSlim Server : 2 cœurs CPU, 4 Go de mémoire, 20 Go d'espace disque. Configuration recommandée : 4 cœurs CPU, 8 Go de mémoire, 50 Go de disque. Le système d'exploitation doit avoir Docker 20.10+ et Docker Compose 2.0+ installés. Les architectures x86_64 et ARM64 sont prises en charge, la taille de l'image est d'environ 450 Mo. En production, il est recommandé de prévoir un espace disque supplémentaire pour stocker les fichiers compressés temporaires.

Q2:Comment mettre à jour le service de compression déployé avec Docker ?

Le processus de mise à jour se déroule en trois étapes : 1. docker-compose pull pour récupérer la dernière image ; 2. docker-compose up -d pour redémarrer le conteneur (les données des volumes ne sont pas perdues) ; 3. vérifier l'interface de contrôle de santé pour confirmer le bon fonctionnement du service. Il est recommandé de sauvegarder les volumes de données avant la mise à jour (docker run --volumes-from pour la sauvegarde). La mise à jour en continu permet un temps d'arrêt nul dans un environnement Kubernetes. La compatibilité entre versions est bonne ; consultez le changelog avant une mise à jour de version majeure.

Q3:Comment assurer la persistance des données du service de compression Docker ?

La persistance est assurée via les volumes de données Docker. Trois répertoires doivent être montés : /app/data (stockage des fichiers compressés), /app/logs (fichiers journaux), /app/config (fichiers de configuration et clés de licence). Dans le docker-compose.yml, le champ volumes déclare le mappage de l'hôte vers le conteneur. La suppression du conteneur ne supprime pas les volumes de données, les données sont en sécurité. En production, il est recommandé de monter les volumes de données sur un disque indépendant ou un NAS pour faciliter la sauvegarde et l'extension.

Q4:Le service de compression Docker prend-il en charge le déploiement en haute disponibilité ?

La version serveur de SmartSlim prend en charge le déploiement Docker sur machine unique, la version réseau prend en charge les déploiements multi-services Docker Compose et haute disponibilité Kubernetes. Dans un environnement Kubernetes, le HPA (Horizontal Pod Autoscaler) permet une mise à l'échelle élastique de 3 à 10 réplicas, combinée avec un stockage partagé (MinIO) et une base de données partagée (MySQL) pour rendre le service sans état. La version sur machine unique peut réaliser une haute disponibilité simple via l'équilibrage de charge Nginx avec plusieurs instances, mais la solution K8s de la version réseau est recommandée pour la production.

Conclusion

Le déploiement Docker de SmartSlim Server en quatre étapes : construire l'image, rédiger le docker-compose.yml, démarrer le service, vérifier le contrôle de santé. L'image fait 450 Mo, la configuration minimale est de 2 cœurs et 4 Go, le contrôle de santé est validé 5 secondes après le démarrage. Les 9 variables d'environnement couvrent les paramètres principaux : licence, concurrence, sécurité, limitation de débit. Les six meilleures pratiques en production : contrôle de santé à intervalle de 30 secondes, rotation des journaux à 100 Mo, sauvegarde quotidienne des données, durcissement de sécurité non-root, limites de ressources 4 cœurs 8 Go, mise à jour mensuelle de l'image.

Retenez trois points : premièrement, les volumes de données doivent obligatoirement monter trois répertoires (data/logs/config), la suppression du conteneur n'entraîne pas de perte de données ; deuxièmement, configurez le contrôle de santé avec interval:30s + retries:3, les anomalies sont détectées dans les 90 secondes et le redémarrage est automatique ; troisièmement, en production, ajoutez un proxy inverse Nginx pour la terminaison TLS, n'exposez pas directement le port 8000. Une fois le déploiement terminé, l'API de compression et la file d'attente des tâches permettent de construire un service de compression complet.

Besoin de compresser des fichiers ? Essayez SmartSlim

Construit sur un moteur de compression Rust auto-développé, prenant en charge 10 catégories et plus de 40 formats, dont PDF, images, vidéo, Office et OFD, avec une compression locale qui garde vos données sur place.