Météo France Sports

Plateforme web de prévisions météo pour la F1

Bilan projet au 30/11/2017

 

Mathieu DARTIGUES

Sommaire

  • Contexte
  • Equipe de départ
  • Réalisation
    • Rétro planning
    • Infra - Technos - Qualité
    • Démo
  • Leçons
    • Ce qui n’a pas marché
    • Ce qui a marché
  • Finances
  • Demain

La grande histoire...

1 Contexte

Météo France Sport

  • Service technico-commercial sport de Météo France
  • Vend presta d’assistance et prévision auprès d’organisateurs d’événements sportifs
    • Tennis : 3 des 4 tournois du Grand Chelem
    • Formule 1
    • Rallyes et courses d’endurance partout dans le monde
    • Voile : assistances voile et routages (Vendée Globe, Transat Jacques Vabre, Tour de France à la Voile…)
    • Football : matches de Ligue 1 et 2

FiA

  • Client du client
  • Organisateur du championnat de Formule 1 (mais pas que)
  • Renouvelle le marché de la p/f de prévision F1 / F2
  • P/F utilisée par la FiA et les écuries automobiles

Prestation

  • P/F générique pouvant être déclinée sur différents événements sportifs
  • Première application = Formule 1

Réaliser une plate-forme web de mise à disposition des prévisions météo à l’attention des clients professionnels de MFS

2 Equipe de départ

eco: tuteur

mda: front
jec: back
afi: webdesign

ebr: consultant

3 Réalisation

Rétroplanning

  • Début projet Novembre 2016

 

  • 1er GP Australie 25 Mars 2017

 

  • 1ers essais à Barcelone en Février 2017

 

  • 1ère démo le 21 Novembre 2016

 

  • Livraison première version début Décembre 2016

 

  • P/F livrable Janvier 2017

Infrastructure

Deux zones de déploiements

 

  • On Track = sur le circuit, 2 VMs, sans accès SSH (TeamViewer)

 

 

 

  • Off Track = chez OVH, 1 VM, avec accès SSH

Technos

  • Backend
    • Django REST Framework
    • PostGreSQL
    • Nginx
    • Swagger
  • Frontend
    • React
    • Redux
    • Axios
    • Plotly
    • Leaflet
  • Monitoring : New Relic

Qualité

IC / DC

  • Déploiement continu de la partie front sur surge.sh avec 2 environnements dev & staging
  • Infra préprod° mise à dispo par MFS
  • Pas de tests implémentés ni front ni back…

Démo

Forecast by week

Forecast by day

Nowcasting (zoom)

Observations

Pipelines gitlab

Réeloplanning

  • Début projet Novembre 2016
  • 1er GP Australie 25 Mars 2017
  • 1ers essais à Barcelone en Février 2017
  • 1ère démo le 21 Novembre 2017
  • Livraison première version début Décembre 2017
  • P/F livrable Janvier livrée mi Mars 2017
  • Problèmes de performances en Avril / Mai / Juin 2017
  • Ajout monitoring en Juin 2017
  • Stabilisation de la p/f et prise en charge des déploiements en Juin 2017
  • Ajout du monitoring sur les 3 p/f et mise en place d’alertes à l’été 2017

4 Leçons

Ce qui n'a pas marché

  • Faire confiance à un serveur WMS...
    • des requêtes WMS via du Django qui fait proxy… => proxy nginx
    • une latence du serveur WMS => cache nginx (ou autre)

 

  • Utiliser le cache Django avec beaucoup d’utilisateurs => cache nginx

 

  • S’arrêter à une prestation de développement dans un contexte aussi sensible que la F1 => prise en charge de la maintenance

 

  • Sous estimer la performance => tests de charge

Ce qui a marché

  • Etre accompagné sur une nouvelle techno au départ => tutorat indispensable !
  • Avoir des maquettes d’Antonio => cap à atteindre
  • Etre réactif en cas de coup dur côté client => confiance + prise sur soi
  • Mobiliser les expertises Makina => confiance
  • Développer la p/f dans un délai court => challenge...
  • Ne pas prendre parti avec les formats de données fournis par le client côté backend => pérennité
  • Proposer des alternatives à un client à l’écoute => confiance
  • Monitorer l’infra et l’application grâce à New Relic => gestion du risque
  • Faire participer le client avec la vision du board gitlab
  • Documenter l'API via un swagger ou autre

En résumé

  • Humainement - client
    • Instaurer la confiance avec le client
    • Etre force de proposition
    • Faire participer le client
  • Humainement - makina
    • Accompagner les développeurs par d'autres dévs
    • Mobiliser les expertises Makina
  • Techniquement
    • Se méfier de l'archi en place côté client
    • Cacher tout ce qui peut l'être
    • Ne pas négliger la performance
    • Monitorer infra & applicatif

5 Finances

Finances

  • Client acceptant avenants et propositions d’évolutions bénéfiques
    • Régularisation du temps d'assistance
    • Bypass WMS
    • New Relic
  • Rapport de confiance établi favorable à de nouvelles opportunités

6 Demain

Evolutions

  • MFS poursuit le projet avec la FiA, et avec nous !
  • Démarche collaborative pour définir l'évolution de la p/f

 

  • Evolutions à venir
    • Réduction du temps entre arrivée donnée MFS et affichage à l'utilisateur
    • Critiquer UX & refondre la navigation archive
    • Déployer la p/f sur un autre événement
    • Performer le cache
    • Améliorer la connaissance du comportement utilisateur (piwik / GA)
    • Avoir un rendu 3D du terrain et de l’imagerie radar
    • Avoir une application mobile (PWA?)

La petite histoire...

1 Photo finish

2 Le point bonus

Merci !

mfs-bilan-projet-2017

By mdartic

mfs-bilan-projet-2017

  • 634