2 points par GN⁺ 2024-06-01 | 1 commentaires | Partager sur WhatsApp

Expérience d’utilisation d’Internet en Antarctique

  • Pendant 14 mois, l’accès à Internet s’est fait via une liaison satellite limitée
  • À la base de McMurdo, environ mille personnes se partagent quelques dizaines de mégabits
  • En octobre 2023, au pôle Sud, la connexion Internet n’était disponible que quelques heures par jour
  • La connexion satellite entraîne une latence élevée (environ 750 millisecondes)

Problèmes d’ingénierie web et app dans un environnement à Internet lent

  • De nombreuses web apps ne prennent pas en compte les environnements à Internet lent.
  • Par exemple, une certaine application ne fonctionnait qu’après avoir chargé 20 Mo de JavaScript.
  • Si une app ne fonctionne pas correctement dans un environnement à Internet lent, les utilisateurs subissent une forte gêne.

Principaux problèmes et pistes de solution

Timeouts et tailles de chunk codés en dur

  • Les timeouts et les tailles de chunk codés en dur provoquent de gros problèmes dans les environnements à Internet lent.
  • Solutions :
    • Si les données continuent de circuler, les laisser telles quelles et afficher la progression via l’UI.
    • En cas d’échec d’un appel HTTPS, réessayer avec un timeout plus long.
    • Ne pas envoyer de gros volumes de données d’un seul coup, mais les découper en petits chunks.
    • En cas de problème, diagnostiquer via DNS, ICMP, HTTP, etc.

Exemple 1 - téléchargement des métadonnées d’une app

  • Une application desktop donnée échoue à télécharger ses métadonnées à cause d’un timeout codé en dur.
  • Solutions :
    • Réessayer avec des timeouts progressivement plus longs.
    • Utiliser les données en cache ou des valeurs par défaut.
    • Fournir un moyen permettant à l’utilisateur de télécharger manuellement les données.

Exemple 2 - application de chat

  • Une certaine application de chat échoue parce qu’elle utilise un timeout de 10 secondes pour l’initialisation du WebSocket.
  • À l’inverse, une autre application de chat s’adapte bien à différentes conditions réseau.
  • Solutions :
    • Ajuster dynamiquement les timeouts et réessayer intelligemment en cas d’échec.
    • Afficher clairement l’état actuel du réseau.

Exemple 3 - transfert progressif

  • Un outil de publication de blog envoie les données en petits chunks et reprend en cas d’échec.
  • Une autre plateforme commerciale tente d’envoyer de gros fichiers en une seule fois et échoue.

Proposer une fonction de téléchargement à l’utilisateur

  • Si la fonction de téléchargement intégrée à l’app échoue, fournir un lien permettant à l’utilisateur de télécharger directement.
  • L’utilisateur peut télécharger le fichier une fois et le partager sur plusieurs appareils.
  • Cela offre à l’utilisateur la flexibilité de gérer lui-même les téléchargements.

Exemple 1 - mise à jour de macOS

  • Les mises à jour macOS posent problème en raison de la grande taille des fichiers et d’une fonction de cache incomplète.
  • Solutions :
    • Fournir un lien de téléchargement pour permettre à l’utilisateur de télécharger directement.
    • Ajouter une fonction pause/reprise à l’outil de téléchargement.
    • Fournir un installateur complet incluant tous les fichiers nécessaires.

Exemple 2 - mise à jour de l’OS des téléphones Android Samsung

  • Les mises à jour de l’OS des téléphones Android Samsung échouent faute de fonction pause/reprise.
  • Solutions :
    • Ajouter une fonction pause/reprise à l’outil de téléchargement.
    • Fournir un lien permettant à l’utilisateur de télécharger directement les fichiers.

Exemple 3 - mise à jour automatique d’une petite app

  • La mise à jour automatique d’une petite application desktop pose problème faute de boutons pause/annulation.
  • Solutions :
    • Ajouter des boutons pause/annulation à l’outil de téléchargement.

L’avis de GN⁺

  • Prendre en compte les environnements à Internet lent : de nombreuses apps ne tiennent pas compte des environnements à Internet lent, ce qui cause une forte gêne aux utilisateurs. C’est un enjeu particulièrement important dans les zones isolées ou en milieu maritime.
  • Améliorer l’expérience utilisateur : les développeurs d’apps doivent améliorer l’expérience utilisateur en tenant compte de diverses conditions réseau. Cela augmente la satisfaction des utilisateurs et renforce la fiabilité de l’app.
  • Solutions techniques : des solutions techniques comme l’ajustement des timeouts, le transfert par chunks et la reprise des téléchargements permettent de résoudre ces problèmes.
  • Recommander d’autres produits : pour trouver une app qui fonctionne bien dans un environnement à Internet lent, comparer les produits concurrents peut aussi être une bonne méthode. Par exemple, certaines applications de chat fonctionnent mieux dans des conditions lentes.
  • Points à considérer lors de l’adoption de technologies : lors de l’adoption de nouvelles technologies, il faut tenir suffisamment compte des conditions réseau. C’est un facteur particulièrement important dans les zones isolées ou les environnements contraints.

1 commentaires

 
GN⁺ 2024-06-01
Avis Hacker News
  • Environnement Internet en Chine : l’environnement Internet en Chine est instable et les VPN sont également limités. Les développeurs devraient revenir à 2005 et créer des web apps plus efficaces.

  • Problèmes réseau en Australie et dans le métro londonien : en Australie et dans le métro de Londres, le réseau se coupe souvent, et la plupart des applications gèrent mal cette situation. WhatsApp fait exception et fonctionne particulièrement bien.

  • Suggestion d’utiliser un bureau à distance : certains se demandent si utiliser un bureau à distance offrirait une meilleure expérience. Les performances de VNC/Windows Remote Desktop restent incertaines lorsque les conditions réseau sont mauvaises.

  • Le problème de l’Internet lent : de nombreux sites web ne fonctionnent pas correctement avec un Internet lent. Même les pages uniquement textuelles sont longues à charger. Passer à un générateur de sites statiques a beaucoup aidé à améliorer la productivité.

  • Logiciels local-first : il faut des logiciels local-first. Cela correspond à l’objectif initial d’Internet et permet de conserver la propriété des données.

  • Blogs et problèmes de bande passante : l’auteur du blog consomme beaucoup de bande passante, ce qui suscite les plaintes des autres. Mais il est prioritaire en raison de sa valeur en matière de relations publiques.

  • Expérience de bidouillage réseau : une personne propose, à partir de son expérience dans divers environnements réseau, d’utiliser NNCP pour découper les données en chunks et les transmettre. NNCP garantit un transfert de données fiable.

  • Nécessité de prendre en compte les environnements réseau lents : beaucoup de gens n’ont pas accès à un Internet rapide. Il faut développer des applications qui fonctionnent bien même sur des réseaux lents.

  • Expérience dans le Pacifique Sud : en raison de la forte consommation électrique de Starlink, une SIM locale a été utilisée, mais le réseau EDGE (2G) était extrêmement lent. Les tests logiciels devraient inclure des connexions à faible débit et forte latence.

  • Résolution des problèmes d’Internet à bord des navires : pour utiliser efficacement Internet sur un navire, différentes méthodes sont employées, comme bloquer les requêtes DNS, limiter les sessions utilisateurs et répartir équitablement la bande passante.