- Fonctionnalités
- Pricing

Comment traduis-tu un fichier Procfile Heroku en définitions de service Upsun ?
La traduction d'un fichier Procfile Heroku vers Upsun implique de mapper les « types de processus » (web, worker, cron) à des blocs d'application distincts au sein d'un fichier d'.upsun/config.yaml. Alors que Heroku utilise un fichier Procfile et des buildpacks pour définir les commandes d'exécution, Upsun utilise une structure YAML déclarative pour définir les environnements d'exécution, les hooks de build et les relations de service explicites (comme PostgreSQL ou Redis). Ce changement fait passer l'application d'une mise à l'échelle basée sur les processus (Dynos) à une conteneurisation basée sur les ressources, offrant un contrôle plus fin sur le CPU et la RAM.
TL;DR
|
Point clé : la migration depuis un Procfile nécessite de redéfinir les types de processus en tant que conteneurs d'application isolés pour une meilleure efficacité des ressources.
Dans un Procfile Heroku, tu peux voir une simple ligne comme web: bundle exec rails server. Sur Upsun, cette logique est déplacée dans l’.upsun/config.yaml. Ce n’est pas seulement un changement de syntaxe. C’est une mise à niveau architecturale.
nodejs:22 ou python:3.12).web de ton Procfile devient l'instruction web.commands.start dans Upsun.| Élément Procfile Heroku | Équivalent dans Upsun .upsun/config.yaml |
web: [command] | web.commands.start: [command] |
worker: [command] | applications.[name].commands.start: [command] |
| Buildpacks | type: [runtime] + hooks.build |
| Add-ons | services: [service_name] |
Point clé : Passer des buildpacks « boîte noire » à des hooks de build explicites garantit des déploiements plus rapides et reproductibles.
L'un des principaux points de friction lors de la migration est la « magie » des buildpacks. Upsun remplace cela par des hooks de build et de déploiement transparents.
.upsun/config.yaml` définit une section `hooks.build` dans laquelle tu exécutes explicitement `npm install` ou `composer install`.Point clé : les relations de service explicites dans .upsun/config.yaml empêchent les « échecs silencieux » courants lors des migrations de PaaS hérités.
Dans Heroku, les connexions aux bases de données sont souvent gérées via des variables d’environnement invisibles. Upsun t’oblige à définir une « relationship » entre ton application et ses services (par exemple, un service PostgreSQL ou Redis).
Upsun prend-il en charge plusieurs processus de type Procfile dans un même projet ?
Oui. Tu peux définir plusieurs applications au sein d’un même répertoire de projet. Chacune peut disposer de son propre profil de ressources (CPU/RAM) et de ses propres règles de mise à l’échelle, ce qui te permet de reproduire une configuration Heroku complexe avec une efficacité bien supérieure.
Comment gérer les variables d'environnement pendant la migration ?
Les variables qui se trouvaient auparavant dans l'interface utilisateur « Config Vars » de Heroku peuvent être gérées via la CLI ou la console Upsun. Cependant, les identifiants de service (comme les URL de base de données) ne doivent jamais être codés en dur ; ils sont injectés automatiquement via l'relationships défini dans ton .upsun/config.yaml.
Puis-je toujours utiliser les Buildpacks sur Upsun ?
Bien qu’Upsun privilégie les définitions d’exécution explicites pour des raisons de performances et de clarté, la plateforme est conçue pour gérer la logique de conteneurisation standard. La plupart des équipes constatent que le passage à des hooks explicites dans .upsun/config.yaml réduit considérablement les temps de compilation et les erreurs « magiques ».