27 points par xguru 2022-10-11 | 3 commentaires | Partager sur WhatsApp
  • Le Web a commencé sur un seul ordinateur
  • 32 ans plus tard, nous développons encore comme si tout tournait sur une seule machine
  • Ces dernières années, les sites statiques ont été servis près des utilisateurs via des CDN
  • La même chose arrive désormais aux web apps dynamiques. Elles peuvent maintenant être déployées partout

Qu’est-ce que l’Edge ?

  • Quand on parle de « The Edge », cela signifie que votre site ou votre app est déployé sur plusieurs serveurs, proches de chaque utilisateur, partout dans le monde
  • Quand quelqu’un demande votre site/app, il est dirigé vers le serveur le plus proche
  • Ces serveurs distribués peuvent exécuter du code personnalisé pour prendre en charge des web apps dynamiques, et pas seulement des assets de sites statiques
  • Déplacer ainsi l’exécution vers des serveurs proches vise aussi à optimiser la latence
  • Plus le chargement d’une page est long, plus la probabilité que l’utilisateur parte augmente
  • Si vous déployez sur Heroku, par exemple, votre app se retrouve dans un data center AWS en Amérique du Nord, et le TTFB (Time to First Byte) devient plus lent depuis l’Europe ou d’autres villes
  • Mais si l’on teste Deno.com, déployé sur notre Edge Network Deno Deploy, le TTFB est bien plus rapide
  • Le concept de server a été introduit pour la première fois dans une RFC de 1969
  • La machine NeXT dans le bureau de Tim Berners-Lee était le premier serveur Web. Mais Internet fonctionnait déjà depuis plus de 20 ans à ce moment-là

Mettre le contenu en cache près des utilisateurs

  • L’architecture serveur a bien fonctionné pendant longtemps, mais des problèmes ont commencé à apparaître à la fin des années 90, à mesure que le Web grossissait
  • Akamai a été le premier à introduire le CDN en 1998
  • Le CDN d’Akamai mettait le contenu en cache dans un système distribué de serveurs
  • Les CDN sont devenus un élément essentiel du Web moderne

Less servers, more serverless

  • Les serveurs ont aussi un problème à l’opposé de la « surcharge » : la sous-utilisation
  • Un serveur ne peut pas simplement être éteint ; il doit rester allumé 100 % du temps, et tout cela a un coût
  • Le serverless atténue ce problème. Il démarre quand on en a besoin, puis s’arrête à nouveau
  • Mais « serverless » est un mauvais nom. Les serveurs n’ont pas disparu, ils sont toujours impliqués
  • Il n’y a simplement plus de serveur dédié tournant en permanence
  • Le premier framework serverless largement adopté a été AWS Lambda
  • Le serverless a deux avantages
    • Vous ne payez que pour ce que vous utilisez
    • Vous n’avez pas à vous soucier de la gestion des serveurs : pas de planification, pas d’administration, pas de maintenance
  • Son principal inconvénient est généralement la performance
    • Le problème du « Cold Start »
    • Et les serveurs restent centralisés, donc il y a toujours un long aller-retour réseau
  • C’est ainsi qu’on en est arrivé à aujourd’hui

Livin's on the edge

  • La beauté de l’Edge, c’est qu’il combine les avantages du CDN (la proximité avec l’utilisateur) et ceux du serverless (l’exécution de fonctions)
  • En d’autres termes, l’Edge permet d’exécuter du code personnalisé près de l’utilisateur. Cela apporte de nombreux avantages

De meilleures performances

  • C’est la seule chose qui compte vraiment pour les utilisateurs
  • Quand un site ou une app s’exécute sur un serveur Edge proche de l’utilisateur, c’est plus rapide qu’un serveur central
  • Mais les gains de performance ne s’arrêtent pas là
  • Le calcul s’exécute sur l’Edge plutôt que dans le navigateur de l’utilisateur
    • L’app nécessite moins de ressources sur la machine de l’utilisateur
    • Moins de payload est envoyé à l’utilisateur, donc moins de bande passante est consommée
    • Les fonctions s’exécutent dans un environnement contrôlé, donc les fonctions et les API se comportent de manière cohérente

Une meilleure sécurité

  • Déplacer le calcul du client/de l’appareil vers un Edge serverless réduit la surface d’attaque de l’app
  • Les attaques DDoS deviennent plus difficiles à mener

Une meilleure expérience développeur

  • Aujourd’hui, écrire du code pour l’Edge est plus compliqué que nécessaire
  • La plupart des problèmes viennent de la nature hybride du développement Edge
  • Comme beaucoup de frameworks n’ont pas été conçus en Edge-First, les développeurs doivent choisir pour chaque fonction ou page si elle s’exécute à l’Edge ou dans le navigateur
  • Mais de nouveaux frameworks comme Fresh simplifient cela grâce au SSR et à l’architecture Islands
  • En utilisant Fresh avec Deno Deploy, il est possible d’obtenir un score parfait à Lighthouse grâce à l’optimisation de la latence
  • L’Edge est la prochaine itération d’Internet.
    La prochaine étape pour rendre le Web plus rapide, et un endroit plus sûr pour les utilisateurs comme pour les développeurs

3 commentaires

 
cometkim 2022-10-17

Sur le blog de Fastly, ils prévoient qu’environ 70 % de l’infrastructure de calcul des data centers existante migrera vers l’edge, haha.