Stack web PHP pro open source complète

Vous avez un serveur, nu, qu’est-ce qu’on installe dessus pour mettre en site web en ligne dans un environnement pro ?

Que signifie « pro » exactement d’ailleurs de manière prosaïque ? Il s’agit d’assurer que le site soit toujours en ligne « no matter what » (ce qui implique des backups, des outils de monitoring), et que les développeurs puissent le modifier sans tout faire pêter (donc ils doivent avoir une version « locale » sur leur propre machine de développement, et pouvoir déployer sans risque). Pour assurer ces 2 simples « fonctions » il faut tout un tas d’outils, chacun son rôle. Pour que les développeurs puisse collaborer un faut un gestionnaire de version (git), pour que les chef de projets puisse dire quoi développer il faut un outil de suivie des tâches (gitlab par exemple), pour gérer les différents sites il faut plusieurs machines virtuelles, pour s’assurer que l’environnement de déploiement soit toujours le même on utilise des conteneurs ainsi que des outils de test automatisés pour s’assurer qu’il n’y ai pas de régressions. Il faut des outils d’analyse pour le marketing, pour les performances et pour la sécurité. Enfin il faut des outils de collaboration (messagerie, échange de mot de passe sécurisée, documents collaboratifs).

  • proxmox : gestionnaire de machines virtuelles, gère les clusters, la réplication, les backups
  • pfsense : firewall qui va gérer la sécurisation de l’accès web aux VM
  • squid3 : reverse proxy qui permet de gérer le cache, le load balancing, et le routage
  • docker : c’est l’outil de conteneurisation (éventuellement kubernetes pour les déploiement ou ansible, ou de simples script bash)
  • LAMP : le serveur web, ici pour du PHP, du MySQL en base de donnée, suffisant pour des petits sites, postgres est préférable pour des sites plus costaud
  • wordpress (ou autre) et tout un tas de plugins : updraft plus (backup + migration), matomo, yoast SEO, memcached, postSMTP, contact form7
  • matomo : c’est le google analytics en version open-source. Des plugins payants très intéressants existent aussi
  • behat : pour faire des tests automatisés, indispensable pour s’assurer qu’on n’introduit pas des nouveaux bug quand on rajoute un fonctionnalité ou qu’on corrige un dysfonctionnement
  • gitlab : gestion des tâches et versions pour permettre aux développeurs, au designers et aux chef de projet de collaborer efficacement
  • nextcloud : partage de documents, l’équivalent de dropbox mais en open source
  • keepassx : gestionnaire de mot de passe (bitwarden si on veut la même chose en ligne)
  • mattermost : l’équivalent de slack (il y a aussi rocket.chat)
  • tick : telegraf influxdb chronograf et kapacitor, base de donnée de séries temporelles avec un petit daemon associé pour surveiller tout ce qui se passe sur une machine
  • xhprof : pour faire des diagnostiques de performance si le site est trop lent
  • backstop : test de non régression visuel
  • yslow : outil de test qui diagnostique les mauvaises pratiques qui pénalisent le référencement
  • locust.io : outil de scalabilité. Permet de savoir combien vous pourrez avoir de visiteurs en même temps sur votre site
  • minio : serveur S3, pour les backups. nfs ou smb sont aussi utilisés.

Outils freemium (gratuits et illimités en version de base, mais non open source) :

  • uptime robot : surveille votre site et envoies une alerte s’il tombe en rade
  • cloudflare : protège votre site et l’accélère

Outils payants :

  • mailchimp : newsletter, pour ne pas se faire blacklister
  • hotjar : analyseur de comportement (session recording, heatmap, funnel) / mixpanel / https://plugins.matomo.org/HeatmapSessionRecording

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *