J'ai installé TousAntiCovid et ça ne fonctionnait pas...

Si tu suis un peu l’actualité, tu as sûrement remarqué qu’une cinquantaine de départements sont passés en couvre-feu pour limiter la progression du Covid-19.

Je n’ai aucun avis sur l’efficacité de la mesure, je ne suis ni épidémiologiste, ni infectiologue.

Et si on disposait d’une technologie accessible au plus grand nombre pour limiter la propagation du virus ?

C’est la question que beaucoup se sont posée.
Plusieurs projets sont nés de cette hypothèse.

D’un côté, le système de notification d’exposition au Covid-19 développé par Apple et Google.
De l’autre, des solutions souveraines développées par les Etats.

Je vais aborder le sujet plus en détail dans un vidéo à venir sur la chaîne.
Si c’est un sujet qui t’intéresse, n’hésite pas à me le faire savoir en répondant à ce mail !


Lancer une application très grand public en un temps record

Le temps de ce mail, je vais m’attarder sur les problématiques rencontrées quand on doit mettre une application à l’échelle.

Tu le sais probablement, mais TousAntiCovid est la version 2.
La première version s’appelait StopCovid et ce fut un fiasco.

Il n’y a pas mal de facteurs qui peuvent perturber le lancement d’un projet de cette envergure :

  • Une mauvaise communication ?
  • Une mauvaise architecture technique ?
  • Un manque d’expertise technique ?
  • Trop peu d’utilisateurs ?

Le but n’est pas de blâmer le gouvernement, mais plutôt d’essayer d’identifier les potentiels problèmes techniques.

Lancer une application visant 67 millions de Français est un énorme challenge.


Une communication incertaine

Lors du premier lancement, Cédric O, Secrétaire d’Etat chargé de la transition numérique et des communications électroniques a présenté l’application comme un moyen de lutter contre la propagation du virus.

Le problème d’une solution participative est le taux d’adoption.
Si trop peu de personnes installent l’application, son efficacité sera amoindrie…

Par la suite, l’application a connu une ribambelle de problèmes techniques.
Développer des applications scalable ne s’improvise pas.

Officiellement, l’échec de StopCovid est dû au faible nombre de téléchargements.

Mon avis personnel est qu’un mauvais démarrage a collé au dos de cette application censée nous aider à combattre l’épidémie…


TousAntiCovid = StopCovid 1.5

TousAntiCovid est la nouvelle version de StopCovid.

La majorité des problèmes techniques ont été corrigés et l’application devient désormais un hub regroupant toutes les informations nécessaires relatives au Covid-19.

Suite à l’annonce, j’ai décidé d’installer l’application.

L’installation se passe sans problème jusqu’à ce que je tente d’activer le service.
Et là, c’est le drame.

Pendant plusieurs heures, impossible d’activer TousAntiCovid.
L’application a subi une interruption de service dû aux nombres d’utilisateurs.


Quelques « hypothèses » pour encaisser plus de charge

Quand on rencontre des problèmes de performances, il existe différents axes d’amélioration.
Évidemment, il m’est impossible de citer toutes les solutions dans un simple mail...

Première hypothèse: optimiser les algorithmes et structures de données

Un mauvais choix dans un algorithme ou une structure de donnée peut impacter les performances et entraver la montée en charge.
Ce type de problème apparaît en général assez tard dans le développement.

Un algorithme qui fonctionne pour 100 utilisateurs ne fonctionne pas forcément pour 10 millions d’utilisateurs (cf Big-O Notation)…

Deuxième hypothèse: scaler l’infrastructure

En passant sur une architecture du type Cloud, il est possible de déployer une application dont l’infrastructure évoluera en fonction de la demande.

C’est ce qu’on appelle de l’auto-scaling.
La puissance de la machine ou du container hébergeant ton application se mettra automatiquement à jour une fois un certain seuil de charge atteint…

Troisième hypothèse: analyser les points de contention

Parfois quand tu développes une application, tu peux finir par te rendre compte que les ralentissements ne proviennent pas d’un composant en particulier, mais de l’interaction entre les deux.

Il est parfois nécessaire de changer de protocole de communication, mettre à jour des pilotes, effectuer des montées de versions…

Tu l’as bien compris, l’optimisation de performances est un domaine assez compliqué.


L’application fonctionne enfin au bout de quelques tentatives

J’ai fini par réussir à activer le service.

Libre à toi de l’installer ou pas, je pense personnellement que c’est un outil qui peut s’avérer utile.

Ceux qui se cachent derrière un problème d’utilisation de données, mais qui ont un compte Google ou Facebook se voilent un peu la face.

J’ai jeté un œil au code source publié par le gouvernement.
Le projet est assez intéressant, j’aborderai quelques détails en vidéo.

Il a fallu développer un nouveau protocole pour garantir le fonctionnement de deux choses assez opposées : tracing et anonymat…

Quand ma vidéo sortira, n’hésite pas à la partager avec tes proches.
Plus on l’utilise, plus elle sera efficace !

À demain,

Captain Dev