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
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.