{"id":3162,"date":"2026-07-01T07:00:00","date_gmt":"2026-07-01T07:00:00","guid":{"rendered":"https:\/\/smartcoding.com.au\/ce-qui-deraille-quand-on-se-passe-dun-environnement-de-preproduction-trois-histoires-vraies\/"},"modified":"2026-07-01T07:00:00","modified_gmt":"2026-07-01T07:00:00","slug":"ce-qui-deraille-quand-on-se-passe-dun-environnement-de-preproduction-trois-histoires-vraies","status":"publish","type":"post","link":"https:\/\/smartcoding.com.au\/fr\/ce-qui-deraille-quand-on-se-passe-dun-environnement-de-preproduction-trois-histoires-vraies\/","title":{"rendered":"Ce qui d\u00e9raille quand on se passe d&rsquo;un environnement de pr\u00e9production : trois histoires vraies"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Les environnements de pr\u00e9production (staging) font partie de ces bonnes pratiques qui ressemblent \u00e0 une corv\u00e9e jusqu&rsquo;au jour o\u00f9 elles vous sauvent. \u00ab Ce n&rsquo;est qu&rsquo;une petite modification \u00bb, se dit-on. \u00ab Je modifie le site en production, j&rsquo;actualise et c&rsquo;est r\u00e9gl\u00e9. \u00bb La plupart du temps, \u00e7a marche. Les rares fois o\u00f9 \u00e7a ne marche pas, le co\u00fbt se compte en heures de r\u00e9cup\u00e9ration, en clients perdus ou en un samedi entier pass\u00e9 \u00e0 r\u00e9parer ce qui aurait d\u00fb \u00eatre une modification du mardi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Trois situations r\u00e9elles des deux derni\u00e8res ann\u00e9es chez Defyn, anonymis\u00e9es mais l\u00e9g\u00e8rement romanc\u00e9es. Dans chaque cas, une modification de cinq minutes effectu\u00e9e sur le site en production a co\u00fbt\u00e9 entre une demi-journ\u00e9e et une semaine compl\u00e8te. Dans chaque cas, un environnement de pr\u00e9production aurait d\u00e9tect\u00e9 le probl\u00e8me avant qu&rsquo;il n&rsquo;atteigne un client.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Histoire 1 : la mise \u00e0 jour d&rsquo;extension qui a d\u00e9vor\u00e9 le paiement<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un site e-commerce sous WooCommerce a appliqu\u00e9 une mise \u00e0 jour d&rsquo;extension de routine un samedi apr\u00e8s-midi, directement en production. Une passerelle de paiement a re\u00e7u une mont\u00e9e de version mineure. Le propri\u00e9taire a cliqu\u00e9 sur \u00ab mettre \u00e0 jour \u00bb, le tableau de bord est pass\u00e9 au vert, et il est parti d\u00eener.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce qu&rsquo;il ignorait, c&rsquo;est que la nouvelle version avait introduit un petit changement dans la fa\u00e7on d&rsquo;assainir le format des champs de carte bancaire. Le site fonctionnait tr\u00e8s bien avec la version de PHP de l&rsquo;agence. Sur la version de PHP plus ancienne de l&rsquo;h\u00e9bergeur, la passerelle renvoyait une erreur silencieuse \u00e0 chaque transaction. Les paiements ont commenc\u00e9 \u00e0 \u00e9chouer imm\u00e9diatement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le dimanche matin, quand le propri\u00e9taire a v\u00e9rifi\u00e9, 31 clients s&rsquo;\u00e9taient heurt\u00e9s au paiement d\u00e9faillant et avaient abandonn\u00e9. L&rsquo;extension a \u00e9t\u00e9 r\u00e9tablie en moins d&rsquo;une heure, mais ces 31 clients n&rsquo;ont jamais \u00e9t\u00e9 r\u00e9cup\u00e9r\u00e9s. Un environnement de pr\u00e9production avec une seule transaction de test l&rsquo;aurait d\u00e9tect\u00e9 avant la perte d&rsquo;une seule vraie commande.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Histoire 2 : le r\u00e9glage CSS qui a cass\u00e9 le mobile<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un site de services B2B avait besoin d&rsquo;une petite modification visuelle. Un bouton de la page d&rsquo;accueil devait \u00eatre un peu plus grand et d&rsquo;une nuance de rouge diff\u00e9rente. La responsable marketing a ouvert le personnalisateur, fait la modification, enregistr\u00e9 et consid\u00e9r\u00e9 que c&rsquo;\u00e9tait termin\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La modification a cass\u00e9 la mise en page mobile. Le bouton d\u00e9bordait d\u00e9sormais du conteneur sur les \u00e9crans de moins de 400 pixels de large, poussant le reste de la page sur le c\u00f4t\u00e9 et faisant passer le menu de navigation \u00e0 la ligne de fa\u00e7on disgracieuse. La responsable marketing n&rsquo;a jamais ouvert le site sur un t\u00e9l\u00e9phone, elle ne l&rsquo;a donc pas remarqu\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;agence l&rsquo;a rep\u00e9r\u00e9 trois semaines plus tard, lors d&rsquo;une revue trimestrielle. Entre-temps, trois semaines de trafic mobile (soit 60 pour cent de l&rsquo;audience du site) avaient vu une page d&rsquo;accueil cass\u00e9e. Le taux de rebond sur mobile avait discr\u00e8tement grimp\u00e9 de 18 pour cent sur cette p\u00e9riode.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Histoire 3 : la mise \u00e0 jour de th\u00e8me qui a perdu la page d&rsquo;accueil<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le th\u00e8me WordPress d&rsquo;un client proposait une version majeure. Les notes de version promettaient des am\u00e9liorations de performance et quelques nouvelles fonctionnalit\u00e9s. Le client a appliqu\u00e9 la mise \u00e0 jour un vendredi apr\u00e8s-midi. Le site s&rsquo;est reconstruit, et toute la mise en page de la page d&rsquo;accueil avait disparu. Remplac\u00e9e par un mod\u00e8le par d\u00e9faut livr\u00e9 avec la nouvelle version du th\u00e8me.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La version majeure avait chang\u00e9 la mani\u00e8re dont le th\u00e8me stockait les donn\u00e9es de mise en page, et le script de migration s&rsquo;est ex\u00e9cut\u00e9 de fa\u00e7on imparfaite sur la base de donn\u00e9es en production. La r\u00e9cup\u00e9ration a exig\u00e9 de restaurer la version pr\u00e9c\u00e9dente du th\u00e8me, de r\u00e9importer manuellement la mise en page de la page d&rsquo;accueil depuis une sauvegarde et de r\u00e9appliquer trois semaines de modifications successives. Temps total de r\u00e9cup\u00e9ration : 11 heures sur un week-end prolong\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sur une copie de pr\u00e9production, la casse aurait \u00e9t\u00e9 visible en 30 secondes. L&rsquo;agence aurait signal\u00e9 cette version du th\u00e8me comme risqu\u00e9e et recommand\u00e9 une autre voie de mise \u00e0 jour. Z\u00e9ro interruption visible pour le client, z\u00e9ro week-end perdu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce qu&rsquo;est r\u00e9ellement un environnement de pr\u00e9production<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un environnement de pr\u00e9production est une copie priv\u00e9e du site en production, h\u00e9berg\u00e9e sur une URL diff\u00e9rente, qui reproduit la production d&rsquo;aussi pr\u00e8s que possible. La version du th\u00e8me correspond, les versions des extensions correspondent, le contenu est r\u00e9cent et la base de donn\u00e9es est raisonnablement \u00e0 jour. L&rsquo;\u00e9quipe y effectue les modifications, les teste, et ne les pousse en production qu&rsquo;une fois confirm\u00e9 qu&rsquo;elles fonctionnent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les h\u00e9bergeurs WordPress infog\u00e9r\u00e9s modernes (Pantheon, WP Engine, Kinsta, SiteHost) proposent tous une pr\u00e9production en un clic. La plupart des h\u00e9bergeurs de qualit\u00e9 l&rsquo;incluent dans leurs offres. La configurer pour la premi\u00e8re fois sur un h\u00e9bergement infog\u00e9r\u00e9 prend 10 minutes, apr\u00e8s quoi elle reste l\u00e0 ind\u00e9finiment comme une assurance bon march\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La question de la discipline<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La configuration technique est facile. Le plus dur, c&rsquo;est l&rsquo;habitude. \u00ab Ce n&rsquo;est qu&rsquo;une petite modification \u00bb doit dispara\u00eetre du vocabulaire de l&rsquo;\u00e9quipe. Chaque mise \u00e0 jour d&rsquo;extension, chaque mise \u00e0 jour de th\u00e8me et chaque changement structurel de CSS passe d&rsquo;abord par la pr\u00e9production. Point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les modifications de contenu (changements de texte, remplacement d&rsquo;une image \u00e0 la une, publication d&rsquo;un nouvel article de blog) peuvent g\u00e9n\u00e9ralement se passer de pr\u00e9production sans risque. Les changements structurels et d&rsquo;infrastructure, non.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si votre site n&rsquo;a pas d&rsquo;environnement de pr\u00e9production, ou en a un que personne n&rsquo;utilise vraiment, l&rsquo;\u00e9quipe de d\u00e9veloppement WordPress de <a href=\"https:\/\/defyn.com.au\" rel=\"noopener\">Defyn<\/a> peut le mettre en place et instaurer un flux de travail sens\u00e9. Une fois qu&rsquo;une \u00e9quipe dispose d&rsquo;un processus de pr\u00e9production fonctionnel depuis trois mois, plus personne ne veut modifier le site en production directement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Modifier un site WordPress en production pour gagner du temps peut co\u00fbter une journ\u00e9e, une semaine ou un client. Trois situations r\u00e9elles o\u00f9 un environnement de pr\u00e9production aurait \u00e9vit\u00e9 l&rsquo;h\u00e9morragie.<\/p>\n","protected":false},"author":2,"featured_media":1120,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[5],"tags":[],"class_list":["post-3162","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development"],"jetpack_publicize_connections":[],"featured_image_src":"https:\/\/smartcoding.com.au\/wp-content\/uploads\/2026\/07\/pexels-photo-6913395-600x400.jpeg?crop=1","featured_image_src_square":"https:\/\/smartcoding.com.au\/wp-content\/uploads\/2026\/07\/pexels-photo-6913395-600x600.jpeg?crop=1","author_info":{"display_name":"Claire Smith","author_link":"https:\/\/smartcoding.com.au\/fr\/author\/claire\/"},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/phbW1n-P0","jetpack_featured_media_url":"https:\/\/smartcoding.com.au\/wp-content\/uploads\/2026\/07\/pexels-photo-6913395.jpeg","_links":{"self":[{"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/posts\/3162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/comments?post=3162"}],"version-history":[{"count":0,"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/posts\/3162\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/media\/1120"}],"wp:attachment":[{"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/media?parent=3162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/categories?post=3162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smartcoding.com.au\/fr\/wp-json\/wp\/v2\/tags?post=3162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}