Accéder au contenu principal

Informatique en périphérie et informatique en nuage : Un guide pour les développeurs modernes

Explorez le passage du cloud à l'edge computing et découvrez comment cette évolution redéfinit les performances des applications, la latence et l'évolutivité globale !
Actualisé 17 déc. 2024  · 20 min de lecture

Qu'est-ce que l'informatique en périphérie ?

Il existe de nombreuses façons de définir l'informatique de pointe, mais le concept de base est assez simple. L'informatique en périphérie rapproche le calcul et le stockage des données de l'utilisateur afin de réduire les temps de latence par rapport aux centres de données centralisés.

Cela conduit à des conceptions architecturales différentes en fonction du type d'application que vous construisez. En fait, l'informatique de pointe est un terme large qui englobe de nombreux domaines technologiques.

Par exemple, dans les cas d'utilisation industriels ou de fabrication, le calcul est poussé vers les appareils IoT et les passerelles de périphérie pour agréger ou prétraiter les données avant de les pousser vers le cloud. Dans d'autres secteurs, tels que la santé, le commerce de détail ou l'automobile, vous trouverez des applications similaires qui poussent la logique informatique critique vers des dispositifs portables, des caméras intelligentes ou des véhicules autonomes. Dans tous ces cas d'utilisation, les calculs doivent être effectués rapidement à la périphérie, en évitant les retards dus aux allers-retours du réseau vers des centres de données éloignés.

Appareil client <-> Réseau périphérique <-> Cloud

Un peu d'histoire du web et du cloud computing

Dans cet article, nous nous concentrerons sur l'edge computing basé sur le CDN, qui est le type d'edge qui vous intéresse si vous utilisez quotidiennement des services web et cloud pour créer des applications web.

Pour comprendre l'edge computing basé sur le CDN et son objectif, nous devons explorer l'évolution du web et du cloud au fil des ans. Ce contexte est essentiel, car l'informatique en périphérie est la clé de cette évolution.

Voyons rapidement comment est né le web et comment il a conduit au cloud :

  • Années 1960: Le premier réseau web est lancé (ARPANET) entre 4 ordinateurs à travers les États-Unis, principalement à des fins de recherche entre les universités.
  • Années 1970: Le réseau compte environ 200 nœuds, dont de nouveaux nœuds au Royaume-Uni et en Europe. La reine Élisabeth II envoie son premier courriel le 26 mars 1976.
  • Années 1980: Le réseau se développe rapidement pour atteindre près de 100 000 nœuds, notamment grâce aux premiers ordinateurs personnels, formant ainsi la base de l'internet moderne.
  • Années 1990: Le World Wide Web (www) voit le jour, avec le premier navigateur graphique (Mosaic) et les premières entreprises de commerce électronique et du web telles qu'Amazon, Google et eBay - près de 250 millions d'utilisateurs en 1999.
  • Années 2000: Les connexions à large bande plus rapides permettent un contenu plus riche, en particulier sur les premiers smartphones dotés de réseaux 3G et 4G. Les premières plateformes de médias sociaux apparaissent (MySpace, LinkedIn, Facebook, YouTube, Twitter).

Le début des années 2000 est aussi celui de la naissance du cloud. Passons en revue quelques étapes spécifiques de ces 20 dernières années :

  • 2006: Lancement d'Amazon Web Services(AWS), qui devient la toute première plateforme de cloud public avec des services tels que SQS, S3 et EC2.
  • 2008: Google Cloud est lancé en avant-première avec Google App Engine (puis Google Cloud Storage et BigQuery en 2010).
  • 2010: Lancement de Windows Azure (rebaptisé Microsoft Azure en 2014).
  • 2013: Docker est lancé, donnant le coup d'envoi de l'informatique basée sur les conteneurs.
  • 2014: Kubernetes est annoncé (puis atteint la version 1.0 et rejoint la CNCF en 2015).
  • 2015: AWS Lambda est annoncé, et l'informatique sans serveur est née (rapidement rejointe par Azure Functions, Google Cloud Functions, et bien d'autres quelques années plus tard).

Alors, à quoi ressemble le cloud aujourd'hui ?

En moins d'une décennie, la technologie des applications web est passée de la virtualisation du matériel brutà des machines virtuelles accessiblesle en quelques minutes via l'API. Puis jusqu'à l'orchestration de conteneurs et les fonctions sans serveur qui tournent en quelques secondes (voire dizaines de millisecondes), avec des options de facturation à la seconde (voire à la milliseconde) et une quantité incroyable d'automatisation intégrée.

L'évolution de l'informatique. Virtualisation matérielle brute -> VM accessibles en quelques minutes -> orchestration de conteneurs -> fonctions sans serveur.

Et cela ne concerne que l'aspect informatique. Il existe littéralement des centaines de services gérés en matière de stockage, de réseau, de bases de données, d'analyse, etc. Les bases de données gérées sont particulièrement intéressantes car vous pouvez trouver de nombreuses options (y compris vos moteurs open-source préférés), et elles automatisent souvent les parties les plus fastidieuses de l'exploitation d'une base de données en production.

Certains affirment que les services cloud ont rendu la création d'applications web plus facile et plus rapide que jamais, tandis que d'autres estiment que c'était plus simple et plus direct il y a 10 ou 20 ans. La réalité est assez subjective et dépend de ce que vous construisez et des objectifs et priorités de votre entreprise.

Qu'est-ce qui a changé au cours des dix dernières années ?

Pour en revenir à notre rapide analyse historique, il s'est produit quelque chose d'autre - presque silencieusement - au cours de la dernière décennie. Les réseaux de diffusion de contenu ont connu une évolution similaire, conduisant à ce que j'ai appelé précédemment "l'informatique périphérique basée sur le CDN".

Un réseau de diffusion de contenu (CDN) est un réseau mondial de serveurs proxy répartis dans le monde entier pour améliorer les performances des sites web. En termes simples, un CDN aide les propriétaires de contenu à fournir du contenu aux internautes en accélérant le transfert et en mettant en cache le contenu sur des centaines de serveurs périphériques. Placé devant votre site web, un CDN peut également protéger l'origine des attaques DDoS et d'autres vulnérabilités.

Mais ce n'est plus le cas aujourd'hui. Voyons comment ils ont également évolué au cours des dix dernières années.

L'évolution des réseaux de diffusion de contenu (CDN)

Initialement axés sur la mise en cache et la protection des serveurs d'origine, les CDN ont commencé à évoluer avec l' essor de l'informatique sans serveur. Une nouvelle idée s'est rapidement imposée : les développeurs pouvaient définir une "fonction" atomique qui s'exécute à la demande en réponse à un événement, tel qu'un nouveau téléchargement d'image ou un nouvel enregistrement dans une base de données, sans avoir à posséder et à entretenir l'infrastructure physique ou virtuelle sous-jacente.

AWS Lambda a été le premier exemple de ce nouveau paradigme en 2015. AWS Lambda@Edge a suivi en 2016, vous permettant d'adopter la même approche avec des fonctions s'exécutant au-dessus d'Amazon CloudFront - le service CDN d'AWS.

Les CDN populaires ont suivi le mouvement, en introduisant des services tels que CloudFlare Workers en 2017, Fastly Compute@Edge en 2019, et Akamai EdgeWorkers en 2019.

Et ils ne se sont pas arrêtés là ! Comme nous l'avons dit au début de cet article, l'informatique de périphérie ne consiste pas seulement à apporter des capacités de calcul à la périphérie. Dans la plupart des cas, vous avez également besoin d'une forme de stockage des données. Les CDN ont donc continué à évoluer et à proposer de nouveaux services de pointe tels que les magasins de valeurs clés, le stockage d'objets, les bases de données SQL, le redimensionnement d'images, l'inférence de l'IA, et bien d'autres encore !

Par exemple :

  • La plateforme de développement de CloudFlarecomprend des servicespériphériques tels que Workers KV pour le stockage de valeurs clés, D1 pour les bases de données relationnelles SQL avec récupération ponctuelle, R2 pour le stockage d'objets sans frais de sortie, et Queues pour l'exécution de tâches asynchrones. 
  • De même, sur Fastly, vous trouverez KV Store pour le stockage de paires clé-valeur, de secrets et de données de configuration, et Fanout pour le pub/sub asynchrone bidirectionnel à la périphérie.
  • Et vous l'avez deviné, Akamai propose EdgeKV.
  • Amazon CloudFront a introduit son CloudFront KeyValueStore en 2023.

L'évolution des réseaux de diffusion de contenu.

Aujourd'hui, les CDN offrent des services dont vous vous attendez normalement à ce qu'ils ne fonctionnent que dans une région cloud (ou un centre de données), des fonctions sans serveur aux magasins de valeurs clés en passant par le stockage d'objets, les files d'attente et les bases de données relationnelles. Par coïncidence, les files d'attente, le stockage d'objets et la capacité de calcul ont été les tout premiers services du cloud annoncés en 2006, qui font aujourd'hui leur apparition à la périphérie, de manière distribuée à l'échelle mondiale.

Sous le capot, ces nouvelles plateformes de calcul utilisent différentes technologies et prennent en charge différents langages de programmation. Par exemple, CloudFlare utilise le moteur Chrome V8, qui ne prenait initialement en charge que JavaScript, mais qui a commencé à intégrer WebAssembly en 2018. D'autre part, Fastly a décidé d'utiliser WebAssembly dès le début pour son environnement sandboxing afin d'éviter certaines des limitations de latence de démarrage de V8. Cela permet à Fastly de prendre en charge de nombreux langages de programmation, tels que TypeScript, Rust, Go, .NET, Ruby et Swift.

Ouvrons une parenthèse rapide sur WebAssembly.

WebAssembly à la périphérie

WebAssembly (ou Wasm en abrégé) pourrait être le développement le plus intéressant dans ce domaine. Depuis qu'il a été annoncé en 2017 puis qu'il est devenu une recommandation du W3C en 2019, beaucoup de gens en parlent pour l'exécution dans le navigateur des binaires Wasm, mais il y a aussi beaucoup de potentiel pour l'exécution côté serveur, y compris l'edge.

Wasm vous permet d'écrire une logique commerciale dans divers langages pris en charge et de la compiler dans un fichier binaire qui s'exécute sur des runtimes Wasm tels que wasmtime de Bytecode Alliance.

Avec WASI (WebAssembly System Interface), il vous permet de composer des logiciels écrits dans différents langages avec une interface standardisée par le W3C.

Si cela vous semble familier à quelque chose de très populaire dans le monde du cloud, consultez ce tweet de 2019 du fondateur de Docker:

Si WASM+WASI existait en 2008, nous n'aurions pas eu besoin de créer Docker. C'est dire son importance. WebAssembly sur le serveur est l'avenir de l'informatique. Une interface standardisée du système était le chaînon manquant. Espérons que la WASI sera à la hauteur !

Les attentes à l'égard de Wasm + WASIsont donctrès élevées. Je vous encourage vivement à suivre de près la Bytecode Alliance et ses efforts pour créer des compilateurs, des moteurs d'exécution et des outils sécurisés et ouverts pour WebAssembly. L'organisation à but non lucratif a été fondée en 2019 par Mozilla, Fastly, Intel et Red Hat. Aujourd'hui, elle compte parmi ses membres d'autres acteurs du cloud et de la périphérie tels qu'Amazon, Arm, Cisco, Docker, Fermyon, Microsoft, Nginx, Shopify, Siemens et VMware.

Comparaison entre l'Edge Computing et le Cloud Computing

Revenons maintenant à notre exploration de l'informatique de pointe.

L'une des différences les plus intéressantes et les plus notables par rapport à l'informatique en nuage est que la périphérie est distribuée à l'échelle mondiale de par sa conception. Votre code et le stockage de vos données s'exécutent nativement sur des centaines de serveurs périphériques. C'est une grande différence par rapport aux architectures cloud qui commencent généralement par des applications centralisées s'exécutant dans un seul centre de données (ou dans 2 ou 3 zones de disponibilité au sein d'une région cloud).

Si de nombreuses applications peuvent facilement être exécutées de manière centralisée, si vous créez un site web ou un produit destiné à un public mondial, votre architecture impliquera certainement une certaine forme de mise en cache et de distribution du contenu. Grâce à l'informatique de périphérie, votre application de périphérie est distribuée globalement en un clic (ou une commande CLI) et s'exécute aussi près que possible de vos utilisateurs pour une latence optimisée.

Voici donc la question rhétorique.

Avez-vous encore besoin du cloud ?

En d'autres termes, le cloud est-il encore la meilleure option pour concevoir et réaliser des applications bien architecturées et évolutives en 2024 ?

Eh bien, oui !

En réalité, pour la plupart des cas d'utilisation, la périphérie a toujours besoin d'une certaine forme d'origine sur laquelle s'appuyer. L'origine est l'endroit où s'exécute la logique commerciale du code, qu'il s'agisse du backend de votre site web ou d'autres charges de travail complexes qui doivent rester centralisées (pour des raisons de commodité, de limitations techniques ou de coût).

Voyons quelles charges de travail sont susceptibles de rester dans le cloud (pour l'instant) :

  • API dorsales + SGRD - Il s'agit généralement du cœur de vos bases de données d'origine et de production (il existe au moins 10 services de base de données différents rien que sur AWS).
  • Stockage massif - Le cloud permet de réduire les coûts grâce au stockage à froid.
  • Analyse des données - Votre entrepôt de données typique, votre lac de données et vos pipelines de données ont besoin d'un référentiel de données centralisé pour exécuter des requêtes et créer des rapports.
  • IA/ML - La formation efficace et rentable nécessite des ensembles de données massifs (alors que l'inférence peut déjà s'effectuer à la périphérie).
  • HPC/Simulations - Le calcul à haute performance est distribué par conception, mais généralement au sein d'un même centre de données ou d'une même région afin de réduire les frais généraux du réseau.
  • Pipelines CI/CD - Celles-ci pourraient fonctionner n'importe où, mais il est probablement plus pratique et moins coûteux d'utiliser le cloud (y compris les pipelines pour déployer vos services périphériques).

En résumé, le cloud excelle dans les services à usage général, prenant en charge presque tous les types de charges de travail possibles, avec un stockage virtuellement infini et une évolutivité horizontale (au sein d'une région ou d'un petit nombre de régions pour la résilience et la reprise après sinistre).

À l'inverse, la périphérie simplifie les déploiements globaux, renforce la sécurité et permet la mise en cache pour les origines cloud tout en prenant en charge les fonctionnalités optimisées en termes de latence sans ajouter de complexité à votre application principale.

En d'autres termes, le cloud computing et l'edge computing se complètent. Ils continueront à coexister et à résoudre des problèmes techniques différents.

Architectures tenant compte des coûts

Un autre aspect intéressant à considérer est celui du coût. Comme c'est souvent le cas avec les services gérés, il faut choisir entre l'utilisation d'une solution prête à l'emploi et la conception, l'élaboration et la maintenance de votre propre solution distribuée à l'échelle mondiale.

La périphérie étant optimisée pour la distribution globale de contenu, elle permet souvent de réduire les frais de sortie. Cependant, le stockage des données en périphérie doit être réparti sur des centaines de serveurs en périphérie, ce qui fait que le stockage et les opérations de données semblent plus coûteux que les services de cloud régionaux, qui ne répliquent généralement les données que sur 2 ou 3 zones de disponibilité.

Examinons quelques chiffres, en nous concentrant sur le stockage de clés-valeurs pour 3 services de périphérie (CloudFlare Workers KV, Fastly KV, CloudFront KeyValueStore) et 2 services cloud (Redis serverless sur AWS et DynamoDB on-demand sur AWS) :

 

CloudFlare KV

Fastly KV

CloudFront KeyValueStore

Redis serverless sur AWS

DynamoDB à la demande sur AWS

1M écrit

$5

$6.25

$1000

$0.0038 *

$0.76

1M lectures

$0.50

$0.50

$0.03

$0.0038 *

$0.15

1GB/mois

$0.50

$0.50

$0

$100

$0.3 **

* pour chaque KB 

** les 25 premiers Go sont gratuits

Quelques différences et observations intéressantes :

  1. CloudFlare ne facture pas le transfert de données, mais les opérations de suppression coûtent comme les opérations d'écriture.
  2. Fastly ne facture pas les opérations de suppression, mais vous êtes limité à 250 000 écritures et 5 millions de lectures par mois (sauf si vous payez un supplément).
  3. CloudFront KeyValueStore semble follement optimisé pour les lectures, mais les écritures sont incroyablement chères par rapport aux autres options.
  4. Redis semble assez bon marché, mais vous devez garder à l'esprit que c'est 0,0038 $ par Ko, donc si vous lisez ou écrivez 5 Ko, ce sera 5 fois plus cher (ce qui reste assez bon marché).
  5. DynamoDB n'est pas seulement un magasin de valeurs clés, mais il peut certainement être utilisé de cette façon, et il semble toujours un ordre de grandeur moins cher que les services de périphérie.

Bien que les services cloud puissent sembler moins chers, il est essentiel de noter qu'ils ne fonctionnent pas par défaut à l'échelle mondiale. Vous pouvez activer DynamoDB Global Tables ou Amazon ElastiCache Global Datastore (bien que cela ne soit pas compatible avec ElastiCache serverless, vous devrez donc également gérer plusieurs clusters).

Par exemple, si vous activez DynamoDB Global Tables sur 10 régions, le coût d'écriture et de stockage est multiplié par 10, il devient donc 7,60 $ pour 1M d'écritures et 3 $ pour 1Go/mois. C'est déjà plus cher que les solutions de périphérie et seulement pour 10 régions (par rapport aux centaines de serveurs de périphérie).

Cas d'utilisation du monde réel pour l'informatique en périphérie (Edge Computing)

Alors, que peut-on faire concrètement à la périphérie ? Il existe de nombreux cas d'utilisation intéressants et j'espère que cet article vous aidera à déterminer celui qui convient à votre produit.

Quelques exemples :

  • Authentification: La mise en œuvre de CAPTCHA, d'une authentification sans mot de passe ou d'une validation JWT à la périphérie peut réduire la charge d'origine en effectuant des opérations sans état à la périphérie qui ne nécessitent pas d'accès à la base de données ou à d'autres ressources d'origine.
  • Collecte des données: Intégrez des sources de données externes ou des destinations de données, en déchargeant le suivi côté client et côté serveur vers la périphérie afin d'éviter les SDK lourds dans les navigateurs ou les goulets d'étranglement des performances sur le serveur.
  • Enrichissement basé sur la géographie: Améliorez votre site web avec un contenu "près de chez vous" stocké à la périphérie, mettez en place des redirections localisées (/en -> /fr ), le geofencing ou l'étranglement par pays à l'aide d'API de géolocalisation.
  • Personnalisation du contenu: Stockez et affichez les articles récemment consultés ou les produits recommandés à la périphérie, mettez en place des murs payants pour le contenu premium ou utilisez les tests A/B pour fournir un contenu personnalisé et contextualisé tout en minimisant la complexité au niveau de l'origine.
  • Optimisations SEO: Manipulez les en-têtes HTTP et les réponses HTML directement à la périphérie pour mettre en œuvre des politiques de mise en cache personnalisées, des assemblages de contenu ou des algorithmes de compression ad hoc.
  • Sécurité: Intégrer des WAF (Web Application Firewalls) personnalisés ou mettre en œuvre des en-têtes secrets et une logique de contrôle d'accès personnalisée.

Vous pouvez également concevoir un produit entier ou une suite de produits qui fonctionne presque entièrement à la périphérie - exactementce que nous faisons à Edgee.

A retenir

J'espère que cet article a clarifié le fait que les CDN ne se limitent plus à la mise en cache et à la protection contre les attaques DDoS - ils fournissent désormais une multitude de services précieux aux développeurs. The Edge est une nouvelle façon de créer des applications ou d'intégrer de nouvelles fonctionnalités tout en conservant une origine rapide et simple.

WebAssembly a un grand potentiel, non seulement pour le navigateur, mais aussi pour l'exécution de binaires côté serveur et en périphérie. 

Le cloud est là pour rester. et la périphérie complète ses limites en permettant la création d'applications distribuées à l'échelle mondiale avec une latence et un coût optimisés. Je recommande personnellement de concevoir et d'élaborer des architectures tenant compte des coûts, car il s'agit d'une compétence clé pour devenir un développeur ou un architecte plus efficace.

FAQ

L'informatique de pointe peut-elle fonctionner sans connexion internet ?

Oui, l'informatique de pointe peut fonctionner sans connexion internet permanente pour des tâches spécifiques. En traitant les données localement sur les appareils périphériques, les applications peuvent effectuer des opérations en temps réel, comme l'analyse ou la prise de décision. Toutefois, les tâches nécessitant une synchronisation sur le cloud, une analyse de données à grande échelle ou une coordination centralisée auraient besoin de connectivité.

Quel est l'impact de l'informatique de pointe sur l'efficacité énergétique ?

L'informatique en périphérie peut améliorer l'efficacité énergétique en réduisant la nécessité de transmettre de grandes quantités de données vers et depuis des serveurs cloud centralisés. Le traitement local minimise le trafic sur le réseau et réduit la consommation d'énergie. Cependant, l'utilisation de nombreux appareils périphériques au niveau mondial peut également entraîner une consommation d'énergie cumulée plus élevée, en fonction de l'échelle et de l'efficacité des appareils.

Quels sont les secteurs qui adoptent le plus rapidement l'informatique de pointe, et pourquoi ?

Des secteurs comme la fabrication, les soins de santé, l'automobile et le commerce de détail adoptent rapidement l'informatique de pointe. L'industrie manufacturière bénéficie d'une surveillance en temps réel et d'une maintenance prédictive dans les ateliers. Le secteur de la santé utilise les technologies de pointe pour établir des diagnostics rapides sur des appareils portables. Les industries automobiles l'exploitent pour les opérations de véhicules autonomes, et le commerce de détail l'applique pour des expériences d'achat personnalisées.

Comment WebAssembly (Wasm) améliore-t-il l'informatique de pointe ?

WebAssembly (Wasm) améliore l'informatique périphérique en permettant aux développeurs d'exécuter des applications légères, sécurisées et très performantes sur des appareils périphériques. Il prend en charge plusieurs langages de programmation, ce qui permet une certaine souplesse dans le développement. Son temps de démarrage rapide et sa compatibilité avec des plateformes de pointe comme Cloudflare Workers ou Fastly font de Wasm un choix idéal pour les applications sensibles à la latence.

Quels sont les défis de sécurité de l'edge computing par rapport au cloud computing ?

L'informatique en périphérie pose des problèmes de sécurité particuliers, car les données sont traitées au plus près des utilisateurs sur des appareils distribués, ce qui augmente les surfaces d'attaque potentielles. Le cryptage des données, l'authentification sécurisée des appareils et les mises à jour régulières des logiciels sont essentiels pour atténuer les risques. Contrairement aux systèmes cloud dont les contrôles de sécurité sont centralisés, les environnements en périphérie nécessitent des mesures plus décentralisées et adaptatives.


Alex Casalboni's photo
Author
Alex Casalboni
LinkedIn
Twitter

Alex est un ingénieur logiciel passionné par les technologies web et la musique. Il a commencé à travailler sur des projets web et à partager ses expériences en 2011. Sa passion pour la programmation s'étend à différents langages tels que Python et JavaScript, ainsi qu'au monde de l'open-source et aux startups. Après avoir passé 6 ans à aider les développeurs et les entreprises à adopter les technologies cloud, Alex est retourné à la vie de startup pour aider les entreprises à adopter les technologies et les services d'edge computing.

Sujets

Apprenez-en plus sur le cloud computing avec les cours suivants !

cours

Understanding Cloud Computing

2 hr
114.3K
A non-coding introduction to cloud computing, covering key concepts, terminology, and tools.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow
Apparenté

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

See MoreSee More