- PagerDuty /
- Blog /
- Opérations numériques /
- Réflexions tranchées sur le gel des codes
Blog
Réflexions tranchées sur le gel des codes
Cet article a été initialement publié sur le blog de Jeli. Jeli a été racheté par PagerDuty en 2023 et nous le republions ici afin de faire profiter notre communauté de leur expertise.
Les paroles peuvent être controversées, mais nous connaissons tous le classique des fêtes « Baby, it's cold outside » (Bébé, il fait froid dehors).
Je ne peux vraiment pas rester
Bébé, tu es toujours disponible.
Je dois partir
Bébé, tu es toujours disponible.
Cette année a été
Vous avez cessé de déployer
Très agréable
Regarde ton code, il est comme de la glace.
Bon, ce ne sont peut-être pas les paroles exactes, mais elles résonnent sans doute comme une évidence pour la plupart des entreprises d'ingénierie à cette période de l'année. Les fêtes approchent à grands pas, et dans le secteur de la tech, cela signifie soit que la moitié de votre équipe est en vacances, soit que la disponibilité de votre produit est cruciale pour les prochaines semaines. Voire les deux. Probablement les deux. Partout dans le monde, les entreprises ont déjà suspendu les déploiements pendant les fêtes afin d'éviter l'introduction de bugs dans leur code.
Vous pensez peut-être que cet article arrive trop tard, car nous sommes déjà en plein gel des déploiements pendant les fêtes. Voyez-y plutôt la visite des fantômes des stratégies de déploiement pendant cette période : il n’est pas trop tard pour entamer une réflexion rétrospective sur les gels passés et présents. Il y a toujours moyen de s’améliorer ; permettez-moi d’être votre guide pour vos futurs gels de déploiement.
Comme pour tout dans le monde moderne, la question de savoir si les gels de déploiement sont bénéfiques ou néfastes est complexe. La vie serait bien plus simple si l'on pouvait catégoriser les choses de manière tranchée. Malheureusement, la réalité est plus nuancée. Les avis sur les gels de déploiement sont partagés, comme en témoignent les nombreux débats que l'on trouve sur internet. Ils peuvent être bien gérés, comme ils peuvent être catastrophiques. Ils peuvent être acceptables, engendrer une surcharge de travail et devenir un véritable casse-tête, ou se résumer à une simple série d'obstacles à franchir.
Commençons par examiner pourquoi la plupart des organisations mettent en place un gel des déploiements : il peut s’agir de la conviction que cela empêche tout incident, ou du désir d’éviter un incident embarrassant pendant une période de forte utilisation. Vous connaissez ce genre d’incident : « Un petit déploiement, effectué pour corriger un bug, a involontairement provoqué un incident catastrophique que nous n’aurions jamais cru possible. »
Avis tranché : La mise en place d’un gel des déploiements ne garantit pas l’absence d’incidents.
Il existe une multitude de façons, parfois surprenantes, dont des incidents peuvent survenir sans qu'aucune modification de code ne soit déployée. Entre les fluctuations soudaines du trafic, les certificats expirés oubliés, les incidents chez les fournisseurs et, plus généralement, les failles de sécurité importantes dans la journalisation des erreurs, il est clair que même sans modifier votre code, des incidents se produiront. Il se peut même qu'une période sans déploiement révèle des problèmes sous-jacents insoupçonnés. C'est d'ailleurs la raison d'être de la communauté « Learning from Incidents » : une simple modification, une seule « cause racine », n'explique jamais tout. Un incident est le résultat d'une conjonction de facteurs qui, combinés, provoquent une perturbation.
Empêcher toute modification de votre code source ne vous mettra pas à l'abri des incidents pendant les fêtes. C'est un arrêt brutal.
De nombreux articles de blog expliquent pourquoi il ne faut pas interrompre le développement logiciel pendant les fêtes. Mais le sujet ici est l'impact de nos procédures sur notre quotidien. Nous facilitent-elles la vie ou la compliquent-elles ? C'est une question importante, qui dépend de nombreux facteurs liés à nos systèmes, nos collaborateurs, la culture d'entreprise et notre environnement de travail. Il n'existe pas de solution unique.
Nous proposons de reformuler ce débat, en passant de « devons-nous geler les déploiements pendant les fêtes ? » à « que pouvons-nous faire pour que les fêtes se déroulent sans encombre pour nos clients et nos employés ? »
Si votre période de pointe coïncide avec les fêtes de fin d'année, cette question devient cruciale. Vous pouvez soit ignorer que vos employés souhaitent eux aussi profiter des fêtes en ne travaillant pas sans interruption, soit l'accepter et leur accorder des congés. Votre entreprise pourrait même offrir à tous les mêmes jours de congé ! Formidable ! Mais savez-vous qui ne bénéficie pas pleinement de ces congés ? Les techniciens d'astreinte et le support technique de première ligne. Le service est assuré par les techniciens d'astreinte qui répondent aux alertes depuis leur téléphone dans un centre commercial, et par les employés les moins bien payés de l'entreprise, assis à table avec leur ordinateur portable, traitant les tickets ou les messages, à moitié présents, tandis que les fêtes battent leur plein autour d'eux.
Le service d'assistance téléphonique pendant les fêtes, c'est l'enfer. On l'a vécu. Se retrouver coincé dans sa voiture avec son ordinateur portable sur le parking d'un centre commercial, c'est bizarre, et les gens qui répondent au service client à Noël sont généralement furieux et ça se sent.
Avis tranché : Toute personne d’astreinte ou assurant un soutien pendant les fêtes doit bénéficier d’un congé supplémentaire obligatoire et percevoir une indemnité de congé.
Assurer la permanence pendant les fêtes ne fait pas de vous un héros, mais un employé qui cumule des heures de travail un jour férié. Si vous êtes d'astreinte pendant les fêtes, prenez d'autres congés : être d'astreinte n'est pas synonyme de vacances. Nous sommes tous épuisés. Nous sommes sur le point de traverser deux des années consécutives les plus absurdes de ces dernières années. Prenez une pause. Une vraie pause, sans travail, sans même ouvrir votre ordinateur. (Et à toutes les entreprises qui ne peuvent pas interrompre leurs services d'assistance pendant les fêtes : devinez quoi ? Votre personnel d'assistance est essentiel. Il mérite une meilleure rémunération.)
CONSEIL IMPORTANT : Pour ceux qui déploient pendant les fêtes : n’oubliez pas que l’ingénierie n’existe pas en vase clos.
Il est essentiel de communiquer en interne, dans un espace visible, la nature du déploiement et ses retombées potentielles pour le client. Voici quelques exemples de déploiements réussis :
- Un bug a été corrigé.
- Les solutions de contournement adoptées par quelques comptes importants, selon leur gestionnaire de compte, ne fonctionnent plus.
- Une mise à jour rapide de l'interface a également réorganisé les options du menu par ordre alphabétique.
- Les clients inondent désormais le service client de questions concernant la disparition des « paramètres ».
- Une augmentation du taux de requêtes est mise en place pour qu'un outil interne puisse extraire des données pour un tableau de bord.
- Des alertes sont désormais déclenchées pour l'administrateur de base de données ; rien n'est cassé, l'augmentation des requêtes dépasse légèrement le seuil d'alerte existant.
Ces problèmes ne seront probablement pas considérés comme des incidents, car la production n'est pas interrompue. Il s'agit de corrections mineures et raisonnables, effectuées rapidement par des ingénieurs qui travaillent pendant les fêtes. Mais ce responsable de compte est en vacances et tente de répondre aux clients depuis un télésiège, il n'y a que trois personnes de service client actuellement et elles sont submergées de messages, et le pager de l'administratrice de base de données d'astreinte n'arrête pas de sonner alors qu'elle gère trois enfants à la maison et une maison pleine de proches. Ces personnes sont maintenant en plein dépannage. Des problèmes qui auraient pu être facilement remontés en interne lorsque la moitié de l'entreprise n'était pas en vacances se transforment maintenant en une recherche fastidieuse pour déterminer si quelque chose a changé, de quoi il s'agit, qui peut aider et comment y remédier.
Communiquer sur les changements ne concerne pas le code déployé, mais la gestion des attentes de l'ensemble des travailleurs dont l'emploi est impacté par ces changements.
Les périodes précédant et suivant un gel des déploiements sont souvent les plus propices aux incidents. Avant un gel, on observe généralement une course effrénée pour déployer les éléments tant qu'il est encore temps. Après un gel, c'est un véritable embouteillage de déploiements, prêts à interagir de manière imprévue.
Et voici l'opinion la plus controversée à ce jour : cela va se produire, gel des déploiements ou non.
« Non ! Nous n'imposons pas de gel des déploiements pour cette raison précise ! » Nous sommes désolés de vous l'annoncer, mais cela se produit toujours. Le pic d'activité avant les vacances aura toujours lieu, tout comme le ralentissement dû à la reprise d'activité, puis l'accélération du rythme au retour des employés. C'est simplement moins visible car, au lieu des fluctuations brutales d'un gel des déploiements, ce sont les dates échelonnées de départ et de retour des congés qui jouent un rôle.
La transition entre une semaine de congés d'entreprise, un gel des déploiements ou toute autre période de ce type repose avant tout sur la gestion des attentes. Pendant ce gel des déploiements, on parle d'une période de ralentissement. Il ne s'agit pas de considérer décembre comme une année perdue et de s'attendre à l'immobilisme durant le dernier mois de l'année. En réalité, le rythme de travail sera modifié : les activités ralentiront avec les congés, mais il y aura aussi une forte pression pour boucler les projets avant la fin de l'année. Cette période est particulièrement délicate lorsqu'elle est ponctuée d'échéances importantes, notamment début janvier.
Conseil pratique : Votre planification annuelle/trimestrielle doit s'adapter à la réalité du mois de décembre.
Il est impératif de s'assurer que le travail prévu est raisonnable à accomplir dans les délais impartis, et éventuellement de le réduire légèrement.
La clé d'un retour réussi en janvier ne diffère en rien de celle de décembre : il s'agit simplement d'y insuffler le même enthousiasme et le même engagement qu'en début d'année. Il faut communiquer sur les déploiements à venir, avant même leur mise en œuvre, dans un espace interne et public. Expliquez leurs objectifs et leurs impacts potentiels. Coordonnez-vous : soit vous poursuivez le déploiement comme d'habitude durant les deux premières semaines de janvier, soit vous optez pour une approche plus progressive, en adaptant le calendrier de déploiement pour chaque équipe. Par « espace interne et public », nous entendons un lieu où tous les collaborateurs, au-delà des seuls services d'ingénierie et de planification, sont impliqués et informés. Communiquer sur les changements ne se limite pas au code déployé ; il s'agit de gérer les attentes de l'ensemble des collaborateurs dont l'emploi est impacté par ces changements.
Si vous êtes partisan d'un gel total des déploiements, voici quelques points importants : un gel des déploiements signifie que les équipes ne travaillent pas activement sur un projet de développement nécessitant un déploiement. Ce gel doit se traduire soit par des congés, soit par du temps consacré à des tâches qui n'ont pas besoin d'être déployées une fois terminées.
Cela inclut les spécifications pour la planification à venir, la coordination, le développement d'outils pour faciliter les processus et d'autres tâches qui dépassent le cadre des changements visibles pour le client. Voilà. C'est le secret. Les périodes de gel des déploiements ne doivent pas signifier des ingénieurs inactifs. Elles doivent leur permettre d'effectuer toutes les autres tâches que leur poste exige, au-delà du simple développement. Vous ne serez pas submergé de déploiements après la reprise si la majeure partie du gel n'a pas été consacrée au développement.
Les conseils ci-dessus s'appliquent également à ceux qui n'ont pas mis en place de gel des déploiements. Vous pourriez par exemple consacrer vos semaines avant et après les vacances à vous concentrer sur d'autres tâches que les déploiements. Cela ne signifie pas forcément l'arrêt complet des déploiements, mais cela peut faciliter la reprise progressive du rythme de travail au retour de vacances.
Une fois le rythme de travail repris, il est temps de revoir votre stratégie de déploiement pendant les vacances. Lancez une discussion sur ce qui a fonctionné et ce qui n'a pas fonctionné. Échangez avec les personnes d'astreinte, celles qui ont été rappelées de leurs vacances, les organisateurs du processus et même les clients afin de recueillir leurs impressions. Discutez des améliorations à apporter pour optimiser le processus pour toutes les parties prenantes.
Nous le répétons : même avec un gel des déploiements, des incidents surviendront pendant les fêtes. Diffusez un récapitulatif regroupant les plannings d’astreinte, les procédures de gestion des incidents et les plans de secours avant les fêtes afin d’aider chacun à se préparer. N’oubliez pas : les incidents sont des opportunités. Ils créent un environnement où les équipes improvisent, réagissent, apprennent et collaborent pour comprendre et résoudre les problèmes en temps réel. Prenez soin les uns des autres, soyez indulgents envers vous-mêmes et préparez-vous à apprendre ensemble des choses extraordinaires.
Sur ce, nous vous laissons à vos propres chants de Noël codés.