Déployer une application IA sur le cloud
Objectifs :
- Comprendre le cloud et choisir la plateforme adaptée à son projet Python (Render, Azure, AWS)
- Gérer les dépendances, variables d'environnement et secrets de manière reproductible et sécurisée
- Déployer un script Python ou une API FastAPI accessible publiquement en moins d'une heure
- Automatiser l'exécution (tâches planifiées) et le déploiement continu via GitHub Actions
- Monitorer une application en production et maîtriser les coûts d'hébergement
Objectifs :
- Comprendre le cloud et choisir la plateforme adaptée à son projet Python (Render, Azure, AWS)
- Gérer les dépendances, variables d'environnement et secrets de manière reproductible et sécurisée
- Déployer un script Python ou une API FastAPI accessible publiquement en moins d'une heure
- Automatiser l'exécution (tâches planifiées) et le déploiement continu via GitHub Actions
- Monitorer une application en production et maîtriser les coûts d'hébergement
Public visé
- Développeurs Python souhaitant mettre en production leurs scripts et applications
- Data analysts et data scientists confrontés à des besoins de déploiement (API, scripts programmés)
- Profils techniques en ESN ou cabinets de conseil intervenant sur des projets cloud
Objectifs pédagogiques
- Comprendre les fondamentaux du cloud : IaaS, PaaS, SaaS, régions, zones de disponibilité
- Comparer les principales plateformes pour Python (Render, Railway, Azure, AWS, GCP)
- Gérer les dépendances Python de manière reproductible (requirements.txt, pyproject.toml, uv)
- Utiliser les variables d'environnement et les secrets de manière sécurisée
- Déployer un script Python sur une plateforme PaaS en moins d'une heure
- Déployer une API Python (FastAPI, Flask) accessible publiquement
- Mettre en place une exécution automatisée : tâches planifiées, cron, workers
- Configurer un pipeline de déploiement continu depuis GitHub
- Monitorer une application en production : logs, métriques, alertes
- Estimer et maîtriser les coûts d'hébergement
- Appliquer les bonnes pratiques de sécurité de base
Prérequis
- Python intermédiaire : fonctions, classes, modules, gestion d'exceptions
- Aisance en ligne de commande (Linux / macOS / WSL)
- Notions de Git : clone, commit, push, pull
- Avoir déjà écrit un script Python utile ou une petite application
- Compte GitHub personnel (gratuit)
Méthodes pédagogiques
- Alternance de théorie (35%) et de pratique (65%)
- Démonstrations live : déploiements en direct sur les principales plateformes cloud
- Pédagogie par la comparaison : même projet déployé sur 3 plateformes pour mesurer les différences
- Projet fil rouge : chaque participant déploie son propre projet au fil des 3 jours
- Retours personnalisés : revue individuelle de l'architecture de chaque projet final
- Supports de cours, schémas d'architecture, checklists de déploiement et template Python production-ready remis aux stagiaires (accès pérenne)
Programme détaillé
JOUR 1 — Fondamentaux du cloud et premier déploiement
- Qu'est-ce que le cloud ? Différences IaaS / PaaS / SaaS / serverless
- Cartographie des fournisseurs : AWS, Azure, GCP, OVHcloud, Scaleway
- Plateformes PaaS orientées Python : Render, Railway, Fly.io, Heroku
- Critères de choix : coût, localisation, conformité, courbe d'apprentissage
- Régions, zones de disponibilité, latence, conformité RGPD
- Modèle de facturation : pay-as-you-go, free tier, coûts cachés
- Sécurité de base : IAM, accès, clés SSH, MFA
- Gérer ses dépendances : requirements.txt, pyproject.toml, uv, Poetry
- Fixer les versions : pourquoi et comment, le fichier de lock
- Variables d'environnement et .env : séparation du code et de la configuration
- Gestion des secrets : vault intégré, interdictions (jamais dans le code)
- Préparer son projet Git pour le déploiement (.gitignore, README, runtime)
- Premier déploiement guidé sur Render : script de scraping programmé
- Comprendre les logs et diagnostiquer les premières erreurs
■ Travaux pratiques :
→ TP1 : Créer un projet Python propre avec gestion de dépendances reproductibles
→ TP2 : Déployer un script Python (extraction de données) sur Render en moins d'une heure
→ TP3 : Configurer 3 variables d'environnement et les utiliser dans le script déployé
JOUR 2 — Déployer une API et automatiser l'exécution
- Rappels express sur les API REST et les frameworks Python (FastAPI, Flask)
- Préparer une API pour la production : uvicorn, gunicorn, workers
- Fichier de configuration : Procfile, render.yaml, Dockerfile (approche comparative)
- Déployer une API FastAPI simple avec 3 endpoints sur Render ou Railway
- Comparaison avec un déploiement sur Azure App Service
- Gestion du port, du host et de la configuration réseau
- Exposer son API avec un nom de domaine personnalisé et HTTPS
- Documentation automatique : Swagger, ReDoc
- Tâches planifiées : cron jobs, scheduled jobs, Render Cron, GitHub Actions scheduled
- Workers asynchrones : background workers, Redis Queue
- Cas concret : exécuter un script quotidien à 2h du matin avec logs et alertes
- Automatiser le déploiement : GitHub Actions, push-to-deploy
- Branches et environnements : staging, production
- Rollback rapide : principes et outillage
- Introduction à l'Infrastructure as Code : Terraform (survol, pour culture)
■ Travaux pratiques :
→ TP1 : Déployer une API FastAPI à 3 endpoints accessible publiquement
→ TP2 : Mettre en place une tâche planifiée quotidienne avec notification en cas d'échec
→ TP3 : Configurer un pipeline GitHub Actions qui déploie automatiquement sur push sur main
JOUR 3 — Azure, AWS, monitoring et projet final
- Panorama des services Python sur Azure : App Service, Functions, Container Apps
- Premier déploiement sur Azure App Service : pas à pas
- Azure Functions pour les exécutions événementielles
- Panorama des services Python sur AWS : Elastic Beanstalk, Lambda, ECS
- Premier déploiement sur AWS Elastic Beanstalk : pas à pas
- AWS Lambda pour le serverless : quand et comment
- Comparaison pratique : Render vs Azure vs AWS sur le même projet
- Critères de choix par cas d'usage : MVP, entreprise, volumes
- Logs structurés : bonnes pratiques avec Python logging
- Centraliser les logs : plateforme native, Datadog, Better Stack
- Métriques essentielles : CPU, mémoire, latence, erreurs
- Alertes : configurer des seuils pertinents sans sur-alerter
- Uptime monitoring : UptimeRobot, Better Uptime
- Maîtrise des coûts : budgets, alertes, free tiers, tableaux de suivi
- Sécurité : HTTPS obligatoire, gestion des secrets, principe du moindre privilège
- Protection API : authentification, rate limiting, CORS
■ Travaux pratiques — Projet final :
→ Chaque participant choisit un projet Python personnel à déployer en production
→ Livrables : code déployé, pipeline CI/CD, monitoring actif, documentation
→ Soutenance courte (10 min par participant) : architecture, choix, démonstration
→ Retour personnalisé du formateur
Évaluation
- Test de positionnement en début de formation
- Évaluations formatives : exercices pratiques corrigés, debugging collectif, QCM intermédiaires
- QCM mi-parcours de 20 questions (Jour 2)
- QCM final de 30 questions (Jour 3) — critère de réussite : 60%
- Présentation et soutenance du projet final déployé en production
- Attestation de fin de formation délivrée
Public visé
- Développeurs Python souhaitant mettre en production leurs scripts et applications
- Data analysts et data scientists confrontés à des besoins de déploiement (API, scripts programmés)
- Profils techniques en ESN ou cabinets de conseil intervenant sur des projets cloud
Objectifs pédagogiques
- Comprendre les fondamentaux du cloud : IaaS, PaaS, SaaS, régions, zones de disponibilité
- Comparer les principales plateformes pour Python (Render, Railway, Azure, AWS, GCP)
- Gérer les dépendances Python de manière reproductible (requirements.txt, pyproject.toml, uv)
- Utiliser les variables d'environnement et les secrets de manière sécurisée
- Déployer un script Python sur une plateforme PaaS en moins d'une heure
- Déployer une API Python (FastAPI, Flask) accessible publiquement
- Mettre en place une exécution automatisée : tâches planifiées, cron, workers
- Configurer un pipeline de déploiement continu depuis GitHub
- Monitorer une application en production : logs, métriques, alertes
- Estimer et maîtriser les coûts d'hébergement
- Appliquer les bonnes pratiques de sécurité de base
Prérequis
- Python intermédiaire : fonctions, classes, modules, gestion d'exceptions
- Aisance en ligne de commande (Linux / macOS / WSL)
- Notions de Git : clone, commit, push, pull
- Avoir déjà écrit un script Python utile ou une petite application
- Compte GitHub personnel (gratuit)
Méthodes pédagogiques
- Alternance de théorie (35%) et de pratique (65%)
- Démonstrations live : déploiements en direct sur les principales plateformes cloud
- Pédagogie par la comparaison : même projet déployé sur 3 plateformes pour mesurer les différences
- Projet fil rouge : chaque participant déploie son propre projet au fil des 3 jours
- Retours personnalisés : revue individuelle de l'architecture de chaque projet final
- Supports de cours, schémas d'architecture, checklists de déploiement et template Python production-ready remis aux stagiaires (accès pérenne)
Programme détaillé
JOUR 1 — Fondamentaux du cloud et premier déploiement
- Qu'est-ce que le cloud ? Différences IaaS / PaaS / SaaS / serverless
- Cartographie des fournisseurs : AWS, Azure, GCP, OVHcloud, Scaleway
- Plateformes PaaS orientées Python : Render, Railway, Fly.io, Heroku
- Critères de choix : coût, localisation, conformité, courbe d'apprentissage
- Régions, zones de disponibilité, latence, conformité RGPD
- Modèle de facturation : pay-as-you-go, free tier, coûts cachés
- Sécurité de base : IAM, accès, clés SSH, MFA
- Gérer ses dépendances : requirements.txt, pyproject.toml, uv, Poetry
- Fixer les versions : pourquoi et comment, le fichier de lock
- Variables d'environnement et .env : séparation du code et de la configuration
- Gestion des secrets : vault intégré, interdictions (jamais dans le code)
- Préparer son projet Git pour le déploiement (.gitignore, README, runtime)
- Premier déploiement guidé sur Render : script de scraping programmé
- Comprendre les logs et diagnostiquer les premières erreurs
■ Travaux pratiques :
→ TP1 : Créer un projet Python propre avec gestion de dépendances reproductibles
→ TP2 : Déployer un script Python (extraction de données) sur Render en moins d'une heure
→ TP3 : Configurer 3 variables d'environnement et les utiliser dans le script déployé
JOUR 2 — Déployer une API et automatiser l'exécution
- Rappels express sur les API REST et les frameworks Python (FastAPI, Flask)
- Préparer une API pour la production : uvicorn, gunicorn, workers
- Fichier de configuration : Procfile, render.yaml, Dockerfile (approche comparative)
- Déployer une API FastAPI simple avec 3 endpoints sur Render ou Railway
- Comparaison avec un déploiement sur Azure App Service
- Gestion du port, du host et de la configuration réseau
- Exposer son API avec un nom de domaine personnalisé et HTTPS
- Documentation automatique : Swagger, ReDoc
- Tâches planifiées : cron jobs, scheduled jobs, Render Cron, GitHub Actions scheduled
- Workers asynchrones : background workers, Redis Queue
- Cas concret : exécuter un script quotidien à 2h du matin avec logs et alertes
- Automatiser le déploiement : GitHub Actions, push-to-deploy
- Branches et environnements : staging, production
- Rollback rapide : principes et outillage
- Introduction à l'Infrastructure as Code : Terraform (survol, pour culture)
■ Travaux pratiques :
→ TP1 : Déployer une API FastAPI à 3 endpoints accessible publiquement
→ TP2 : Mettre en place une tâche planifiée quotidienne avec notification en cas d'échec
→ TP3 : Configurer un pipeline GitHub Actions qui déploie automatiquement sur push sur main
JOUR 3 — Azure, AWS, monitoring et projet final
- Panorama des services Python sur Azure : App Service, Functions, Container Apps
- Premier déploiement sur Azure App Service : pas à pas
- Azure Functions pour les exécutions événementielles
- Panorama des services Python sur AWS : Elastic Beanstalk, Lambda, ECS
- Premier déploiement sur AWS Elastic Beanstalk : pas à pas
- AWS Lambda pour le serverless : quand et comment
- Comparaison pratique : Render vs Azure vs AWS sur le même projet
- Critères de choix par cas d'usage : MVP, entreprise, volumes
- Logs structurés : bonnes pratiques avec Python logging
- Centraliser les logs : plateforme native, Datadog, Better Stack
- Métriques essentielles : CPU, mémoire, latence, erreurs
- Alertes : configurer des seuils pertinents sans sur-alerter
- Uptime monitoring : UptimeRobot, Better Uptime
- Maîtrise des coûts : budgets, alertes, free tiers, tableaux de suivi
- Sécurité : HTTPS obligatoire, gestion des secrets, principe du moindre privilège
- Protection API : authentification, rate limiting, CORS
■ Travaux pratiques — Projet final :
→ Chaque participant choisit un projet Python personnel à déployer en production
→ Livrables : code déployé, pipeline CI/CD, monitoring actif, documentation
→ Soutenance courte (10 min par participant) : architecture, choix, démonstration
→ Retour personnalisé du formateur
Évaluation
- Test de positionnement en début de formation
- Évaluations formatives : exercices pratiques corrigés, debugging collectif, QCM intermédiaires
- QCM mi-parcours de 20 questions (Jour 2)
- QCM final de 30 questions (Jour 3) — critère de réussite : 60%
- Présentation et soutenance du projet final déployé en production
- Attestation de fin de formation délivrée