Site SNCF Voyageur
Victor Darcel / 25 août 2024
SNCF voyageurs est le site informatif destiné aux voyageurs de la SNCF. Avec pret de 3 millions de visites par semaine, le site doit répondre à plusieurs exigences essentielles :
- Rapidité
- Accessibilité
- Référencement optimisé
- Multilinguisme
- Capacité à gérer de lourdes charges à moindre coût
- Contribution modulaire
source : similarweb.com (15/10/24)
L'architecture technique
Pour répondre à ces besoins, l'équipe a choisi de bâtir le site sur une architecture combinant Drupal en tant que CMS headless et un front-end en Next.js.
- Drupal gère l'ensemble des contenus du site. Grâce à des blocs de contenu, les contributeurs peuvent créer des pages de manière modulaire et flexible, garantissant une gestion efficace de l'information.
- Le front-end en Next.js (basé sur React) optimise les temps de chargement grâce à la génération côté serveur des parties statiques. Ce choix permet aussi de développer des modules complexes, tels que la recherche d'itinéraire, tout en assurant une performance maximale.
Gestion de la charge et scalabilité
Comme mentionné précédemment, Drupal est utilisé comme CMS Headless, ce qui signifie qu'il n'est pas directement accessible par les utilisateurs finaux. Seul Next.js y accède pour générer les pages du site. Une grande partie du contenu est servie sous forme de pages statiques, ce qui réduit considérablement la charge sur les serveurs lors de chaque requête utilisateur.
Ces pages statiques sont distribuées via un CDN (Content Delivery Network), permettant de mettre en cache les ressources et de les livrer rapidement à l'utilisateur à partir du serveur le plus proche de sa localisation. Cela minimise le temps de latence et améliore l'expérience utilisateur.
Cette architecture basée sur les CDN offre plusieurs avantages en termes de scalabilité et de tolérance aux pannes. En effet, la distribution des ressources est parallélisée : si un serveur CDN tombe en panne, un autre prend automatiquement le relais, garantissant ainsi une disponibilité continue du site. De plus, en réduisant le besoin de calculs dynamiques sur le serveur, cette approche permet de supporter de fortes charges à moindre coût tout en assurant des temps de réponse rapides.
Sécurité
L'architecture basée sur des CDN (Content Delivery Networks) réduit considérablement la surface d'attaque, car la majorité des ressources statiques sont servies à partir de serveurs distribués, limitant l'exposition directe des serveurs principaux aux utilisateurs. De plus, les CDN disposent souvent de mécanismes de protection intégrés, tels que la protection DDoS (Distributed Denial of Service), qui permet d'absorber et de répartir les attaques volumétriques, évitant ainsi la surcharge du serveur principal.
Accessibilité et Référencement Optimisé (SEO)
Le choix de Next.js permet de rendre le site plus performant en termes de SEO grâce à la génération statique et au rendu côté serveur, ce qui améliore les temps de chargement et, par conséquent, le classement sur les moteurs de recherche. L'accessibilité est également un point clé, avec une attention particulière portée à la conformité aux normes WCAG (Web Content Accessibility Guidelines), garantissant que le site est utilisable par tous les voyageurs.
Évolutivité et Modularité
L'architecture modulaire mise en place grâce à Drupal permet de faire évoluer le site de manière flexible. Les contributeurs peuvent rapidement ajouter ou modifier des blocs de contenu sans avoir à reconfigurer l'ensemble du système. Cette approche modulaire rend le site facilement extensible et permet de répondre rapidement aux nouvelles exigences fonctionnelles ou de design.
Conclusion
En combinant les forces de Drupal et Next.js, le site SNCF Voyageurs parvient à répondre aux exigences élevées en termes de rapidité, accessibilité, et évolutivité. Grâce à une architecture optimisée, le site peut facilement s’adapter à une audience massive tout en offrant une expérience utilisateur fluide et sécurisée. Cette approche technique assure non seulement la performance actuelle, mais permet aussi une croissance et des évolutions futures à moindre coût.