"Release" et "Deploy" - quelle terminologie utilisez-vous, vous?

Bonjour,

Toujours dans ma recherche de clarification des process, (je pédale dans la semoule, car je reçois des infos contradictoires de la part des différents dév de mon équipe…), j’ai surfé un peu sur Internet, et il semblerait que dans la plupart des équipes (américaines, en tout cas), le terme « Release » correspond au déploiement en Production, puisque ça signifie « libérer » les développements, pour les rendre accessibles aux users.
Le terme « Deploy » serait un terme plus général pour désigner le déploiement des développements sur tel ou tel environnement (donc on peut faire un « deploy » en Préprod, ou en Prod, ou même sur Develop).

Et vous?
Quels mots utilisez-vous pour quelles opérations, svp?

Merci d’avance pour vos retours d’expé! :slight_smile:

Que ce soit pour ces termes ou pour d’autres, c’est à l’équipe à s’aligner et pas à toi à faire l’interprète.

Il y a deux possibilités, soit les gens s’alignent sur le sens d’un mot, soit ils le requalifient par un contexte.

Je suis confronté au quotidien à des termes employés avec des compréhensions ou des implications différentes selon les équipes, individus, secteurs, métiers…,

Face à cela, j’aimis en place un « glossaire contextuel ». Je demande simplement à chaque partie d’y définir chaque terme et si on se retrouve à devoir ajouter une définition différente pour un même terme, alors il est demandé pour chaque instance du terme de remplir la colonne « contexte ».

De cette manière, on ne « force » pas les différents usage(rs) à devoir changer, on montre les différences.
Et ce sont les « usagers » eux-mêmes qui soit chercheront à s’adapter (mais ça sera leur choix) ou à être plus précis, en n’utilisant plus le terme « seul » mais en précisant bien le contexte.

Puisque les parties ne sont plus « bloquées » par l’obligation d’un choix, chaque définition devient alors le prétexte d’un échange intéressant pour comprendre la définition de l’autre, pour comprendre son contexte, et peut-être réunir ces deux contextes, ou accepter les différences.

Maintenant pour en venir aux 2 mots.

Une release, une livraison, une publication, c’est (pour moi) le moment où une « version » est fixée.
Si on modifie encore quelque chose, c’est que c’est pour la version suivante.
On peut penser à un dictionnaire par exemple, on livre l’édition 2023, il est envoyé en impression. On ne peut plus revenir dessus.

Si on doit faire des corrections, on fera un addendum, un erratum ou on attend l’édition suivante.
La release est un « repère » dans la ligne de vie du produit.

Le déploiement, c’est la mise à disposition un groupe d’utilisateurs.
Le dictionnaire arrive chez le relecteur avant publication.
Le dictionnaire arrive en magasin pour qu’il soit acheté et lu par les clients.

Ce qui peut être « ambigu » en développement, c’est qu’on met en place des pratiques de déploiement continu ou des features flag. Parce qu’on rend les principes de déploiement et de release tellement atomiques, petits, fréquents que les concepts s’entremêlent.

En développement continu, chaque déploiement suit une release qui contient un minimum de changement par rapport à la release précédente.

Quand on utilise les features flag, on déploie des éléments qui ne seront pas « actifs » et qui ne seront pas perçus comme « déployés » par les utilisateurs alors qu’ils le sont. Il y a lieu alors d’ajouter le concept d’activation.

Et si je reprends ma petite explication ci-dessus, ce sont « mes définitions » l’important ce n’est pas de savoir si j’ai tort ou raison, mais bien de les comparer à celles des autres.

2 « J'aime »

Bonjour,

De mon expérience j’ai toujours utilisé les termes comme ci-dessous :

  • releases : version (par ex v1.0)qui sort du processus de développement, soit ça part en prod mais ça peut aussi bien partir en recette, qualification etc… en tous les cas on ne développe plus dessus, si on redeveloppe dessus ça sera une autre release (par ex v1.1)
  • deploy : déploiement d’une release sur un environnement, donc on prend une version par ex la v1.0 et on choisi de la déployer/installer sur un environnement dev, recette, intégration, qualification , preprod, prod, etc…
3 « J'aime »

Releaser une version peut signifier que tu as validé la version, tu as tamponné le livrable qui pourra être déployé, envoyé, installé quelque part…c’est l’action de préparer ton master, ton livrable, avec tout le nécessaire pour fonctionner correctement, donc si on fait un raccourci, l’étiquette d’une release c’est l’étiquette qui te permettra d’identifier une version contenant un périmètre fonctionnel déterminé. C’est en l’occurrence, la version qui est prévue pour être diffusée chez ton client.
Mais tu peux très bien faire ça aussi pour une version intermédiaire, ce sera le même type de livrable ,mais tant que tu ne lui as pas mis le tampon release, tu évites d’installer ce livrable chez ton client. Déployer, c’est plus l’action d’installer ton produit, ton master, ta release, quelque part, ça peut être sur la machine d’un développeur, d’un testeur, d’un PO, du client, sur tes serveurs d’intégration continue… c’est plus apparenté à l’action que tu peux être amenée à faire lorsque tu installes un programme en tant qu’utilisateur… quand tu installes et fais suivant, suivant, suivant, terminer :slight_smile: tu as « déployé » ton programme sur ton pc. Le déploiement c’est plus l’action d’envoyer et installer quelque chose quelque part.

1 « J'aime »