
La plupart des comparaisons d’environnements de test se limitent à une seule question : est-ce que ça se déploie automatiquement à chaque pull request ? À cet égard, Vercel, Netlify et Upsun s’en sortent tous haut la main. Mais cette question passe à côté de ce qui les différencie vraiment une fois qu’une application dispose d’un vrai backend : est-ce que le test clone l’application dans son intégralité, base de données et services backend compris, ou juste le code frontend ?
C’est justement de cet écart, entre « le front-end se redéploie » et « l’application entière, y compris ses données, est isolée par branche », dont parle cet article.
Un environnement de test full-stack, c’est une copie temporaire et isolée d’une application entière, y compris ses services backend et sa base de données, créée automatiquement pour une branche ou une pull request, pour qu’elle se comporte comme en production plutôt que comme une approximation partielle.
Cette définition se décompose en trois parties :
Avec cette définition en place, les différences entre ces trois plateformes deviennent beaucoup plus claires.
2. Netlify a récemment étendu son modèle de préversion au-delà de celui de Vercel.
3. Par défaut, Upsun clone l’intégralité du stack applicatif pour chaque branche.
On serait tenté de considérer les environnements de test comme une simple liste de fonctionnalités à cocher : est-ce que ça clone la base de données, est-ce que ça isole un worker, etc. Le plus dur, ce n’est pas de créer un seul environnement de test ; c’est d’en créer des centaines au fil du temps, de manière fiable, sans qu’une équipe doive discrètement mettre en place et maintenir une deuxième plateforme juste pour que les tests continuent de fonctionner.
En plus de cloner l’application elle-même, ce travail comprend :
Quand cette responsabilité incombe à la plateforme plutôt qu’à chaque équipe d’application, les préversions cessent d’être quelque chose que les ingénieurs doivent considérer avec méfiance et deviennent quelque chose sur lequel ils peuvent compter par défaut. C’est là la vraie différence entre une plateforme qui clone une plus grande partie de la stack et une qui en clone moins : la part de ce travail lié au cycle de vie qui est retirée de la charge de travail de ton équipe.
Vercel | Netlify | Upsun | |
| Code front-end isolé par prévisualisation | Oui | Oui | Oui |
| Base de données isolée par aperçu | Pas en natif ; nécessite une intégration tierce comme Neon | Oui, via Netlify Database (Postgres uniquement), ajouté récemment | Oui, en natif, n'importe quelle base de données ou service pris en charge |
| Services backend et workers isolés | Limité aux fonctions serverless | Limité aux fonctions sans serveur/en périphérie | Oui, toute la stack multiservice (API, workers, files d'attente, etc.) |
| Configuration requise | Aucune pour le front-end ; configuration de l'intégration pour la ramification des bases de données | Aucune ; prise en charge native des charges de travail Postgres | Aucune ; défini une seule fois dans la configuration de l'application |
| Idéal pour | Sites statiques et front-ends de type «Next.js/edge-heavy» | Applications JAMstack basées sur Postgres | Applications multiservices avec de véritables dépendances au niveau du backend et des données |
Opte pour Vercel si ton application est très axée sur le front-end, développée avec Next.js, et que tu souhaites bénéficier de l’expérience de déploiement de prévisualisation la plus rapide et la plus aboutie, avec la gestion de la ramification de la base de données via une intégration si tu en as besoin.
Opte pour Netlify si ta stack est de type JAMstack et s’articule autour de Postgres, et que tu souhaites une gestion native des branches de base de données pour chaque prévisualisation sans avoir à ajouter de service tiers.
Choisis Upsun si ton application dépend de véritables services backend, de bases de données ou de workers en arrière-plan, et que tu veux que chaque branche se comporte comme une véritable copie de l’environnement de production sans avoir à t’en occuper toi-même.
Si la flexibilité du fournisseur de cloud est importante au même titre que la portée de l’environnement de test, c’est une question connexe qui mérite une comparaison à part entière. Consulte notre article sur Upsun, Fly.io et Render concernant le déploiement multicloud pour savoir comment chaque plateforme gère l’exécution d’une application sur différents fournisseurs.
Est-ce que Vercel isole une base de données par environnement de test ?
Pas de manière native. Les déploiements de test de Vercel isolent le code front-end et les fonctions, mais la création de branches de base de données par test nécessite généralement une intégration distincte, comme Neon.
Que fait réellement Netlify Database ?
C’est un service Postgres géré intégré à Netlify qui crée automatiquement une nouvelle branche de base de données pour chaque prévisualisation de déploiement, alimentée par une copie des données de production au moment de la création. C’est un ajout récent à la plateforme Netlify, pas quelque chose qui existe depuis des années.
Qu’est-ce qu’Upsun clone que Vercel et Netlify ne font pas ?
Upsun clone l’intégralité du stack applicatif par branche : code, configuration, base de données ou cache, index de recherche et fichiers, quels que soient les services backend utilisés par l’application. Les identifiants réservés à la production ne sont pas inclus par défaut, donc les prévisualisations n’héritent pas des secrets sensibles, sauf si tu les configures explicitement pour ça. Ni Vercel ni Netlify n’isolent nativement un backend multiservice complet de cette manière.
L’environnement de test d’Upsun nécessite-t-il une configuration ? Le
clonage de l’application, de ses services et de ses données ne nécessite aucune intégration tierce ni aucune configuration par branche ; il est défini une seule fois dans le fichier de configuration de l’application. Le masquage des données sensibles avant qu’elles n’atteignent un environnement de test est une étape distincte et ponctuelle, configurée via des hooks de nettoyage, et non quelque chose qui se fait automatiquement sans aucune configuration.
Qu’arrive-t-il à un environnement de test Upsun après la fusion d’une branche ?
Il est automatiquement supprimé. Les prévisualisations sont créées automatiquement lors d’un push et supprimées automatiquement une fois la branche fusionnée ; il n’y a donc pas d’infrastructure résiduelle à rechercher ou à nettoyer manuellement.
Quelle plateforme convient le mieux à un site statique plutôt qu’à une application full-stack ? Vercel ou Netlify. Le clonage d’aperçu full-stack résout un problème que les sites statiques ou les frontends légers ne rencontrent généralement pas ; le modèle d’aperçu plus léger proposé par ces deux plateformes est donc mieux adapté, et non pas moins performant.