IRP AUTO nous a confié la mise à niveau de son site internet de Drupal 7 à Drupal 10. Cette mise à niveau est aujourd’hui entrée en phase de TMA, le groupe IRP AUTO envisage à présent d’optimiser ses parcours utilisateurs.
(*) Crédit photo principale - Photo de Enis Yavuz sur Unsplash
Nos missions
Le contexte
IRP AUTO est le groupe de protection sociale des services de l’automobile. Il propose entre autres des services en matière de prévention, de retraite complémentaire, de prévoyance, de complémentaire santé, d’épargne salariale et d'action sociale.
Son site diffuse les actualités du groupe, des articles, des vidéos, une foire aux questions, des sondages, des documents à consulter ou à télécharger. Il est à la fois un outil commercial, un outil d’information et la porte d’entrée vers les espaces sécurisés des utilisateurs. Conscient de l’obsolescence inévitable de la version 7 de Drupal, le groupe IRP AUTO a souhaité :
- Assainir et mettre à jour l’applicatif ainsi que les configurations des environnements d’exploitation (OS, php, apache et MariaDB).
- Réaliser une mise à niveau “iso-fonctionnelle” du site vers Drupal 10, en profitant de la refonte du thème pour appliquer une légère amélioration des interfaces graphiques.
Méthodologie
La mise à niveau technique entre les versions 7 et 8/9/10 n’est pas techniquement envisageable. Les efforts de la communauté se sont orientés vers la mise à disposition d’un chemin de migration des contenus. Il convient par conséquent de réinstaller une instance Drupal 10 isolée.
Les grandes étapes du projet :
- Initialisation du projet : récupération des sources, de la documentation et cartographie technique de IRP AUTO en version 7.
- Audit technique du site Drupal 7 puis rédaction des spécifications techniques.
- Déploiement d'une nouvelle instance Drupal 10 et import des contenus, utilisateurs, fichiers et configurations.
- Intégration responsive d’un nouveau thème Twig, moteur de templates intégré au CMS depuis sa version 8.
- Reprise des URL et optimisations SEO.
- Tests, contrôle qualité et recette.
- Mise en exploitation du site en tenant compte des contraintes de déploiement (et du pipeline d'intégration continue).
La mise à niveau Drupal 7 vers Drupal 10
L’audit nous a permis de prendre en main le site Drupal 7, sa cartographie générale :
- Passer en revue le site actuel, dresser une liste des contenus, de ses caractéristiques et fonctionnalités.
- Évaluer le contenu et les fonctionnalités actuelles, définir ce qui doit être conservé, adapté ou abandonné.
- Examiner le design/thème actuel.
- Vérifier la compatibilité entre l'environnement d'hébergement et Drupal 10.
- Identifier les difficultés potentielles lors de la mise à jour, telles que la persistance de modules incompatibles avec Drupal 10, ou abandonnés et non portés vers des versions supérieures à Drupal 7. En cas d’incompatibilité, nous avons dû proposer des modules alternatifs supportés en version 10.
Nous avons profité de la reprise du thème pour y appliquer un "lifting” graphique. Sans changer la structure, nous nous sommes appuyés sur la charte graphique d’IRP AUTO pour proposer une version plus moderne, notamment avec des formes plus arrondies. Nous avons également mis à niveau la gestion des médias, notamment par l’utilisation de formats d’images nouvelle génération et de fichiers .svg chaque fois que c’était possible.
Nous avons procédé à :
- L'installation d'une nouvelle instance Drupal 10 de zéro.
- La reprise des configurations initiales du site (types de contenus, vues, rôles, champs, permissions…)
- La mise à jour des modules contribués et sur-mesure sur la base de notre travail de recensement et d’analyse réalisé lors de l’audit.
- La réalisation du portage proprement dit des modules sur-mesure en version 10 (mise à jour du code pour Drupal 10.X et PHP 8.1.X et documentation des nouvelles configurations).
Pour minimiser la perte de données, cette opération automatisée a été lancée après la mise à jour de toutes les fonctionnalités et l'assurance de leur compatibilité avec la version 10 de Drupal.
Une logique d’intégration continue
En complément de notre pipeline CI/CD composé de Jenkins, PhpStan et SonarQube, nous avons appréhendé les procédures de déploiement internes au groupe IRP AUTO, sur Azur DevOps.
L’équipe de développement a progressivement poussé des packages de codes sur SonarCloud pour les faire analyser et réaliser les optimisations préconisées jusqu'à aboutir à des notes de A sur les différents critères analysés : solidité, sécurité, maintenabilité, examen de sécurité.