Imaginez quelques instants un Internet décentralisé, où les serveurs ont presque disparu. Imaginez que nous soyons tous à la fois client, et serveur. Imaginez que nous puissions échanger de la donnée, exécuter du code et être payé pour ce temps. Une sorte de Bitcoin du temps informatique, une monnaie d’échange qui permettrait de décentraliser les données…
Et bien cela va peut-être arriver.
Chez Amazon
James Hamilton, AWS Distinguished Engineer, a fait une présentation en novembre 2014 à Las Vegas lors de la conférence AWS re:Invent. Cette présentation a été couverte dans cet article de Timothy Prickett Morgan et aussi dans cet autre article sur le site High Scalability sur Amazon AWS.
Quelques chiffres pour comprendre le poids d’AWS en 2014 :
- un million d’utilisateurs actifs
- 11 régions, 28 zones de disponibilités
- enter 1.4 et 2.2 millions de serveurs (source)
- les 14 autres fournisseurs de Cloud du marché n’ont que 1/5 de la capacité d’AWS
- 449 nouveaux services en 2014
- Amazon ajoute chaque jour l’équivalent de la capacité qui était nécessaire en 2004 pour faire tourner la société, qui faisait déjà 7 milliards d’USD de C.A par an
- S3 augmente de 132% d’année en année en terme de volume transféré
- il y a 102Tbps de capacité réseau dans un seul datacenter
- un Datacenter c’est en général entre 50 000 et 80 000 serveurs, avec une conso électrique de 25 à 30 Megawatts
L’article explique aussi que le souci actuel d’Amazon… c’est le réseau. Son coût ne cesse d’augmenter d’année en année. CPU, mémoire, disque dur : le prix de ces composants a fondu. Amazon AWS représente un tel poids économique, qu’Intel travaille main dans la main pour proposer du matériel le plus adapté. Mais donc, le réseau pose un problème à Amazon.
“Networking is a red alert situation for us right now,” explained Hamilton. “The cost of networking is escalating relative to the cost of all other equipment. It is Anti-Moore. All of our gear is going down in cost, and we are dropping prices, and networking is going the wrong way. That is a super-big problem, and I like to look out a few years, and I am seeing that the size of the networking problem is getting worse constantly. At the same time that networking is going Anti-Moore, the ratio of networking to compute is going up.” Hamilton in this article
Tout d’abord au niveau du prix. Imaginez des autoroutes dont les prix ne baissent pas, alors que le traffic augmente. Cela entraîne alors des coûts mensuels énormes pour faire transiter de la donnée, d’un centre à l’autre. Pour résoudre cela, Amazon a câblé et relié chacun de ses centres, afin d’éviter de devoir reverser des loyers. Premier problème résolu. Mais malgré cela, la latence entre les centres peut être importante. Avec de la fibre, vous êtes à 1 ou 2ms d’un autre centre. C’est assez loin pour que le risque de perdre 2 centres soit presque nul (tremblement de terre, problème électrique) et c’est assez près pour que la latence soit très basse.
« The Network is a bigger pain point that servers » Hamilton (source)
Pourquoi le réseau est-il un problème ? Les CPU traitent de plus en plus rapidement un volume d’information qui lui aussi, augmente. Repensez à vos cours de thermodynamique… la taille du tuyau n’augmente pas dans la même proportion que la puissance de traitement. Pour cette raison, le réseau est le disque dur en 2014, qui ne pourra pas suivre et ne cesse de coûter de plus en plus cher.
Amazon a lancé il y a 5 ans une initiative radicale pour le réseau : ils ont embauché et construit leurs propres systèmes, du routeur à la pile de protocole réseau. Cette stratégie a aidé AWS à réduire encore les coûts, à améliorer la disponibilité et à éviter surtout le gaspillage. Comme Google, cela fait longtemps qu’AWS a sa propre infrastructure matérielle. Non, Amazon ne va pas chez un revendeur pour acheter un serveur, il le construit. De même, Amazon maintenant utilise sa propre implémentation réseau, ce qui a entraîné des économies. Faire « soit-même » devient intéressant lorsque vous avez un business qui génère 74.5 milliards de dollar par an. C’est le C.A d’Amazon en 2013 (source).
Amazon donc est déjà confronté à un problème qu’il sera difficile de résoudre : nous risquons d’engorger les systèmes et les réseaux dans quelques années.
Vraiment, imaginez que vous lisez ce texte en 2025. Vous avez la fibre à la maison, un débit ultra-rapide… mais que les sites sur lesquels vous naviguez ne répondent pas plus vite qu’en 2014. Imaginez ces milliers de petits paquets sur des autoroutes, dont la capacité est limitée. Imaginez que le ratio entre le volume de données, et le tuyau nécessaire pour le faire passer, soit déséquilibré…
Et si demain, nous n’avions plus de serveurs
Internet avait été pensé pour décentraliser l’échange de données. Cependant, nous finissons par toujours repasser par les mêmes endroits. Pensez un instant à ce petit bout de Javascript qui affiche le bouton « Tweet-this » ou « Facebook Like » que vous voyez sur de nombreux sites… autant de ponts tendus vers des systèmes uniques, vers des serveurs.
En s’inspirant des principes des Crypto-monnaies comme le BitCoin, certains sont déjà en train d’inventer l’Internet de demain. Ethereum est un réseau décentralisé qui permet de publier, de faire fonctionner des applications, et d’échanger des données. Vitalik Buterin, son inventeur a 20 ans. Il a été distingué par le « World Technology Award Winner 2014 » dans la catégorie IT Software. 20 ans, c’est l’âge du langage Java.
Ethereum n’est pas qu’une crypto-monnaie. C’est aussi un moyen d’exécuter des contrats électroniques entre tiers. Prenez par exemple les réseaux peer-to-peer. Imaginez que pour pouvoir télécharger, vous devez d’abord partager un certain volume de données. Et bien un contrat électronique permet de représenter une dette ou un avoir entre 2 tiers. Ethereum est un système qui peut faire fonctionner ces contrats. Cela veut donc dire que tout un chacun peut héberger et faire fonctionner un traitement informatique. Le serveur disparaît, chacun devient un serveur pour l’autre. Là où le système est intéressant, c’est qu’il pense à une capacité finie, à un volume de ressource qui n’est pas inépuisable. Vous pouvez imaginer par exemple que pour rouler sur l’autoroute, il faudrait que vous passiez une journée par an, à l’entretenir. Votre contribution vous donne le droit d’utiliser et d’échanger avec d’autres. Cela se matérialise avec la crypto-monnaie dans le système Ethereum.
Ethereum introduit 4 éléments importants pour pouvoir prétendre à être un Web 3.0 :
- l’échange de contenus statiques
- l’échange de messages dynamiques
- la possibilité de faire des transactions de tiers à tiers directement sans passer par un serveur
- une interface utilisateur intégrée
Le financement du projet est intéressant. Il est estimé à 18 millions de dollar. Il n’existe que des clients Go et C++, quoiqu’un client Java soit en développement.
Plus intéressant, cette forme de réseau décentralisé fait penser au réseau Skynet… Ethereum offre la capacité de développer des services autonomes, qui seront financés par des utilisateurs, afin de payer les ressources qu’ils utilisent. Cela permettrait par exemple un système de DNS… où aucun humain n’intervient. Vous payez votre nom de domaine à ce système… qui utilisera ces fonds pour payer l’infrastructure et la machine qui l’héberge à un instant T. Vous auriez donc des locataires sur votre ordinateur, qui payeront le loyer. Argent qui vous permettra à votre tour de surfer sur internet.
Ethereum c’est un peu le AirBnB où les programmes viennent dormir sur le canapé, vous payent, et vous permettent à votre tour de voyager et d’utiliser d’autres services…
Cela fait aussi peur, car nous pourrions avoir des systèmes informatiques totalitaires et autonomes. Une fois votre logiciel de DNS codé… il ne vous appartient plus. Il vivra sa vie sur le réseau Ethereum. Légalement, qui pourra arrêter un logiciel qui a bloqué l’accès à un site… car vous n’aviez pas réglé une dette ?
Conclusion
Nous avons vu par l’exemple d’Amazon, que le réseau est un point de contention, qui n’évolue pas aussi vite que le volume échangé. Chaque jour, nos ordinateurs et nos smartphones demandent et échangent d’énormes volumes de données. L’architecture client-serveur actuelle montre que les volumes échangés entre les clients et les serveurs sont très déséquilibrés. Est-ce qu’Amazon peut supporter seul ce type de coût ? A quoi cela sert-il d’avoir de la fibre, si ce n’est pour engorger encore plus des serveurs ?
Une idée issue du monde des crypto-monnaies, est de penser un système partagé et décentralisé, où tout un chacun peut devenir serveur pour un autre. Est-ce vraiment l’avenir ? Quels usages seront impactés demain ?
0 no like
En dehors de l’aspect rétribution d’Etherum, ces notions de serveurs décentralisés existent depuis bien longtemps, notamment avec Freenet où on met à disposition un espace de stockage d’information qui est utilisé pour stocker d’autres contenus de manière transparente et ainsi redondés les plus consultés, améliorant ainsi la résilience à la panne d’un noeud.
Si le réseau est un problème l’énergie aussi. Et ce type de fonctionnement est valable si l’énergie est où devient illimité. Ce qui pour le moment… N’est pas le cas
« Une idée issue du monde des crypto-monnaies, est de penser un système partagé et décentralisé, où tout un chacun peut devenir serveur pour un autre. Est-ce vraiment l’avenir ? Quels usages seront impactés demain ? »
IMHO, cela ne fonctionnera que si chacun de nous est son propre hébergeur.
Car, si chacun a ses propres serveurs, mais que tous ceux-ci sont hébergés chez Amazon, retour à la case départ !
Et avant que chacun de nous ne soit son propre hébergeur, de l’eau aura coulé sous les ponts…
Je plussoie Smashou.
Par ailleurs, il y a une grosse différence entre les machines serveurs actuels et les machines clientes actuelles : ce qu’on exige d’elles en termes de disponibilité. On attend des serveurs qu’ils soient disponibles à tout instant, quelle que soit l’heure du jour ou de la nuit, alors que nos propres machines personnelles passent bien plus de temps éteintes qu’allumées.
Si tout le monde devient l’hébergeur de tout le monde (et non pas: chacun devient son propre hébergeur, parce que ça, c’était ce qui prévalait avant Internet, et ce n’est pas ce vers quoi on veut tendre, même si c’est peut-être ce qui sera notre réalité dans 20 ou 30 ans, la faute à l’énergie…), alors il va falloir s’adapter et s’habituer à ce que nos données ne soient pas disponibles quand on en a envie, mais seulement quand le système de stockage global peut les restituer. (Et ce, même si on met en place un système de redondance élevée des données, ce qui permet d’accroître la tolérance aux pannes, mais n’augmente que marginalement la disponibilité des données. Pour une raison simple : on a tous tendance à éteindre nos ordis persos aux mêmes heures…)