Contact salesFree trial
Blog

Upsun : une alternative à Heroku

HerokuPaaSAWSla durabilitéobservabilitéPythonPHPmicroservicesNGINX
Zohar Stolar
Directeur de la recherche et des opérations stratégiques
Share

Upsun et Heroku sont deux plates-formes cloud de qualité professionnelle qui ont fait leurs preuves. Examinons quelques-unes des similitudes et des différences qui les distinguent.

Le marché des solutions PaaS (Platform-as-a-Service ) a connu une croissance fulgurante ces dernières années, principalement en raison de l'utilisation croissante des conteneurs qui ont révolutionné le développement de logiciels.

Alors que le nombre total de plateformes disponibles ne cesse d'augmenter, il n'existe qu'une poignée de solutions matures et prêtes pour l'entreprise ; les autres sont en phase de démarrage ou de jeune entreprise, ce qui n'est pas adapté aux opérations critiques.

Upsun et Heroku sont deux de ces solutions éprouvées et prêtes pour l'entreprise.

Upsun en bref

Avec l'expérience des développeurs comme priorité absolue, Upsun fusionne la fiabilité et la stabilité d'une entreprise avec l'éclat, l'innovation et l'agilité d'une nouvelle marque. Construite sur Platform.sh, une solution primée, Upsun bénéficie d'années d'expérience et de la reconnaissance de la marque, ce qui lui permet d'éviter les problèmes de croissance que rencontrent souvent les jeunes entreprises.

Heroku en bref

Heroku a été l'une des premières plateformes cloud et est toujours considérée comme l'un des plus grands acteurs.

Mais elle n'a pas changé radicalement au fil des ans. Cette stabilité peut séduire les entreprises clientes qui souhaitent éviter un trop grand nombre de pièces mobiles. En même temps, il semble que la trajectoire d'Heroku ne s'oriente pas vers l'innovation ou ne suive pas le besoin toujours croissant de qualité et de rapidité. La banalisation des plateformes cloud a créé de nombreux rivaux à Heroku, et l'entreprise devra redoubler d'efforts pour rester un leader du secteur.

Examinons quelques-unes des différences entre les deux solutions :

Caractéristiques techniques

Multicloud

L'infrastructure physique d'Heroku est hébergée uniquement sur un nombre limité de régions d'Amazon Web Service (AWS). Cette contrainte peut poser problème si votre organisation a besoin d'un IaaS différent ou ne peut pas travailler avec AWS pour diverses raisons (par exemple, réglementations, souveraineté du nuage).

Upsun permet aux utilisateurs de choisir entre un large éventail de fournisseurs IaaS et plusieurs régions pour chacun d'entre eux, de sorte que chaque projet peut être hébergé là où il convient le mieux en termes de géographie (distance par rapport aux utilisateurs finaux) et de réglementation (identité du fournisseur IaaS).

Durabilité

À une époque où l'empreinte carbone numérique fait l'objet d'un examen minutieux, les solutions et pratiques d'hébergement durable d'Upsun permettent de garantir que vos applications reçoivent toute l'énergie dont elles ont besoin tout en étant respectueuses de l'environnement, ce quicontraste avec les approches moins vertes adoptées par d'autres fournisseurs.

Pour renforcer notre engagement, Upsun offre aux utilisateurs une réduction de 3 % sur l'utilisation des ressources lorsqu'ils choisissent de se déployer dans un centre de données alimenté par des sources d'énergie renouvelables dans l'une de nos régions plus vertes éligibles à des incitations. Tout cela pour les aider à réduire leur empreinte carbone.

Heroku n'a pas publié de politique de développement durable ni de mesures incitatives.

*Upsun offre une orchestration efficace du cloud, avec une utilisation du CPU 12 fois supérieure à celle d'AWS EC2. Greenly a calculé que les gains étaient une densité 14 fois supérieure pour le développement et 10 fois supérieure pour les charges de travail de production.

Stockage persistant

Le stockage persistant est, comme son nom l'indique, un stockage de données qui persiste même lorsque le conteneur qui exécute l'application est redémarré ou remplacé pour une raison quelconque. Dans la plupart des cas, le stockage du conteneur lui-même est éphémère et ne doit pas contenir d'informations dont l'application dépend pour fonctionner correctement.

Heroku n'a pas de stockage persistant. Tout ce qui peut être stocké dans un conteneur Heroku est éphémère par définition. Et toutes les données qui doivent persister entre les déploiements doivent être stockées en dehors de la plateforme (c.-à-d. AWS S3). Cela rend le déploiement sur Heroku beaucoup plus compliqué, car vous devez

  1. Trouver un fournisseur tiers pour le stockage persistant.
  2. Adapter votre application pour lire les fichiers du fournisseur externe.
  3. Adapter vos scripts de déploiement pour utiliser le stockage externe - non seulement lors du déploiement dans l'environnement principal, mais aussi lors du clonage d'environnements pour prévisualiser les changements.

Contrairement à Heroku, Upsun n'attend pas des utilisateurs qu'ils fassent appel à des tiers pour construire un projet complet, y compris le stockage des données et des médias. Upsun vous permet de choisir n'importe quelle quantité de stockage persistant directement sur la plateforme, en utilisant la même configuration facile que pour les autres paramètres de l'application, de sorte que l'exécution d'une application avec état est simple. Lors du clonage d'un environnement, les données et les fichiers stockés sur le disque persistant sont également clonés en quelques secondes, ce qui garantit que tout environnement de prévisualisation est non seulement rapide et facile à créer, mais qu'il est également une copie parfaite de la production.

Délai d'attente des demandes

Heroku a un délai de réponse non configurable de 30 secondes.

Upsun n'a pas de délai d'attente. Même si vous devez télécharger de très gros fichiers, le téléchargement ne sera pas interrompu à cause des limitations de la plateforme.

Protection des services de données

En raison de la façon dont la plateforme Heroku est construite, son comportement par défaut permet d'accéder à des services tels que les bases de données et la recherche sur Internet, ce qui peut potentiellement exposer des données sensibles à des utilisateurs non autorisés. La protection de ces services nécessite les espaces privés d'Heroku, un service premium pour les clients haut de gamme.

Upsun propose de nombreux services de données différents (par exemple PostgreSQL, MongoDB, ElasticSearch, Redis, MariaDB) accessibles uniquement à partir de vos applications, ce qui vous permet de vous assurer que vos données ne sont pas directement exposées à l'internet.

Runtimes, Dockers, buildpacks

Upsun et Heroku prennent en charge en mode natif un large éventail d'environnements d'exécution, notamment Python, Node.js, PHP, Go, Java et Ruby. Chacune de ces plateformes prend également en charge en mode natif un ensemble divergent de langages: Images Upsun pour C#/.Net Core, Elixir, Lisp et Rust; buildpacks Heroku pour Clojure, Gradle, Grails 3.x, JVM, Play 2.x et Scala.

Vous pouvez ressentir la grande différence lorsque vous souhaitez déployer des logiciels écrits dans des langages qui ne sont pas pris en charge de manière native par la plateforme. Cela peut être le cas, par exemple, lorsque vous travaillez dans une architecture microservices. Sur Heroku, le développement dans des langues non natives est presque impossible et vous obligerait à développer votre propre buildpack. En revanche, Upsun dispose d'une image composable basée sur Nix, qui vous permet de développer et de déployer des logiciels même dans des langues nouvelles ou moins populaires. Bien que cela soit également possible avec Dockers ou des buildpacks, Upsun ne sacrifie pas la simplicité à la polyvalence ; l'utilisation de l'image composable est aussi simple que l'utilisation de n'importe quelle image d'exécution d'Upsun mentionnée plus haut.

Prise en charge de HTTP/2

Protocole standard de l'industrie pour l'internet, HTTP/2 rend la navigation plus rapide et plus efficace. Il existe depuis 2015 et est pris en charge par la plupart des serveurs et navigateurs web. Pourtant, Heroku continue de fournir du contenu via HTTP/1.1. À l'heure actuelle (avril 2024), des années après la sortie de la nouvelle version du protocole, Heroku ne prend en charge HTTP/2 qu'en version bêta.

Upsun sert le contenu par le biais d'une version récente de nginx et prend pleinement en charge HTTP/2.

Sécurité - Protection DDoS

Comme pour d'autres aspects de la plateforme, Heroku recommande d'utiliser des services tiers pour la protection DDoS, ce qui signifie que votre facture mensuelle augmentera au fur et à mesure que vous ajouterez la complexité de traiter avec plus de fournisseurs.

Soigneusement configuré contre les attaques DDoS, Upsun utilise un cache proxy inverse intégré qui protège vos applications contre les attaques malveillantes. La sécuritéétant assurée par Upsun, vous n'avez pas besoin d'aller voir ailleurs pour une protection supplémentaire.

Continuité du service

Les conteneurs Heroku (dynos) redémarrent au moins toutes les 24 heures dans le cadre d'un processus appelé Cycling, perdant l'état en mémoire (par exemple, les caches) et interrompant les connexions websocket. Les redémarrages d'applications Heroku entraînent évidemment des temps d'arrêt. Pour les éviter, vous devez acheter plus d'instances et les équilibrer en charge, en espérant qu'elles n'auront pas de cycle en même temps.

Upsun redémarre les conteneurs et les services uniquement lorsque les développeurs en prennent l'initiative, généralement lors du déploiement d'une nouvelle version de leurs applications. Dans de rares cas, Upsun déclenche également une reconstruction forcée pour appliquer des correctifs de sécurité critiques.

Travaux Cron

Opérations planifiées essentielles à la santé et aux performances d'un système, les tâches cron constituent une partie essentielle de tout système d'exploitation. Les applications web tirent parti de cette capacité pour exécuter des tâches de maintenance automatisées en cours.

Heroku dispose d'un module complémentaire gratuit appelé Heroku Scheduler, qui lance un conteneur dédié à l'exécution des tâches cron. Il est important de noter ces deux facteurs clés :

  1. Heroku lui-même indique clairement dans sa documentation qu'il ne faut pas se fier à son propre module complémentaire de planification pour les tâches critiques et recommande d'utiliser un processus personnalisé.
  2. Le fait que les tâches planifiées s'exécutent dans un conteneur dédié signifie une utilisation accrue et, par conséquent, une facture mensuelle plus élevée.

Upsun fournit un support cron complet de manière native et directement dans la configuration d'une application. Il utilise la syntaxe standard d'Unix et permet un contrôle fin de l'exécution des tâches et de leur terminaison. Avec Upsun, les tâches cron s'exécutent dans le conteneur alloué et n'entraînent pas de frais supplémentaires ni ne comptent dans l'utilisation facturable additionnelle.

Expérience et productivité des développeurs

Environnements de prévisualisation

La possibilité de créer des clones octet par octet des environnements de production pour le développement, les révisions, les tests et les approbations est l'une des fonctionnalités les plus robustes d'Upsun. Elle change la donne pour les développeurs, les chefs d'équipe, les équipes d'assurance qualité et les autres parties prenantes.

Dans Upsun, chaque projet peut avoir plusieurs environnements. L'un d'entre eux est généralement utilisé pour la production, tandis que les autres sont utilisés à des fins de test. Il suffit d'exécuter upsun branch staging main pour créer un nouvel environnement de prévisualisation appelé staging, disponible à une URL unique, qui est une copie exacte de l' environnement principal, avec tous ses services, ses travailleurs, ses bases de données et ses fichiers stockés.

(Voir la sectionTarificationci-dessous pour en savoir plus sur la façon dont les environnements multiples affectent la tarification).

Contrairement à Upsun, Heroku n'a pas de concept de projet, et chaque environnement est une application distincte. Cependant, Heroku dispose d'une fonction appelée Review Apps (examen des applications) dont le concept est similaire à celui des environnements de prévisualisation d'Upsun . Cela dit, le processus est beaucoup plus lourd et comprend de nombreuses étapes manuelles et une configuration, ce qui le rend beaucoup moins convivial pour les développeurs. Enfin, Heroku ne clone pas la base de données avec le code de l'application ; il incombe donc au développeur de mettre en place un processus distinct pour charger les données dans la Review App.

Observabilité

Upsun offre une vision inégalée de la performance et de la santé de vos applications, allant bien au-delà de la surveillance de base. Les outils d'observabilité d'Upsun sont intuitifs et fournissent des données claires et exploitables. Avec Blackfire intégré , vous pouvez descendre jusqu'au niveau de la fonction de votre code pour aider à réduire le temps d'exécution, votre facture mensuelle et l'empreinte carbone de votre application. Upsun fournit tous les niveaux d'observabilité et de télémétrie sous le même toit, où toutes les parties prenantes ont accès, et la gestion des tâches internes devient beaucoup plus efficace.

Heroku, comme beaucoup d'autres plateformes, vous offre une télémétrie de base, qui peut être suffisante si vous voulez savoir quand acheter plus de stockage ou quand il est possible de réduire la taille des conteneurs. Pour tout ce qui va au-delà, en particulier les informations sur les performances de l'application elle-même, vous devrez intégrer un service externe tel que NewRelic, Datadog ou d'autres services commerciaux tiers similaires.

Prix et transparence

Lors du choix d'un fournisseur de services en nuage, la tarification est évidemment un facteur de différenciation essentiel, que de nombreux utilisateurs essaieront de comprendre par eux-mêmes.

C'est là que la prévisibilité entre en jeu. Il s'agit de fournir aux clients toutes les données transparentes dont ils ont besoin pour calculer eux-mêmes la facturation mensuelle ou, du moins, pour voir à l'avance ce qu'il en coûtera à la fin du mois.

Par définition, la tarification à l'usage change d'un mois à l'autre, il n'est donc pas possible de la prévoir à 100 %. Cependant, si vous disposez de paramètres faciles à calculer, la prévisibilité augmente, ce qui vous rend moins susceptible d'avoir de mauvaises surprises.

La tarification

Upsun a un modèle de tarificationsimple et totalement transparent . Nous vous fournissons tout ce dont vous avez besoin pour faire fonctionner vos applications, et vous ne payez que pour ce que vous utilisez réellement. Upsun vous permet également de modifier votre plan comme vous le souhaitez, sans limitations, et vous fournit une estimation de votre prochain cycle de facturation. Vous gardez donc toujours le contrôle, avec une vue d'ensemble disponible à tout moment. Pour vous éviter de gonfler votre facture mensuelle, Upsun vous permet de définir des valeurs de taille différentes pour les environnements de prévisualisation, de sorte que vous n'ayez pas les mêmes dépenses pour les environnements de test que pour les environnements de production.

Lorsque l'on compare Upsun et Heroku, il est important de noter que la tarification d'Heroku n'est pas aussi transparente et exige de ses clients qu'ils passent par un long processus, d'autant plus (comme indiqué précédemment) qu'Heroku s'appuie fortement sur des fournisseurs tiers pour presque tous les détails, à l'exception de l'informatique. Il peut donc être très difficile pour les clients de se faire une idée précise de leur facture mensuelle.

Voici une simulation d'une application web critique de taille raisonnable, gérée par une équipe de trois développeurs, chacun travaillant sur un environnement de prévisualisation différent.

Vous pouvez constater que les prix sont relativement similaires entre Upsun et Heroku, avec un léger avantage pour Upsun. Mais la vraie valeur réside dans les deux comparaisons mentionnées ici, mais qui ne sont pas visibles sur le graphique ci-dessous :

  1. Avec Upsun, vous avez tout sous le même toit : une seule facture, un seul fournisseur, une seule responsabilité. Heroku délègue les services et les responsabilités à des tiers.
  2. Le modèle de tarification d'Upsun est prévisible et extrêmement facile à comprendre et à contrôler. Celui d'Heroku est très compliqué et imprévisible.

Un mot sur la transparence

Avec Upsun, ce que vous achetez est exactement ce que vous obtenez, surtout en ce qui concerne les ressources. Vous disposez des informations nécessaires pour calculer vos dépenses à l'avance. En utilisant des valeurs et des unités de prix simples, Upsun a le modèle le plus simple qu'un service en nuage puisse avoir. Comme Upsun fournit tous les services directement (c'est-à-dire qu'il n'est pas nécessaire d'acheter des services tiers), la facturation devient très claire.

À l'inverse, Heroku a un concept opaque et plutôt compliqué dedynos qui représente la puissance de calcul allouée à votre conteneur. Ce manque de transparence rend difficile la prise de décisions fondées sur des données concernant la quantité de ressources dont une application peut avoir besoin pour fonctionner correctement dans différents scénarios.

Comme nous l'avons démontré ci-dessus, Heroku attend de ses utilisateurs qu'ils achètent des services tiers, ce qui augmente les dépenses mensuelles en services cloud, même si ces services ne sont pas fournis directement par Heroku.

Récapitulatif

Choisir le bon PaaS pour votre organisation est une décision importante. Upsun et Heroku offrent tous deux des plateformes valables pour prendre en charge vos applications. Mais pour les équipes de développement qui créent des applications web modernes dans un environnement en constante évolution, Upsun offre une alternative très flexible, robuste et transparente.

Votre meilleur travail
est à l'horizon

Essai gratuit
Discord
© 2025 Platform.sh. All rights reserved.