Un environnement de prévisualisation par pull request, sur des serveurs à vous
Les environnements de prévisualisation par PR sont une des fonctionnalités qui ont fait paraître, rétrospectivement, le flux de travail de Vercel et Netlify inévitable — un relecteur clique sur un lien plutôt que de lire un diff et d’imaginer ce que ça fait. La partie facile à manquer quand ce flux de travail n’existe que sur la plateforme gérée de quelqu’un d’autre : chacun de ces environnements de prévisualisation est un serveur qui tourne, et un serveur qui tourne coûte de l’argent, que quelqu’un regarde la PR ou non.
Ce que l’activation fait vraiment
Avec GitHub connecté, activez les prévisualisations pour une application et chaque pull request après ça reçoit sa propre copie complète — même build, mêmes types de processus, sa propre URL, retirée automatiquement au moment où la PR se ferme. Aucun provisionnement manuel par PR, aucun nettoyage manuel une fois terminé; le cycle de vie correspond exactement à celui de la PR elle-même.
La partie vraiment différente : les prévisualisations dorment
C’est le détail qui compte plus que le mécanisme de prévisualisation lui-même : les nouvelles applications de staging et de prévisualisation dorment par défaut après 30 minutes sans trafic, et la prochaine requête les réveille. Une PR ouverte pendant deux semaines pendant que quelqu’un est en vacances n’est pas un serveur qui tourne au ralenti à plein coût pendant deux semaines — c’est un serveur endormi presque tout le temps qui se réveille au moment où quelqu’un rouvre vraiment le lien de prévisualisation.
Configurable par application sous Settings → General : jamais, 10 minutes, 30 minutes, 1 heure, 6 heures, ou une journée complète sans trafic avant de dormir — ou définissez des heures d’éveil à la place, des jours précis et une plage horaire (dans le fuseau horaire de l’application) où elle doit rester active, dormant en dehors de cette plage peu importe le trafic et se réveillant à la prochaine requête de toute façon.
railyard sleep my-preview-app 30
Des environnements complets, pas juste des prévisualisations
Les prévisualisations sont le cas limité à une PR d’une idée plus large : les environnements sont des copies complètes d’un projet — production, staging, ce dont une équipe a besoin — créées depuis le canvas. Les services à l’intérieur d’un environnement se référencent entre eux de façon normale (${{api.RAILYARD_PRIVATE_URL}}), résolus à l’intérieur de ce même environnement automatiquement, pour qu’un environnement de staging parle à la propre base de données du staging, pas à celle de production, sans que rien ne soit codé en dur pour connaître la différence.
Pourquoi le modèle de coût est le vrai point
Un système de prévisualisation par PR qui facture comme un serveur de production pour chaque PR ouverte finit soit peu utilisé (annulant l’intérêt de l’avoir), soit devenant une ligne budgétaire que quelqu’un finit par questionner. Un système qui dort par défaut fait la chose utile (un environnement en marche à réellement parcourir) sans le compromis habituel de payer plein prix pour une infrastructure inactive la majeure partie de la vie d’une PR.
Référence complète : Environnements et prévisualisations.