Ces derniers temps j'ai vu pas mal de références à une question souvent critique pour certains : " Est-ce qu'on met en prod aujourd'hui ? " (surtout lorsque aujourd'hui est vendredi). Evidemment on met en prod aujourd'hui !

Commentaires

Je ne suis pas d'accord avec le diagnostic de cet article.

En effet il est essentiel d'avoir un système de déploiement fonctionnel.
Bien sûr il faut des tests pour valider le fonctionnement de l'application.

Cependant plusieurs choses sont à prendre en compte.

Comme le disait Dijkstra et à juste titre: "Les tests montrent la présence de bugs, pas leur absence."
En effet, même une excellente suite de tests n'empêche en rien l'introduction de bugs.

En ce qui concerne la mise en prod chez Github, il faut bien se rendre compte qu'il ont une architecture qui permet cette prise de risque plus que contrôlée. Un déploiement est d'abord effectué sur une partie du parc et, en fonction du taux d'erreurs obtenu dans un délai déterminé, le déploiement est reporté sur le reste des serveurs.
Toutes les PME ne peuvent pas se permettre ce genre de chose et déploient souvent sur un seul serveur.

Le fait de ne pas déployer un vendredi soir (le matin ou début d'aprem no soucy) c'est simplement ne pas risquer d'avoir un nouveau bug qui pop le samedi à 4h du mat et qui est malheureusement tellement bizarre que la suite de tests ne le couvre pas ce qui fait qu'on passe un paquet d'heures à fouiller le pourquoi du comment.

Bref. On peut déployer le vendredi soir quand on à les moyens de se le permettre ou que le risque est limité...

Il y a environ 11 ans

Comme d'habitude les excès dans un sens comme dans l'autre sont stupides.

Ce n'est pas parce qu'une app a une couverture de test complète et un système de déploiement entièrement automatisé qu'il est judicieux de déployer un vendredi.
Personne n'est à l'abris d'une rafale d'exceptions le lendemain matin lorsque tout le monde se connecte, ou pire, le soir même lorsque toute l'équipe est en train de boire une bière.
En outre, le service client est important. Nouvelles feature => questions des users donc augmentation du support, qui en général est en sommeil le week end.

Donc oui, s'il s'agit d'un changement mineur ou d'un bug fix, on déploie même le vendredi. S'il s'agit d'une grosse nouvelle feature importante, mieux vaut être prudent et attendre le lundi matin.

Cependant je conseillerais aux applis à fort trafic de mettre en place un roulement de shift "on-call" : à toute heure de la semaine, un des développeurs doit être joignable et capable d'accéder à une station de travail dans les 30 min.

Comme d'habitude, les réponses absolues sont stupides.

Il y a environ 11 ans

Être capable de déployer n'importe quand ne veut pas dire déployer n'importe quoi n'importe quand. Balancer en prod une fonctionnalité qui comporte un certain risque ne dois jamais être fait à la légère (que ce soit le lundi, le mardi, le mercredi, …)

Mais il convient de :
* réduire au maximum les risques, en permanence
* réduire au maximum les big bang
* réduire au maximum les freins liés au déploiement

Après, libre à chacun de ne pas déployer à un moment donné, du moment qu'il est _possible_ de déployer n'importe quand.

Pour avoir vécu le changement sur un projet récemment, le gain est réellement énorme. Aussi bien du point de vue des développeurs que du product owner. Le nombre de déploiement est passé de 1 par semaine à plusieurs par jours, lundi et vendredi compris. Ce n'est pas pour ça qu'on faisait n'importe quoi le vendredi, mais on pouvait déployer une correction ou une petite fonctionnalité, ce qui était impossible précédemment dans un fonctionnement big bang avec peu de déploiements puisque chaque déploiement impliquait beaucoup trop de changements.

Il y a environ 11 ans

Oui, déployer plusieurs fois par jours me parait normal. Déployer des petits trucs le vendredi me paraît normal aussi.

Idéalement, ils ne devrait jamais y avoir de big bang. Les gros refactors ou grosses fonctionnalités doivent être déployées en sous-marin au fur et à mesure que le code est prêt. Ainsi, le jour du passage public de la feature, le code est déjà en prod depuis plusieurs jours/semaines.
Evidemment, dans la pratique, on a pas toujours le choix :P

On doit être capable de déployer une branche proche de la prod à tout moment pour bugfix critique, effectivement.

Il y a environ 11 ans

Dans ce cas là on est d'accord. Le déploiement en continu est une bonne chose.
De toute façon pour ceux qui n'en font pas, le problème est ailleurs ^^

Mais dans ce cas je pense que ton article est peut-être trop catégorique sur le sujet
du vendredi alors qu'il prend tout son sens si il se focalise sur les bienfaits du
déploiement en continu.

Enfin après c'est un avis comme un autre et il est toujours intéressant d'apporter
son grain de sel sur le sujet, surtout en France... ;)

Il y a environ 11 ans

> Mais dans ce cas je pense que ton article est peut-être trop catégorique sur le sujet
> du vendredi alors qu'il prend tout son sens si il se focalise sur les bienfaits du
> déploiement en continu.

Le message est peut-être pas très bien passé alors, car il est vraiment celui-ci :

> Donc non, on déploie tous les jours, et même plusieurs fois par jour !

Le vendredi est juste ne réaction aux divers liens que j'ai vu passer :)

> Enfin après c'est un avis comme un autre et il est toujours intéressant d'apporter
> son grain de sel sur le sujet, surtout en France... ;)

Voui, je pense bien :)

Il y a environ 11 ans

C'est marrant de voir que 6 ans plus tard, le débat est toujours d'actualité malgré la démocratisation des outils de tests, de provisionning et de déploiement. Pour ma part, j'évite de pousser en prod le vendredi (hors hotfixes), parce qu'il m'est déjà arrivé d'avoir de petits soucis non repérés par les tests, et que je n'ai pas envie (d'autant plus vrai depuis que je suis jeune papa) de passer mon week-end à réparer une feature qui aurait pu attendre le lundi.

Bref, vaste débat !

Il y a plus de 4 ans
Vous devez vous inscrire ou vous connecter pour poster un commentaire