Gérer les environnements d’un site web : développement, staging et production

Maintenance & dépannage
Photo by Lucas Davies on Unsplash

Les environnements d’un site web sont des copies quasi identiques. Habituellement, il y a votre site principal ( appelé production ), un site de test ( appelé staging ) et chaque développeur peut avoir une copie sur son ordinateur.

En disposant de plusieurs environnements pour votre site, vous pouvez tester les nouvelles modifications apportées par vos développeurs avant qu’elles ne soient publiées sur votre site Web réel. L’utilisation de plusieurs environnements n’est pas obligatoire, mais elle comporte une longue liste d’avantages, notamment de réduire le risque de problèmes qui affecteront vos utilisateurs. Cela signifie effectivement des utilisateurs plus heureux et plus de disponibilité pour votre site web.

Configuration d’un site

L’installation d’un site web peut être séparé en deux.

Ce que l’on voit sur les pages :

  • D’un thème: il permet d’afficher vos pages
  • De plusieurs extensions (ou plugins): ils permettent d’ajouter des fonctionnalités à votre site

Ce qui est invisible et indispensable au site web:

  • WordPress: c’est le coeur du site web, il structure les données pour les afficher sur les bonnes pages.
  • Bedrock : c’est l’organisateur de WordPress: il permet une sécurité renforcée, la gestion des mises à jour avec Composer (gestionnaire de dépendances pour PHP) et le choix des environnements de développement tels que la production, la pré-production et le développement local.
  • Trellis: c’est le socle du site web, il permet de configurer facilement et rapidement le serveur – du système d’exploitation aux outils nécessaires au site web.

Les sites de dontbe.cool utilisent les solutions Roots.io. Elles sont un bon choix lorsqu’on souhaite construire des sites web sous WordPress de manière professionnelle et flexible.

Les environnements

Les environnements permettent de créer des silos entre ce qui est en cours de développement, ce qui est à tester et ce qui est validé. Pour ce faire, les trois environnements les plus répandus sont les suivants:

Environnement de développement

Les premiers développements d’un site se font sur l’ordinateur du/des développeur(s). En effet, ces premières étapes visent à configurer la base du site web (php, wordpress, le thème et les plugins les plus importants). Or les tests sur un ordinateur local suppriment la nécessité de valider, de pousser et de déployer l’ensemble du code.

Cet environnement est donc utilisé pour l’installation ou d’importantes modifications du site Par exemple, ajouter une fonction PHP, modifier la configuration de WordPress… Chaque modification peut d’abord être testée et vérifiée localement.

Un environnement local est indépendant de tout hébergement car il est maintenu hors ligne et exécuté sur une machine ou un serveur local. Il s’agit d’un moyen efficace et économique d’ajouter un environnement de test sans se soucier de payer pour plusieurs environnements. Il ajoute également l’avantage d’être indépendant de la connectivité Internet, ce qui vous permet de travailler sur votre projet n’importe quand.

C’est généralement utilisé comme une zone « tout est possible » pour que les développeurs testent de nouvelles fonctionnalités, des modifications ou tout ce qu’ils souhaitent.

Remarque :
Cette organisation nécessite d’utiliser une solution de versioning, Github par exemple, qui permettra de centraliser le code et ses différentes versions.

Environnement staging

Une fois que les fonctionnalités sont implémentées et considérées comme assez stables, le code est sauvegardé
(sur github) et le site web pourra être soumis aux premiers tests.

Le site web va être installé sur le serveur staging. Il s’agit d’un serveur intermédiaire, quasi identique au serveur de
production (c’est-à-dire pour le site web en ligne) mais qui n’a pour but que de tester le site web en conditions réelles.

Cet environnement est donc utilisé pour tester les développements de votre développeur web, mais également de nouveaux plugins. Par principe, tous les plugins sont supposés fonctionner directement, mais il arrive parfois des incompatibilités entre plugins, des conflits de données…

Cette environnement peut être aussi utilisé lorsqu’on souhaite importer des données en quantité.

Un environnement staging – appelé aussi de pré-production – est la dernière étape avant que quelque chose ne soit mis en production et soit visible sur le site en ligne.

L’objectif principal d’un tel site intermédiaire est de s’assurer que toutes les nouvelles modifications déployées à partir des environnements précédents fonctionnent comme prévu avant qu’elles n’atteignent le site web en direct. En utilisant un site staging et en testant tout avant de déployer sur un site web en production, vous serez en mesure d’éliminer les bogues et les problèmes, afin qu’ils n’affectent que rarement l’utilisateur.

Pour les freelance/agences qui développent des sites web pour des clients, un site staging est également utile pour présenter au client le projet final afin qu’il effectue les tests finaux et l’approbation éventuelle avant le lancement.

Remarque :
Cet environnement doit avant tout permettre de s’assurer que les dernières modifications de fonctionnalités du site ne perturberont pas le « vrai » site.
Ainsi, on y fait rencontrer le nouveau code (provenant de l’environnement de développement) avec les contenus en ligne (provenant de l’environnement de développement).

Environnement de production

Une fois que les fonctionnalités ont été validées sur le serveur de staging, elle peut être déployée sur le serveur de production (celui du “vrai” site en ligne). Ainsi, le code sauvegardé (sur github) sera d’abord installé, puis, si besoin, les bases de données seront synchronisées.

Mais, autant que possible, aucune modification du code n’aura lieu sur ce serveur de production.

Cet environnement est donc utilisé pour gérer votre business et alimenter en contenus votre site web Seules les données des utilisateurs et de vos contenus (pages, images, produits, articles…) pourront être modifiées.

L’environnement live – également appelé environnement de production – est le site web qu’un utilisateur verra. Si le processus de déploiement et de test des modifications est bon entre vos environnements d’un site web, alors cette version de votre site web doit être sans bogues ni problèmes, afin d’offrir à l’utilisateur final une excellente expérience de visite.

Pour simplifier le travail entre les différents environnements, nous préconisons l’installation et l’utilisation du plugin WordPress Stage Switcher. Il permet en effet de configurer et d’ajouter des liens utiles dans la barre d’administration.

Plugin pour naviguer entre les environnements d'un site web

Conclusion

Les mises à jour courantes (thème, plugins, wordpress) sont peu risquées, et vous pouvez les réaliser directement sur le serveur de production, si la sauvegarde automatique est activée. Mais il est conseillé de tester sur le serveur staging:

  • l’installation de nouveaux plugins: de les installer d’abord sur le serveur staging, de les configurer si besoin et de vérifier leur fonctionnement. Ensuite, ils pourront être installés sur le serveur de production
  • les migration en masse de données (catalogue de produits, articles de blog…)
  • les nouveaux codes PHP (concerne surtout les développeurs)

L’utilisation d’une version locale ne devrait être réservée qu’aux développeurs et autres utilisateurs avertis (plus d’informations dans cette documentation : Installer un site web localement avec Trellis ).

Chargement