{"id":1047,"date":"2026-04-30T12:44:31","date_gmt":"2026-04-30T12:44:31","guid":{"rendered":"https:\/\/pythonia.fr\/?page_id=1047"},"modified":"2026-04-30T12:55:49","modified_gmt":"2026-04-30T12:55:49","slug":"elementor-1047","status":"publish","type":"page","link":"https:\/\/pythonia.fr\/index.php\/elementor-1047\/","title":{"rendered":"Elementor #1047"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1047\" class=\"elementor elementor-1047\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d2e79c0 e-flex e-con-boxed e-con e-parent\" data-id=\"d2e79c0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcbdb71 elementor-widget elementor-widget-heading\" data-id=\"fcbdb71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">D\u00e9ployer une application IA sur le cloud<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fc9267a e-flex e-con-boxed e-con e-parent\" data-id=\"fc9267a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-27a3a98 elementor-widget elementor-widget-heading\" data-id=\"27a3a98\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><div style=\"display:flex;gap:40px;flex-wrap:wrap;font-family:sans-serif\">\n  <!-- Colonne gauche : Objectifs -->\n  <div style=\"flex:2;min-width:300px\">\n    <h3 style=\"color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px;font-size:16px\">\n      Objectifs :\n    <\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:2;margin-left:20px\">\n      <li>Comprendre le cloud et choisir la plateforme adapt\u00e9e \u00e0 son projet Python (Render, Azure, AWS)<\/li>\n      <li>G\u00e9rer les d\u00e9pendances, variables d'environnement et secrets de mani\u00e8re reproductible et s\u00e9curis\u00e9e<\/li>\n      <li>D\u00e9ployer un script Python ou une API FastAPI accessible publiquement en moins d'une heure<\/li>\n      <li>Automatiser l'ex\u00e9cution (t\u00e2ches planifi\u00e9es) et le d\u00e9ploiement continu via GitHub Actions<\/li>\n      <li>Monitorer une application en production et ma\u00eetriser les co\u00fbts d'h\u00e9bergement<\/li>\n    <\/ul>\n  <\/div>\n  <!-- Colonne droite : Tarif + liens -->\n  <div style=\"flex:1;min-width:200px;background:#0B1D33;padding:25px;border-radius:12px;height:fit-content\">\n    <div style=\"padding:12px 0;border-bottom:1px solid #1a3a5c\">\n      <span style=\"color:#8899AA;font-size:12px;text-transform:uppercase;letter-spacing:0.5px\">Tarif inter \/ participant<\/span>\n      <div style=\"color:#FFFFFF;font-size:22px;font-weight:bold;margin-top:4px\">\n        1 800 \u20ac <span style=\"font-size:13px;font-weight:normal;color:#8899AA\">HT<\/span>\n      <\/div>\n    <\/div>\n    <a href=\"http:\/\/pythonia.fr\/wp-content\/uploads\/2026\/04\/Programme_Cloud_1_Deploiement_Python_Pythonia.pdf\" target=\"_blank\" style=\"display:block;color:#FFFFFF;font-size:15px;text-decoration:none;padding:12px 0;border-bottom:1px solid #1a3a5c\">\n      \ud83d\udcc4 Programme (PDF)\n    <\/a>\n    <a href=\"#\" id=\"btn-dates\" style=\"display:block;color:#FFFFFF;font-size:15px;text-decoration:none;padding:12px 0;border-bottom:1px solid #1a3a5c\">\n      \ud83d\udcc5 Voir les dates\n    <\/a>\n    <button id=\"btn-contact\" style=\"display:block;width:100%;margin-top:20px;padding:15px 20px;background:#5DADE2;color:#FFFFFF;font-size:15px;font-weight:bold;border:none;border-radius:8px;cursor:pointer\">\n      \u2709\ufe0f Demande d'information\n    <\/button>\n  <\/div>\n<\/div>\u200b<\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b1b4946 e-grid e-con-boxed e-con e-parent\" data-id=\"b1b4946\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-77154ef elementor-widget elementor-widget-heading\" data-id=\"77154ef\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"><div style=\"display:flex;gap:40px;flex-wrap:wrap\">\n\n  <!-- Colonne gauche : Contenu -->\n  <div style=\"flex:2;min-width:300px\">\n\n    <h3 style=\"font-size:24px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">Public vis\u00e9<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>D\u00e9veloppeurs Python souhaitant mettre en production leurs scripts et applications<\/li>\n      <li>Data analysts et data scientists confront\u00e9s \u00e0 des besoins de d\u00e9ploiement (API, scripts programm\u00e9s)<\/li>\n      <li>Profils techniques en ESN ou cabinets de conseil intervenant sur des projets cloud<\/li>\n    <\/ul>\n\n    <h3 style=\"font-size:24px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">Objectifs p\u00e9dagogiques<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Comprendre les fondamentaux du cloud : IaaS, PaaS, SaaS, r\u00e9gions, zones de disponibilit\u00e9<\/li>\n      <li>Comparer les principales plateformes pour Python (Render, Railway, Azure, AWS, GCP)<\/li>\n      <li>G\u00e9rer les d\u00e9pendances Python de mani\u00e8re reproductible (requirements.txt, pyproject.toml, uv)<\/li>\n      <li>Utiliser les variables d'environnement et les secrets de mani\u00e8re s\u00e9curis\u00e9e<\/li>\n      <li>D\u00e9ployer un script Python sur une plateforme PaaS en moins d'une heure<\/li>\n      <li>D\u00e9ployer une API Python (FastAPI, Flask) accessible publiquement<\/li>\n      <li>Mettre en place une ex\u00e9cution automatis\u00e9e : t\u00e2ches planifi\u00e9es, cron, workers<\/li>\n      <li>Configurer un pipeline de d\u00e9ploiement continu depuis GitHub<\/li>\n      <li>Monitorer une application en production : logs, m\u00e9triques, alertes<\/li>\n      <li>Estimer et ma\u00eetriser les co\u00fbts d'h\u00e9bergement<\/li>\n      <li>Appliquer les bonnes pratiques de s\u00e9curit\u00e9 de base<\/li>\n    <\/ul>\n\n    <h3 style=\"font-size:24px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">Pr\u00e9requis<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Python interm\u00e9diaire : fonctions, classes, modules, gestion d'exceptions<\/li>\n      <li>Aisance en ligne de commande (Linux \/ macOS \/ WSL)<\/li>\n      <li>Notions de Git : clone, commit, push, pull<\/li>\n      <li>Avoir d\u00e9j\u00e0 \u00e9crit un script Python utile ou une petite application<\/li>\n      <li>Compte GitHub personnel (gratuit)<\/li>\n    <\/ul>\n\n    <h3 style=\"font-size:24px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">M\u00e9thodes p\u00e9dagogiques<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Alternance de th\u00e9orie (35%) et de pratique (65%)<\/li>\n      <li>D\u00e9monstrations live : d\u00e9ploiements en direct sur les principales plateformes cloud<\/li>\n      <li>P\u00e9dagogie par la comparaison : m\u00eame projet d\u00e9ploy\u00e9 sur 3 plateformes pour mesurer les diff\u00e9rences<\/li>\n      <li>Projet fil rouge : chaque participant d\u00e9ploie son propre projet au fil des 3 jours<\/li>\n      <li>Retours personnalis\u00e9s : revue individuelle de l'architecture de chaque projet final<\/li>\n      <li>Supports de cours, sch\u00e9mas d'architecture, checklists de d\u00e9ploiement et template Python production-ready remis aux stagiaires (acc\u00e8s p\u00e9renne)<\/li>\n    <\/ul>\n\n    <h1 style=\"font-size:24px;color:#FFFFFF;font-weight:bold;margin-top:40px;margin-bottom:20px\">Programme d\u00e9taill\u00e9<\/h1>\n\n    <h3 style=\"font-size:16px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">JOUR 1 \u2014 Fondamentaux du cloud et premier d\u00e9ploiement<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Qu'est-ce que le cloud ? Diff\u00e9rences IaaS \/ PaaS \/ SaaS \/ serverless<\/li>\n      <li>Cartographie des fournisseurs : AWS, Azure, GCP, OVHcloud, Scaleway<\/li>\n      <li>Plateformes PaaS orient\u00e9es Python : Render, Railway, Fly.io, Heroku<\/li>\n      <li>Crit\u00e8res de choix : co\u00fbt, localisation, conformit\u00e9, courbe d'apprentissage<\/li>\n      <li>R\u00e9gions, zones de disponibilit\u00e9, latence, conformit\u00e9 RGPD<\/li>\n      <li>Mod\u00e8le de facturation : pay-as-you-go, free tier, co\u00fbts cach\u00e9s<\/li>\n      <li>S\u00e9curit\u00e9 de base : IAM, acc\u00e8s, cl\u00e9s SSH, MFA<\/li>\n      <li>G\u00e9rer ses d\u00e9pendances : requirements.txt, pyproject.toml, uv, Poetry<\/li>\n      <li>Fixer les versions : pourquoi et comment, le fichier de lock<\/li>\n      <li>Variables d'environnement et .env : s\u00e9paration du code et de la configuration<\/li>\n      <li>Gestion des secrets : vault int\u00e9gr\u00e9, interdictions (jamais dans le code)<\/li>\n      <li>Pr\u00e9parer son projet Git pour le d\u00e9ploiement (.gitignore, README, runtime)<\/li>\n      <li>Premier d\u00e9ploiement guid\u00e9 sur Render : script de scraping programm\u00e9<\/li>\n      <li>Comprendre les logs et diagnostiquer les premi\u00e8res erreurs<\/li>\n    <\/ul>\n    <p style=\"font-size:14px;color:#FFFFFF;margin-left:20px;margin-top:15px\"><strong>\u25a0 Travaux pratiques :<\/strong><br>\n    \u2192 TP1 : Cr\u00e9er un projet Python propre avec gestion de d\u00e9pendances reproductibles<br>\n    \u2192 TP2 : D\u00e9ployer un script Python (extraction de donn\u00e9es) sur Render en moins d'une heure<br>\n    \u2192 TP3 : Configurer 3 variables d'environnement et les utiliser dans le script d\u00e9ploy\u00e9<\/p>\n\n    <h3 style=\"font-size:16px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">JOUR 2 \u2014 D\u00e9ployer une API et automatiser l'ex\u00e9cution<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Rappels express sur les API REST et les frameworks Python (FastAPI, Flask)<\/li>\n      <li>Pr\u00e9parer une API pour la production : uvicorn, gunicorn, workers<\/li>\n      <li>Fichier de configuration : Procfile, render.yaml, Dockerfile (approche comparative)<\/li>\n      <li>D\u00e9ployer une API FastAPI simple avec 3 endpoints sur Render ou Railway<\/li>\n      <li>Comparaison avec un d\u00e9ploiement sur Azure App Service<\/li>\n      <li>Gestion du port, du host et de la configuration r\u00e9seau<\/li>\n      <li>Exposer son API avec un nom de domaine personnalis\u00e9 et HTTPS<\/li>\n      <li>Documentation automatique : Swagger, ReDoc<\/li>\n      <li>T\u00e2ches planifi\u00e9es : cron jobs, scheduled jobs, Render Cron, GitHub Actions scheduled<\/li>\n      <li>Workers asynchrones : background workers, Redis Queue<\/li>\n      <li>Cas concret : ex\u00e9cuter un script quotidien \u00e0 2h du matin avec logs et alertes<\/li>\n      <li>Automatiser le d\u00e9ploiement : GitHub Actions, push-to-deploy<\/li>\n      <li>Branches et environnements : staging, production<\/li>\n      <li>Rollback rapide : principes et outillage<\/li>\n      <li>Introduction \u00e0 l'Infrastructure as Code : Terraform (survol, pour culture)<\/li>\n    <\/ul>\n    <p style=\"font-size:14px;color:#FFFFFF;margin-left:20px;margin-top:15px\"><strong>\u25a0 Travaux pratiques :<\/strong><br>\n    \u2192 TP1 : D\u00e9ployer une API FastAPI \u00e0 3 endpoints accessible publiquement<br>\n    \u2192 TP2 : Mettre en place une t\u00e2che planifi\u00e9e quotidienne avec notification en cas d'\u00e9chec<br>\n    \u2192 TP3 : Configurer un pipeline GitHub Actions qui d\u00e9ploie automatiquement sur push sur main<\/p>\n\n    <h3 style=\"font-size:16px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">JOUR 3 \u2014 Azure, AWS, monitoring et projet final<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Panorama des services Python sur Azure : App Service, Functions, Container Apps<\/li>\n      <li>Premier d\u00e9ploiement sur Azure App Service : pas \u00e0 pas<\/li>\n      <li>Azure Functions pour les ex\u00e9cutions \u00e9v\u00e9nementielles<\/li>\n      <li>Panorama des services Python sur AWS : Elastic Beanstalk, Lambda, ECS<\/li>\n      <li>Premier d\u00e9ploiement sur AWS Elastic Beanstalk : pas \u00e0 pas<\/li>\n      <li>AWS Lambda pour le serverless : quand et comment<\/li>\n      <li>Comparaison pratique : Render vs Azure vs AWS sur le m\u00eame projet<\/li>\n      <li>Crit\u00e8res de choix par cas d'usage : MVP, entreprise, volumes<\/li>\n      <li>Logs structur\u00e9s : bonnes pratiques avec Python logging<\/li>\n      <li>Centraliser les logs : plateforme native, Datadog, Better Stack<\/li>\n      <li>M\u00e9triques essentielles : CPU, m\u00e9moire, latence, erreurs<\/li>\n      <li>Alertes : configurer des seuils pertinents sans sur-alerter<\/li>\n      <li>Uptime monitoring : UptimeRobot, Better Uptime<\/li>\n      <li>Ma\u00eetrise des co\u00fbts : budgets, alertes, free tiers, tableaux de suivi<\/li>\n      <li>S\u00e9curit\u00e9 : HTTPS obligatoire, gestion des secrets, principe du moindre privil\u00e8ge<\/li>\n      <li>Protection API : authentification, rate limiting, CORS<\/li>\n    <\/ul>\n    <p style=\"font-size:14px;color:#FFFFFF;margin-left:20px;margin-top:15px\"><strong>\u25a0 Travaux pratiques \u2014 Projet final :<\/strong><br>\n    \u2192 Chaque participant choisit un projet Python personnel \u00e0 d\u00e9ployer en production<br>\n    \u2192 Livrables : code d\u00e9ploy\u00e9, pipeline CI\/CD, monitoring actif, documentation<br>\n    \u2192 Soutenance courte (10 min par participant) : architecture, choix, d\u00e9monstration<br>\n    \u2192 Retour personnalis\u00e9 du formateur<\/p>\n\n    <h3 style=\"font-size:16px;color:#FFFFFF;font-weight:bold;margin-top:25px;margin-bottom:10px\">\u00c9valuation<\/h3>\n    <ul style=\"font-size:14px;color:#FFFFFF;line-height:1.8;margin-left:20px\">\n      <li>Test de positionnement en d\u00e9but de formation<\/li>\n      <li>\u00c9valuations formatives : exercices pratiques corrig\u00e9s, debugging collectif, QCM interm\u00e9diaires<\/li>\n      <li>QCM mi-parcours de 20 questions (Jour 2)<\/li>\n      <li>QCM final de 30 questions (Jour 3) \u2014 crit\u00e8re de r\u00e9ussite : 60%<\/li>\n      <li>Pr\u00e9sentation et soutenance du projet final d\u00e9ploy\u00e9 en production<\/li>\n      <li>Attestation de fin de formation d\u00e9livr\u00e9e<\/li>\n    <\/ul>\n\n  <\/div>\n<\/div><\/h2>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>D\u00e9ployer une application IA sur le cloud Objectifs : Comprendre le cloud et choisir la plateforme adapt\u00e9e \u00e0 son projet [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1047","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/pages\/1047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1047"}],"version-history":[{"count":7,"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/pages\/1047\/revisions"}],"predecessor-version":[{"id":1055,"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/pages\/1047\/revisions\/1055"}],"wp:attachment":[{"href":"https:\/\/pythonia.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}