Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Campusfrance.org + D8 : Comment industrialiser la production et l'intégration de près de 100 sites sur un socle avancé ?

150 views

Published on

L'écosystème web de Campus France, faisant la part belle à Drupal depuis près de 10 ans, a la particularité d'être riche, complexe, multilingue et exposé aux attaques.
Dans ce contexte, quel retour d'expérience sur la mise en place de l'architecture Drupal, puis des méthodes et process de forge logicielle/CIT permettant d'industrialiser la production et la maintenance de près de 100 sites Internet ?

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Campusfrance.org + D8 : Comment industrialiser la production et l'intégration de près de 100 sites sur un socle avancé ?

  1. 1. Campusfrance.org + D8 : Comment industrialiser la production et l'intégration de près de 100 sites sur un socle avancé ? #integrationcontinue #hauteperformance #sécurité #industrialisation #proud 2019 1
  2. 2. SOMMAIRE 1. PRÉSENTATION DES INTERVENANTS 2. LE PROJET : CONTEXTE & ENJEUX 3. POURQUOI DRUPAL ? 4. LE PROJET : CE QU’IL FAUT RETENIR 5. LE FUTUR DU POROJET / CONCLUSION 2
  3. 3. Présentation des intervenants Stéphane FELUT-PARIS – CAMPUS FRANCE Sylvain MOREAU – AXESS OPEN WEB SERVICES (AOWS) 3
  4. 4. bonjour! Je suis Stéphane Felut- Paris Directeur des Systèmes d’Information CAMPUS FRANCE. Passionné par le web depuis le 20e siècle. Vous pouvez me joindre ici : sfp@campusfrance.org Ou bien là : https://www.linkedin.com/in/sfp92/ 4
  5. 5. Présentation Campus France 5
  6. 6. Organisation de Campus France Double tutelle Ministère de l’Europe et des affaires étrangères Ministère de l’Enseignement supérieur, de la Recherche et de l’Innovation Conseil d’Administration Députés et Sénateurs // représentants des ministères // des conférences d’établissement // Maires de France // Régions de France // CNOUS Conseil d’orientation Recommandations sur les questions d’accueil et de séjour des étudiants et chercheurs internationaux Forum Campus France Etablissements d’enseignement supérieur et de recherche 6
  7. 7. Le réseau des Espaces Campus France 250 Espaces Campus France dans plus de 120 Pays 41 Pays à procédure « Etudes en France » 3 Grandes missions : ◇ Promouvoir l’enseignement supérieur français ◇ Accompagner les étudiants dans leur projet et leurs démarches administratives ◇ Fournir une expertise sur le contexte local 7
  8. 8. 500 personnes dans le monde, 220 en France 358 établissements Membres du Forum Campus France + de 250 Espaces Dans + de 120 pays 8 50 manifestationsPilotées par Campus France par an
  9. 9. 30 000 Dossiers de bourses gérés 130 M€ de fonds gérés en 2017 265 000 Alumni Sur le réseau social France Alumni 9 650 000 visiteurs+ de 300 établissements participants
  10. 10. bonjour! Je suis Sylvain Moreau Directeur Commercial Axess Open Web Services (AOWS). Tombé dans drupal quand j’étais petit (https://www.drupal.org/user/118258), ingénieur de formation. Vous pouvez me joindre ici : sylvain.moreau@axess.fr Ou bien là : https://www.linkedin.com/in/slybud/ 10
  11. 11. Présentation AOWS 11
  12. 12. 2001 Création de OWS +2,3M€ CA 25 membres de l’équipe +230 projets drupal Depuis la version 4.6 12
  13. 13. Une expertise drupal reconnue Centre d ’expertise Drupal/PHP/Symfony au sein du pôle Services Axess Groupe Expertise drupal reconnue sur marché francophone Audit/AMOA Développement/Intégration Drupal depuis 2006 au forfait Des références de mises en œuvre complexe TMA Des process internes rodés pour un accompagnement sur la durée Hébergement / Infogérance Maîtrise complète de la chaîne #devops 13 Open Source / Communauté Participation active dans notre ADN 2 Agences Paris Lyon
  14. 14. Contexte et Enjeux La refonte en drupal 8 de campusfrance.org : un challenge technique 14
  15. 15. Contexte Historique et Chiffres 15
  16. 16. + 100 sites web Campusfrance.org + 97 sites locaux, France Alumni, blog des e-ambassadeurs +20M visiteurs / 1,5 M fans En 2018 répartis sur toute la planète (2017 : 18M) Facebook/Twitter/Linkedin/Instagram 32 langues Et pas toutes LTR  16
  17. 17. 2001 2005 2009 2017 2012 17 Pages HTML statiques SPIP Drupal 6 Drupal 8 Drupal 7 Historique L’industrialisation progressive d’un écosystème web riche et complexe
  18. 18. Enjeux Connexion aux SI Tiers Sécurité Multi-sites Multilinguisme Industrialisation et intégration continue 18
  19. 19. Connexions aux SI Tiers ◇ Interfaces avec des catalogues de formation existants ◇ Possibilité de récupérer le panier dans le profil Drupal ◇ Import régulier de pdf pour espace documentaire 19
  20. 20. Simplicité & Multilinguisme ◇ 32 langues ◇ Accès rapide aux informations, dont les catalogues ◇ Un espace documentaire et un moteur de recherche à facettes ◇ Formation des utilisateurs de 96 pays => Avoir un outil gérant la complexité du multisites (voire usine à sites)/multilingues (exemple : pouvoir différencier une traduction selon le site) 20
  21. 21. Sécurité ◇ Une représentation importante de la France dans le monde ◇ Un site lié aux instances ministérielles ◇ Une cible facile pour les « script kiddies » ◇ Etanchéité des droits entre les webmasters des différents pays => Avoir un outil à l’état de l’art au niveau de la sécurité (pas de faille en 10 ans de Drupal, mais beaucoup d’attaques) 21
  22. 22. Performances ◇ Performance liée au trafic important ◇ Performance liée au système multisite ◇ Performance liée au public : trafic 24/7 avec des utilisateurs répartis dans le monde entier => Avoir une approche experte #devops pour gérer les optimisations fines au niveau de l’infra et en particulier de la gestion des caches 22
  23. 23. Industrialisation et CIT ◇ 1 portail + 97 sites à refondre : nécessité de déploiement rapide ◇ Aucune équipe technique drupal interne ◇ Beaucoup de TMA, à consacrer aux évolutions ◇ Déploiement des patches de sécurité doivent être coordonnés et instantanés => Investir dans l’infra et les process permettant la mise en place d’une politique d’intégration continue efficace et de concentrer l’effort de maintenance sur les évolutions et non la maintenance applicative (sécurité, montée de versions) 23
  24. 24. Pourquoi Drupal Historique avec l’outil mais surtout historique des points forts et points faibles 24
  25. 25. Points forts de Drupal Drupal 6 La structuration des contenus 25 Drupal 7 La gestion des médias (scald) Le multisite avancé (Domain Access) Views 2 et 3 Drupal 8 Gestion de la configuration avancée dans le core Drupal => intégration continue et maintenance facilitée . Enfin multilinguisme avancé et + unitaire dans le core (interface/configuration/contenus) Gestion du cache Entity API
  26. 26. Points faibles de Drupal Drupal 6 Pas de partage de contenus entre les sites Pas de SSO 26 Drupal 7 Gestion du multilinguisme : Use cases non prévus Pb de performance (centralisation des traductions dans 2 tables BDD) Intégration continue « bricolée » Drupal 8 Aucun ;-) Gestion du multilinguisme (surtout pour les utilisateurs avec les 3 systèmes unitaires) + de configuration in code
  27. 27. Le projet : ce qu’il faut retenir Comment industrialiser la production et l’intégration de + de 100 sites sous Drupal 8 ? 27
  28. 28. Achitecturer le multisite ◇ 1 portail international et 97 sites ◇ Partagent du contenu et une authentification commune ◇ Synchronisation de certaines taxonomies (Json API) ◇ Profiter de la gestion par défaut de Drupal de l’utf-8 (hello le chinois) ◇ Prévoir la gestion avancée du RTL (hello l’arabe) ◇ Prévoir la possibilité pour un site local de quitter l’infra et de disposer de fonctionnalités avancées (ex : Campus France Chine)  Valider une architecture technique drupal en amont intégrant ces contraintes  Valider un branching model adapté 28
  29. 29. Tout est dans le branching 29
  30. 30. Se donner les moyens ◇ 12 mois (11/2016 => 11/2017) ◇ Equipe d ’experts : 3 Clients , 2UX, 2 Créa, 1 CdP Technique Senior, 1 Architecte, 1 Lead Dev, 6 Devs, 2 Intégrateurs ◇ Méthodo : Cycle en V avec beaucoup d’agilité ◇ 450 Jours-Hommes ◇ #Devops : beaucoup de tuning dans la MEP et ensuite (gestion des caches très délicate) 30
  31. 31. Architecture de production 31
  32. 32. CIT : Stack 32 Code Repo : Gitlab (+ tools associés) JENKINS : Monitor + Build User deploy : Script shell + Drush + Config Split
  33. 33. CIT : Déploiement d’un site ◇ Ajout du site dans 2 fichiers de configuration drupal ◇ Initialisation du site en production via un script shell = 4 commandes drush ◇ Configuration du site via backoffice Drupal en production masquée ◇ Modification DNS pour mise en production du site 33
  34. 34. CIT : Mise à jour d’un site ◇ Possibilité d’avoir différents modules activés selon le site ◇ Gestion de la configuration et des modules actifs par site via module config split (https://www.drupal.org/project/config_split) ◇ Branching model dédié pour certains sites (Chine) afin d’effectuer des opérations spécifiques sur les fichiers. 34
  35. 35. CIT : Déploiements ◇ 3 instances : dev/preprod/prod ◇ 59 déploiements en prod en 2018 (22 déjà en 2019  ) ◇ Process de déploiement facilités et industrialisés : GIT + jenkins + magie maison ◇ 97 ouvertures/migrations de sites locaux ◇ Aujourd’hui : un script unique gère le déploiement de nouvelles fonctionnalités sur 97 sites (avec des effets de bord sur le cache redis) 35
  36. 36. Un site au top 36
  37. 37. Post mortem : challenges ◇ Une architecture réseau innovante ◇ Une gestion des caches performante ◇ Un système multisite/multilingue stable ◇ Une gestion des fonctionnalités par site spécifique, malgré un socle commun (ex : Campus France Chine / personnalisation des réseaux sociaux / newsletter individualisée) ◇ Une formation des contributeurs intégrant les contraintes de temps et la différence culturelle ◇ Des formats éditoriaux innovants administrables : par exemple timeline (https://www.campusfrance.org/fr/venir-en-france ) 37
  38. 38. “ Les voyages forment la jeunesse 38 Phileas Fogg (ou Passe-Partout)
  39. 39. Merci ! Des questions ? Vous pouvez nous joindre : ◇ drupagora@drupagora.fr ◇ questions@drupagora.fr 39

×