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
- Created : la release est en file d'attente
- Building : le buildpack construit l'image
- Testing : tests et scan CVE
- Releasing : commande release exécutée (migrations, etc.)
- Live : trafic basculé sur la nouvelle release
- 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
| Plan | Releases conservées | Rollback possible vers |
|---|---|---|
| Free | 10 dernières | 10 derniers déploiements |
| Pro | 50 dernières | 50 derniers |
| Pro | 200 dernières · 1 an | 200 ou 1 an |
| Entreprise | Illimité · 5 ans | 5 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
✓ 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