Projet Environnement de développement PHP

Dans le but de faciliter la maintenance et la mise à disposition d’environnement de développement Web, il a été demandé de réaliser une procédure pour la mise en place d’environnements virtualisés de développement accessibles par un lien sécurisé.

Cette démarche permettra de garantir :

  • la sécurité de l’accès à l’environnement de développement
  • la facilité de maintenance et de déploiement
  • la sécurité des données manipulées par les développeurs

Contexte

Pour mettre en place l’environnement de développement web virtualisé, il y avait deux possibilités :

  • Un environnement sous Linux qui intègre le système d’exploitation idéal pour utiliser Docker nativement
    • Avantages :
      • Un seul système d’exploitation à maintenir et à mettre à jour.
      • Tous les outils sont disponibles en natif par l’intermédiaire de l’installation de paquet sur des distributions sous Debian (comme Ubuntu).
      • Aucun cout de licence
    • Inconvénients :
      • Besoin d’avoir des connaissances Linux pour le maintien de l’environnement pour le pôle Système et Réseaux
      • Difficultés pour gérer les sessions utilisateurs sur le domaine APF
  • Un environnement sous Windows en utilisant le système WSL (Windows Subsystem for Linux) qui intègre un environnement Linux embarqué pour faire tourner Docker
    • Avantages :
      • Possibilité de gérer les droits d’accès à l’environnement par l’intermédiaire du rattachement au domaine APF
      • Docker for Windows disponible pour gérer l’environnement Docker avec une interface graphique
    • Inconvénients :
      • 2 systèmes à maintenir à jour (Windows et Linux en WSL)

Environnement cible

Pour garantir un environnement propre à chaque développeur, il est nécessaire de disposer d’une machine par compte.

Les éléments nécessaires à l’environnement de développement sont :

  • Docker
  • Docker-Compose
  • Composer
  • Git
  • DBeaver
  • VsCode (en remplacement de PHPStorm)

Actions réalisées :

  • Étude de la mise en place de l’environnement à l’aide de VirtualBox basée sur Ubuntu / Docker / Gitlab
  • Étude de la mise en place de l’environnement à l’aide de WSL utilisant Docker
  • Mise en place d’un environnement Docker en utilisant des scripts PowerShell pour la mise à jour des hôtes virtuels de la machine hôte et le proxy Traefik pour distribuer les requêtes sur les différents projets
  • Mise en place d’un système automatisé de sauvegarde et de restauration des environnements (bases de données et fichiers utilisateurs) par projet à l’aide de Borg
  • Mise en place d’un système de gestion des connexions sécurisé à l’environnement Google Cloud avec Google Cloud SDK sous Docker
  • Création d’un script d’installation bash complet de l’environnement de tous les composants
  • Documentation complète d’installation et d’exploitation de l’environnement sous Confluence
  • Gestion de projets AGILE géré sur JIRA