Stralya

DevOps

Conseil en release engineering

Des déploiements blue-green et canary, des feature flags qui séparent le déploiement de la mise en production, des versions lisibles par votre support et un rollback qui se déclenche tout seul. Les releases redeviennent un travail de routine.

CanaryBlue-greenFeature flags

En bref

Le release engineering maîtrise la façon dont un artefact devient un changement visible par les utilisateurs : versioning, stratégie de déploiement, feature flags, calendrier des releases et retour arrière en cas d’échec. Stralya le conçoit avec votre équipe pour des déploiements petits, fréquents et réversibles, avec un rollback déclenché par des signaux de santé plutôt que par une réunion.

6 à 12 semaines

Durée type d’une mission

De l’audit des releases au déploiement progressif et au rollback automatisés sur vos principaux services.

1 à 2 semaines

Audit des releases

Historique des incidents, calendrier des releases et pratiques de rollback passés en revue, avec un processus cible écrit.

15

Consultants seniors

Seuls des ingénieurs seniors travaillent sur vos releases, aux côtés de votre équipe dès la première semaine.

Qu’est-ce que le release engineering ?

Le release engineering couvre tout ce qui se passe entre un artefact testé et le moment où les utilisateurs voient le changement. Il détermine comment les versions sont nommées, par quels environnements passe un build, comment le trafic bascule vers la nouvelle version, qui peut activer une fonctionnalité, et ce qui se passe automatiquement quand la nouvelle version se comporte mal en production.

L’idée centrale est de séparer le déploiement de la mise en production. Déployer, c’est installer le nouveau code sur les serveurs. Mettre en production, c’est l’exposer aux utilisateurs. Quand les deux sont séparés, une équipe peut déployer plusieurs fois par jour avec des fonctionnalités masquées derrière des flags, puis les ouvrir à une petite part des utilisateurs, observer les signaux et élargir l’exposition par étapes.

Le release engineering se situe en aval du pipeline de build et en amont de la supervision. Il réutilise les artefacts produits par le pipeline et les signaux fournis par l’observabilité. Au sein de notre expertise en conseil DevOps, c’est souvent le service qui transforme un pipeline rapide en une livraison à la fois rapide et sûre.

Les signes qu’il vous faut du release engineering

Les équipes nous appellent généralement après une release qui a mal tourné aux yeux de tous, ou quand le processus de release est devenu si lourd que plus personne ne veut le mener. Les deux situations révèlent les mêmes lacunes dans la façon dont les changements atteignent les utilisateurs.

  • Les releases exigent une réunion, une checklist et un week-end

    Quand chaque release est un événement avec cellule de crise, les changements s’accumulent entre deux releases et chacune comporte plus de risques que la précédente.

  • Le rollback consiste à redéployer l’ancien build à la main

    Si revenir en arrière prend autant de temps qu’avancer, les équipes hésitent pendant les incidents et les utilisateurs attendent pendant que la décision se discute.

  • Les fonctionnalités inachevées vivent sur des branches de longue durée

    Des branches ouvertes pendant des semaines pour masquer un travail en cours finissent en merges douloureux et en releases qui regroupent des changements sans rapport entre eux.

  • Personne ne sait quelle version tourne en production

    Sans tags cohérents ni notes de version, le support et l’ingénierie se disputent sur ce qui a changé, et les audits prennent des jours au lieu de quelques minutes.

  • Un changement de base de données a bloqué un rollback

    Des migrations de schéma livrées en même temps que le code qu’elles servent rendent le rollback impossible. Elles ont besoin de leur propre séquence et de règles de compatibilité.

Si au moins deux de ces situations vous parlent, le problème vient du processus de release, pas des personnes qui le mènent. Ajouter des étapes d’approbation aggrave généralement les choses, car les releases deviennent plus rares, donc plus volumineuses et plus risquées.

Ce que couvre notre mission de release engineering

Nous partons de la façon dont les releases se déroulent réellement aujourd’hui : le calendrier, les derniers incidents, les tentatives de rollback et les approbations. Puis nous concevons un processus cible et l’intégrons à votre outillage. Notre guide sur les fenêtres de déploiement et la planification des releases montre comment nous arbitrons entre contraintes métier et cadence de release.

  • Audit des releases et processus cible

    Le flux actuel cartographié du merge jusqu’à l’exposition aux utilisateurs, les incidents passés en revue, et un processus cible écrit avec un responsable pour chaque étape.

  • Versioning et notes de version

    Des versions sémantiques, des tags Git créés par le pipeline et des notes de version générées à partir des changements fusionnés au lieu d’être écrites de mémoire.

  • Une stratégie de déploiement par service

    Blue-green, canary ou rolling choisi pour chaque service selon son trafic, son état et son niveau de risque, puis automatisé dans votre outillage de déploiement.

  • Des feature flags avec un cycle de vie

    Une plateforme de flags ou un système interne simple, des règles de nommage, des responsables et une date de suppression, pour que les flags ne deviennent pas une dette permanente.

  • Un rollback automatisé sur signaux de santé

    Un rollback déclenché par les taux d’erreurs et la latence comparés à la version précédente, répété à intervalles réguliers, avec une reprise en main manuelle possible.

Les livrables sont une configuration opérationnelle dans vos pipelines et votre outillage de déploiement, ainsi qu’un court manuel de release. Ce manuel répond aux questions que se posent les ingénieurs d’astreinte au pire moment : comment arrêter un déploiement, comment revenir en arrière, et qui est autorisé à décider.

Votre prochaine release est-elle un pari ?

Un audit des releases dure généralement de 1 à 2 semaines et se termine par un processus de release cible et un plan priorisé.

Réserver un appel découverte gratuit

Notre méthode de refonte des releases en quatre phases

Nous faisons évoluer le processus de release un service à la fois. Chaque phase laisse à l’équipe quelque chose d’utilisable immédiatement, même si la mission s’arrête à ce stade : aucune phase n’est consacrée uniquement à la préparation.

PHASE 01

Auditer

Historique des releases, incidents, calendrier, approbations et tentatives de rollback passés en revue.

PHASE 02

Découpler

Feature flags et versioning séparent le déploiement de la mise en production.

PHASE 03

Automatiser

Déploiement progressif et rollback fondé sur la santé intégrés à l’outillage de déploiement.

PHASE 04

Répéter

Exercices de rollback, manuel de release, formation et passation à l’astreinte.

Nous choisissons un premier service avec un vrai trafic mais un rayon d’impact limité, pour que le nouveau processus soit éprouvé sur quelque chose qui compte. Une fois l’analyse canary et le rollback validés sur ce service, les mêmes templates sont déployés sur le reste du parc. Les exercices de rollback se poursuivent après la passation, car un rollback qui n’a jamais été exécuté est un espoir, pas un plan.

Blue-green, canary ou rolling : que choisir ?

Il n’existe pas de stratégie unique et universelle. Le choix dépend du trafic reçu par un service, du fait qu’il conserve ou non un état, et de la capacité supplémentaire que vous pouvez vous permettre pendant une bascule. Nous décidons service par service et consignons la justification à côté de la configuration.

StratégieFonctionnementAdaptée quandCompromis
Blue-greenDeux environnements complets, trafic basculé d’un coupUn rollback instantané compte et la capacité peut doubler brièvementUne infrastructure doublée pendant la bascule
CanaryLa nouvelle version reçoit une part de trafic faible et croissanteLe trafic est suffisant pour comparer les taux d’erreursExige de bonnes métriques et une analyse automatisée
RollingInstances remplacées par lots derrière le load balancerServices stateless avec des clients tolérantsAncienne et nouvelle versions tournent en parallèle
Feature flagCode déployé masqué, exposition pilotée à l’exécutionLe métier veut choisir le moment de la mise en productionUne dette de flags si leur suppression n’est pas imposée

La plupart des parcs finissent avec un mélange : canary pour les API à fort trafic, blue-green là où une bascule complète et rapide compte, flags pour les lancements produit. Les stratégies se combinent aussi, par exemple un déploiement canary d’un code dont la nouvelle fonctionnalité reste derrière un flag. L’essentiel est que chaque service dispose d’une stratégie documentée et d’un retour arrière automatique.

Les risques des releases et comment nous les maîtrisons

La livraison progressive réduit l’impact d’une mauvaise release, mais elle ajoute ses propres pièces mobiles. Voici les modes d’échec que nous prenons en compte dès la conception, avant que le premier déploiement automatisé n’atteigne la production.

  • Des changements de schéma qui cassent l’ancienne version

    Nous utilisons des migrations expand and contract : ajouter d’abord, basculer le code, supprimer ensuite, pour que les deux versions puissent fonctionner avec la base de données pendant un déploiement.

  • Une analyse canary sur trop peu de trafic

    Un canary qui ne voit passer qu’une poignée de requêtes ne prouve rien. Nous fixons un niveau de trafic et une durée minimaux avant toute promotion automatique.

  • Des flags jamais supprimés

    Chaque flag reçoit un responsable et une date d’expiration, et les flags obsolètes sont signalés dans le pipeline pour être nettoyés à temps.

  • Un rollback jamais testé

    Le rollback automatisé est répété à intervalles réguliers dans un environnement réel, pour que sa première exécution réelle n’ait pas lieu pendant un incident.

La conception du rollback mérite une attention particulière. Nos guides sur le rollback automatisé et la récupération après incident et sur l’audit et la traçabilité des releases en production expliquent comment détecter rapidement une mauvaise release et prouver ensuite exactement ce qui a tourné, et quand.

Tarifs du release engineering

Chaque mission commence par un diagnostic de votre façon actuelle de livrer et se conclut par un devis forfaitaire. Les durées sont indicatives, pas garanties, et chaque phase peut s’arrêter avec des résultats exploitables si vos priorités changent en cours de route.

FormatDuréePrix
Audit des releases1 à 2 semainesDevis forfaitaire après diagnostic
Livraison progressive sur les services principaux6 à 12 semainesDevis forfaitaire après l’audit
Accompagnement après la passation30 joursDevis forfaitaire après l’audit

Ce qui fait varier le prix : le nombre de services à couvrir, la quantité d’état qu’ils conservent, le routage de trafic existant et la présence ou non d’une plateforme de feature flags.

Le devis couvre uniquement des consultants seniors, un ensemble défini de services et les livrables de chaque phase. Les abonnements à une plateforme de feature flags, les coûts de load balancer ou de service mesh et toute capacité supplémentaire utilisée pendant les bascules blue-green sont payés à leurs fournisseurs, en dehors de nos honoraires.

FAQ release engineering

Quelle est la différence entre déployer et mettre en production ?

Déployer, c’est installer du nouveau code dans un environnement. Mettre en production, c’est le rendre visible aux utilisateurs. Les feature flags et les déploiements progressifs séparent les deux, pour que le code puisse être déployé souvent tout en gardant une exposition maîtrisée et réversible.

Faut-il un service mesh pour les releases canary ?

Non. La répartition du trafic canary peut se faire au niveau du load balancer, de l’ingress controller ou dans l’application avec des flags. Un mesh aide à plus grande échelle, mais nous ne le recommandons que lorsqu’un routage plus simple a atteint ses limites.

Comment gérez-vous les migrations de base de données pendant un déploiement ?

Avec des changements expand and contract. Les nouvelles colonnes ou tables sont ajoutées avant le code qui les utilise, et les anciennes ne sont supprimées qu’une fois que toutes les instances exécutent la nouvelle version, pour que le rollback ne rencontre jamais un schéma incompatible.

Faut-il acheter une plateforme de feature flags ou en construire une ?

Cela dépend de vos besoins. Quelques flags avec de simples règles d’activation peuvent vivre dans la configuration. Le ciblage par segment d’utilisateurs, les pistes d’audit et les expérimentations justifient généralement une plateforme dédiée. Nous comparons les deux options au regard de vos contraintes.

Les releases peuvent-elles avoir lieu pendant les heures ouvrées ?

Oui, et c’est généralement l’objectif. De petits changements avec analyse canary et rollback automatisés sont plus sûrs en milieu de journée, avec toute l’équipe présente, que la nuit avec un seul ingénieur d’astreinte fatigué.

Comment prouvez-vous que le nouveau processus fonctionne ?

Nous suivons le taux d’échec des changements et le temps de rétablissement, deux des métriques DORA, avant et après, et nous menons des exercices de rollback avec votre équipe. Une seconde mesure après la passation montre si les gains se maintiennent.

Relu par

Julien Mauclair

Cofondateur, delivery technique · Stralya

Dernière mise à jour :

Une release risquée en vue ? Parlons-en

Réponse sous 24 h · Premier appel sans engagement