Releases : déploiements versionnés

Chaque déploiement est une release immuable, identifiée par un numéro incrémental. Conservées pour rollback rapide.

Définition

Une release est une combinaison immuable de :

  • Un commit Git précis (SHA)
  • Un slug binaire (image OCI signée)
  • Un état complet de la configuration (variables, secrets, addons attachés)
  • Un buildpack et sa version

Une release ne peut pas être modifiée. Pour changer quelque chose, on en crée une nouvelle.

Cycle de vie

  1. Created : la release est en file d'attente
  2. Building : le buildpack construit l'image
  3. Testing : tests et scan CVE
  4. Releasing : commande release exécutée (migrations, etc.)
  5. Live : trafic basculé sur la nouvelle release
  6. Failed : si une étape échoue, la release est marquée failed et le trafic reste sur la précédente

Numérotation

Numéro incrémental par app, jamais réutilisé. v1, v2, v3, …. Pas de saut, pas de chute, même après un échec.

Rétention

PlanReleases conservéesRollback possible vers
Free10 dernières10 derniers déploiements
Pro50 dernières50 derniers
Pro200 dernières · 1 an200 ou 1 an
EntrepriseIllimité · 5 ans5 ans

Rollback

Le rollback recrée une nouvelle release identique à une release antérieure :

$ paas releases:rollback v46 --app monsite
✓ release v52 créée à l'identique de v46 · live en 18 s

Le rollback inclut le code mais pas la base de données. Si la release v47 a appliqué une migration destructive, vous devez gérer la restauration de la base séparément.

Stratégies de déploiement

  • Rolling (défaut) : pods remplacés un par un, sans downtime
  • Canary : 5 % du trafic sur la nouvelle release pendant 10 min, observation, puis bascule
  • Blue-Green : nouvelle release préparée en parallèle, switch instantané au feu vert