Dans cette section, vous verrez des instructions et des liens vers des guides pour savoir comment :
Faire de votre application FastAPI une image/conteneur Docker avec une performance maximale. En environ 5 min.
(Optionnellement) comprendre ce que vous, en tant que développeur, devez savoir sur HTTPS.
Configurer un cluster en mode Docker Swarm avec HTTPS automatique, même sur un simple serveur à 5 dollars US/mois. En environ 20 min.
Générer et déployer une application FastAPI complète, en utilisant votre cluster Docker Swarm, avec HTTPS, etc. En environ 10 min.
Vous pouvez utiliser Docker pour le déploiement. Il présente plusieurs avantages comme la sécurité, la réplicabilité, la simplicité de développement, etc.
Cette image est dotée d'un mécanisme d'"auto-tuning", de sorte qu'il vous suffit d'ajouter votre code pour obtenir automatiquement des performances très élevées. Et sans faire de sacrifices.
Mais vous pouvez toujours changer et mettre à jour toutes les configurations avec des variables d'environnement ou des fichiers de configuration.
Si vous utilisez Docker sur un Raspberry Pi (qui a un processeur ARM) ou toute autre architecture, vous pouvez créer un Dockerfile à partir de zéro, basé sur une image de base Python (qui est multi-architecture) et utiliser Uvicorn seul.
Dans ce cas, votre Dockerfile pourrait ressembler à ceci :
fast →docker run -d --name mycontainer -p 80:80 myimage restart ↻
Vous disposez maintenant d'un serveur FastAPI optimisé dans un conteneur Docker. Configuré automatiquement pour votre
serveur actuel (et le nombre de cœurs du CPU).
Traefik est un reverse proxy/load balancer
haute performance. Il peut faire office de "Proxy de terminaison TLS" (entre autres fonctionnalités).
Il est intégré à Let's Encrypt. Ainsi, il peut gérer toutes les parties HTTPS, y compris l'acquisition et le renouvellement des certificats.
Il est également intégré à Docker. Ainsi, vous pouvez déclarer vos domaines dans les configurations de chaque application et faire en sorte qu'elles lisent ces configurations, génèrent les certificats HTTPS et servent via HTTPS à votre application automatiquement, sans nécessiter aucune modification de leurs configurations.
Avec ces informations et ces outils, passez à la section suivante pour tout combiner.
Cluster en mode Docker Swarm avec Traefik et HTTPS¶
Vous pouvez avoir un cluster en mode Docker Swarm configuré en quelques minutes (environ 20 min) avec un processus Traefik principal gérant HTTPS (y compris l'acquisition et le renouvellement des certificats).
En utilisant le mode Docker Swarm, vous pouvez commencer par un "cluster" d'une seule machine (il peut même s'agir
d'un serveur à 5 USD/mois) et ensuite vous pouvez vous développer autant que vous le souhaitez en ajoutant d'autres serveurs.
Pour configurer un cluster en mode Docker Swarm avec Traefik et la gestion de HTTPS, suivez ce guide :