• Formerly Platform.sh
  • Contact us
  • Documentation
  • Login
Watch a demoFree trial
Blog
Blog
BlogProduitÉtudes de casNouvellesPerspectives
Blog

Création et déploiement de l'application Symfony ChatGPT avec Upsun

PaaSSymfonySymfonyConmulti-applicationsdéploiementBlackfiremise à l'échelle
24 décembre 2025
Partager
Cette page a été rédigée en anglais par nos experts, puis traduite par une IA pour vous y donner accès rapidement! Pour la version originale, c’est par ici.

Cet article de blog est basé sur une présentation en direct de Guillaume lors de la SymfonyCon 2023 sur le déploiement d'applications avec la plateforme en tant que service Upsun. Nous avons utilisé des outils d'IA pour la transcription et pour améliorer la structure et la clarté du contenu.

Si vous utilisez encore le protocole FTP (File Transfer Protocol) pour le déploiement, cet article est fait pour vous. Au cours d'une session en direct de 35 minutes, Guillaume a expliqué ce qu'est une plateforme en tant que service (PaaS), pourquoi elle est utile et comment faire passer une application réelle du développement local à un environnement de production évolutif et observable. 

Avant de se plonger dans les solutions modernes, Guillaume a posé une question intéressante au public : « Y a-t-il encore des personnes qui utilisent le FTP pour le déploiement ? » Cette question a révélé une réalité révélatrice du paysage actuel du déploiement. Si certains développeurs sont passés à AWS et à d'autres plateformes cloud, beaucoup sont encore à la recherche d'un équilibre optimal entre simplicité et puissance.

Guillaume apporte une expérience considérable à cette discussion, ayant commencé son parcours de développement avec PHP 3 et Symfony 1.0, ce qui lui donne une perspective unique sur l'évolution des pratiques de déploiement au fil des ans.

Création d'une application concrète

Pour illustrer des scénarios de déploiement pratiques, créons une application de chat qui sert de wrapper pour ChatGPT. L'application se compose de deux éléments principaux :

Le backend : une API Symfony qui reçoit les invites via REST, les envoie à ChatGPT d'OpenAI et renvoie les réponses au frontend. Le backend stocke les conversations dans une base de données PostgreSQL et implémente le streaming en temps réel à l'aide de la fonctionnalité StreamResponse de Symfony.

Le frontend : une application React créée avec Create React App, qui gère l'interface utilisateur et l'affichage des messages en temps réel.

La mise en œuvre du streaming est particulièrement remarquable. Au lieu d'attendre que ChatGPT génère une réponse complète (ce qui peut prendre plusieurs secondes), l'application diffuse chaque morceau de texte dès qu'il arrive d'OpenAI vers le frontend à l'aide de Server-Sent Events. Cette approche améliore considérablement l'expérience utilisateur en affichant les réponses au fur et à mesure qu'elles sont générées.

Le défi des applications de streaming

Guillaume a souligné un problème critique de scalabilité avec les applications de streaming : « Si la réponse prend trois secondes à générer, j'ai un worker PHP qui travaille pendant trois secondes en arrière-plan. Si 10 000 utilisateurs utilisent votre application en même temps, vous avez besoin que ces 10 000 workers PHP fonctionnent. »

Cela crée un problème d'allocation des ressources, les workers étant bloqués dans l'attente de réponses API externes, même s'ils ne consomment pas beaucoup de ressources CPU. C'est un défi courant auquel sont confrontés de nombreux développeurs lorsqu'ils créent des applications en temps réel.

Upsun : une plateforme axée sur les développeurs

Upsun représente une nouvelle approche de la plateforme en tant que service, spécialement conçue pour les développeurs qui créent des applications complexes à partir de multiples technologies et composants. La plateforme a été lancée le jour de la présentation de Guillaume et s'adresse aux développeurs qui travaillent avec des architectures sophistiquées à plusieurs composants.

Choisissez une région respectueuse de l'environnement

Un aspect intéressant d'Upsun est l'accent mis sur l'impact environnemental. Lors de la création d'un nouveau projet, les développeurs peuvent choisir parmi différentes régions cloud sur AWS, Orange, Azure et Google Cloud Platform. La plateforme fournit des indicateurs d'empreinte carbone pour chaque région, ce qui permet aux développeurs de choisir des options d'hébergement plus écologiques lorsque les exigences en matière de souveraineté n'imposent pas d'emplacements spécifiques.

Configuration simplifiée

L'une des principales innovations d'Upsun réside dans son approche de la configuration. Au lieu des configurations YAML complexes qui nuisent aux déploiements Kubernetes (nécessitant souvent « 25 fichiers YAML différents provenant de plugins communautaires »), Upsun utilise la CLI Symfony pour détecter les exigences du projet et générer automatiquement les configurations appropriées.

Le processus est remarquablement simple :

  1. Le CLI Symfony détecte la version PHP de votre projet, les extensions requises et les dépendances
  2. Il génère automatiquement les fichiers de configuration nécessaires
  3. Tout est enregistré dans votre référentiel pour des déploiements reproductibles.

Guillaume a ensuite ajouté la deuxième application et les routes qui répartissent le trafic entre api. et le frontend principal. Conceptuellement, cela ressemble à ceci :

# .upsun/config.yaml (illustrative)
routes:
  "https://api.{default_domain}/":
    to: "app:api"
  "https://{default_domain}/":
    to: "app:web"

apps:
  api:
    type: "php:8.3"
    build:
      flavor: composer:2
    extensions: [curl, pdo_pgsql]
    relationships:
      database: "db:postgresql"
  web:
    type: "nodejs:20"
    build:
      commands:
        - "bun install"
        - "bun run build"
    web:
      commands:
        start: "serve -s build -l 8080"

services:
  db:
    type: postgresql

Prise en charge multi-applications

Pour les projets comportant plusieurs composants (comme l'application de chat de Guillaume avec une interface utilisateur et un backend séparés), Upsun gère automatiquement le routage. Les développeurs peuvent définir des sous-domaines (tels que api et frontend) et la plateforme gère le routage du trafic entre les différents conteneurs d'applications.

Déploiement en action

La démonstration en direct a montré l'ensemble du processus de déploiement, du développement local à la production :

  1. Création du projet : utilisation de symfony project:create pour configurer le projet Upsun
  2. Configuration : génération automatique des configurations de déploiement pour les deux applications
  3. Variables d'environnement : configuration des informations d'identification des services externes (telles que les clés API OpenAI) via l'interface CLI
  4. Déploiement : une seule commande Symfony deploy gère la construction, la conteneurisation et le déploiement

La plateforme effectue des compilations déterministes, garantissant ainsi la cohérence des déploiements, quel que soit l'environnement de développement individuel. Cela élimine le problème courant lié au comportement différent des applications en raison des variations des versions PHP locales, des versions de base de données ou des différences entre les outils JavaScript.

Surveillance et mise à l'échelle des performances

Upsun inclut le profilage Blackfire intégré pour tous les environnements, fournissant des informations détaillées sur les performances sans configuration supplémentaire. Cette intégration a révélé que l'implémentation du streaming de Guillaume passait 85 % de son temps à attendre les réponses de ChatGPT, confirmant les inquiétudes concernant l'allocation des ressources.

Allocation dynamique des ressources

Contrairement à l'hébergement traditionnel, qui vous enferme dans des forfaits spécifiques, Upsun permet d'ajuster les ressources en temps réel. Grâce à l'interface CLI ou web, les développeurs peuvent modifier à la volée l'allocation du CPU, les limites de mémoire et le nombre d'instances.

Guillaume a démontré la mise à l'échelle de son backend de une à quatre instances en temps réel, la plateforme provisionnant automatiquement des nœuds supplémentaires en quelques secondes. Cette flexibilité s'étend à la fois à la mise à l'échelle horizontale (augmentation du nombre d'instances) et à la mise à l'échelle verticale (allocation de plus de ressources par instance).

Observabilité : requêtes, journaux, métriques

La plateforme prend en charge la mise à l'échelle basée sur les notifications, où les systèmes de surveillance peuvent déclencher automatiquement des ajustements des ressources. Par exemple, si Blackfire détecte une dégradation du temps de réponse lors des transactions de paiement à 4 heures du matin, il peut automatiquement augmenter les ressources et les réduire lorsque les performances reviennent à la normale.

Modèle de tarification

Upsun propose également une approche de tarification basée sur les ressources. Les développeurs paient par seconde de CPU et par seconde de mémoire de ressources réelles, auxquels s'ajoutent de faibles frais de licence utilisateur. Selon Guillaume, une application de production basique (comme un blog) peut fonctionner pour environ 4 dollars par mois, tandis que des configurations plus complexes coûtent généralement entre 30 et 40 dollars par mois.

Ce modèle aligne directement les coûts sur l'utilisation, évitant ainsi le problème courant de payer pour une capacité inutilisée ou d'être surpris par des coûts d'évolutivité.

Stratégies de déploiement et absence de temps d'arrêt

Les questions du public ont révélé des détails essentiels sur l'approche de déploiement d'Upsun. La plateforme utilise une stratégie de déploiement bleu-vert, dans laquelle les nouvelles images de conteneurs sont créées en arrière-plan et les connexions réseau sont commutées au dernier moment, ce qui minimise les temps d'arrêt.

Pour les applications utilisant des migrations de bases de données, la plateforme :

  1. Met l'application en mode lecture seule
  2. Exécute les migrations nécessaires
  3. Passe à la nouvelle base de code
  4. Met en file d'attente et rejoue toutes les requêtes entrantes arrivées pendant la transition

Ce processus entraîne généralement une latence apparente de 5 à 10 secondes plutôt qu'un temps d'arrêt réel, car les requêtes sont mises en file d'attente et traitées une fois que la nouvelle version est en ligne.

L'accent mis sur l'expérience des développeurs

Tout au long de la présentation, Guillaume a souligné qu'Upsun est conçu « par des développeurs, pour des développeurs », tout en tenant compte des besoins plus larges de l'organisation. La plateforme comprend des fonctionnalités de collaboration entre les équipes, permettant au personnel marketing d'examiner les demandes d'extraction et aux chefs de projet de surveiller les déploiements et l'état de l'environnement.

Cette approche holistique reconnaît que le développement moderne implique divers acteurs au-delà de la seule équipe d'ingénieurs.

Pourquoi est-ce important pour votre équipe ?

  • Rapidité : de la version locale à la mise en ligne en quelques minutes, avec des builds reproductibles.
  • Qualité : le profilage et les journaux sur chaque environnement vous aident à livrer des correctifs en toute confiance.
  • Cohérence : le YAML piloté par Git regroupe l'application et l'infrastructure en un seul endroit.
  • Réduction de la charge de travail : évoluez à l'aide d'une commande, sans avoir recours à une salle de crise.
  • Coût prévisible : payez pour les ressources que vous utilisez réellement.

Essayez le flux par vous-même

Recréez la démo avec votre propre API et un petit frontend :

  1. Générez la configuration avec l'interface CLI de votre framework.
  2. Ajoutez un deuxième bloc d'application pour votre build frontend.
  3. Définissez les routes pour api et l'hôte principal.
  4. Validez, déployez et testez à l'aide des noms d'hôte temporaires.
  5. Ajoutez des secrets en tant que variables d'environnement et redéployez.
  6. Profilage d'une requête réelle, puis mise à l'échelle pour correspondre à votre modèle de trafic.

Votre premier objectif n'est pas la perfection. Il s'agit d'un pipeline propre et reproductible, de la validation à la production, que toute l'équipe peut comprendre. Après cela, les boutons sont là quand vous en avez besoin.

Perspectives

Upsun représente une évolution intéressante dans les offres de plateforme en tant que service, en mettant l'accent sur l'expérience des développeurs tout en conservant la flexibilité nécessaire pour les applications complexes. La combinaison de la configuration automatique, de la mise à l'échelle en temps réel, de la surveillance intégrée et de la tarification basée sur l'utilisation répond à de nombreux points faibles dans le paysage actuel du déploiement.

Comme l'a fait remarquer Guillaume, « nous devons nous assurer que le produit vous convient parfaitement ». Le succès de la plateforme dépendra en fin de compte de sa capacité à répondre aux besoins réels des développeurs qui créent des applications sophistiquées dans l'environnement multicomposant et multitechnologique actuel.

Pour les développeurs lassés de se débattre avec des configurations de déploiement complexes ou prisonniers de plans d'hébergement rigides, Upsun offre une alternative convaincante qui promet de simplifier le cheminement entre le code et la production tout en conservant le contrôle et l'observabilité requis par les applications modernes.

Restez informé

Abonnez-vous à notre newsletter mensuelle pour les dernières mises à jour et nouvelles.

Votre meilleur travail
est à l'horizon

Essai gratuit
UpsunFormerly Platform.sh

Join our monthly newsletter

Compliant and validated

ISO/IEC 27001SOC 2 Type 2PCI L1HIPAATX-RAMP
© 2026 Upsun. All rights reserved.