Pour AWS, le langage Rust ouvre de nouvelles perspectives pour la programmation

Pour AWS, le langage Rust ouvre de nouvelles perspectives pour la programmation

Il y a tout juste sept ans, le langage de programmation Rust a atteint la version 1.0, ce qui en fait l’un des langages les plus jeunes et un langage très prometteur pour les grandes bases de code écrites en C et C++. Aujourd’hui, Amazon, Google et Microsoft soutiennent ce langage qui, à l’origine, était un projet personnel de Graydon Hoare avant de devenir un projet de recherche chez Mozilla en 2010. Pour les équipes de la branche Cloud d’Amazon, Amazon Web Services (AWS), c’est bien simple : Rust s’impose avant tout parce qu’il s’agit du langage de programmation le moins énergivore.

Rust n’est pourtant pas aussi populaire que Java, JavaScript ou Python. Il s’est toutefois imposé comme un langage essentiel pour la construction de systèmes tels que le noyau Linux, Windows, Chrome et Android. Membre fondateur de la Fondation Rust, AWS est l’un des premiers partisans de Rust et a même lancé une campagne de recrutement dédiée pour s’attirer les faveurs de développeurs spécialisés dans ce langage.

Il faut dire que ce dernier a des arguments à faire valoir. Rust permet en effet aux développeurs d’éviter une multitude de failles liées à la mémoire, communes au C/C++, qui coûtent finalement aux entreprises en mises à jour de sécurité. Le langage a obtenu son soutien le plus visible lorsque Microsoft a révélé qu’il était en train de l’expérimenter pour Windows, principalement pour éviter les bugs de mémoire.

publicité

Rust, une révolution environnementale ?

Pour Shane Miller et Carl Lerche, tous deux défenseurs de Rust et ingénieurs chez AWS, ce langage n’est pas seulement performant sur les questions de sécurité de la mémoire et de réduction des failles de sécurité. Il s’agit selon eux d’un langage bien plus écologique que Python et Java. En ce sens, il soutient le plan concocté par Amazon pour rendre ses centres de données moins nocifs pour l’environnement, l’entreprise visant à ce que ses centres de données soient totalement renouvelables d’ici 2025.

Rappelons que les centres de données représentent 1 % de la consommation d’énergie mondiale, soit environ 200 térawattheures d’énergie par jour, et les langages de programmation utilisés peuvent également avoir un impact sur la consommation d’énergie.

Les services d’AWS basés sur Rust comprennent Firecracker, la technologie qui sous-tend sa plateforme sans serveur Lamba pour les applications conteneurisées, Amazon Simple Storage Service (S3), Elastic Compute Cloud (EC2), son réseau de diffusion de contenu CloudFront et Bottlerocket, un système d’exploitation de conteneurs basé sur Linux. « Ce n’est pas une surprise que C et Rust soient plus efficaces que d’autres langages. Ce qui est choquant, c’est l’ampleur de la différence. L’adoption généralisée de C et Rust pourrait réduire la consommation d’énergie des ordinateurs de 50 %, même avec une estimation prudente », explique Shane Miller, citant une étude montrant l’efficacité énergétique relative des langages, de C à Go de Google, Lua, Python, Ruby et l’ancien Fortran.

« Rust offre l’efficacité énergétique de C sans le risque d’un comportement indéfini. Nous pouvons réduire de moitié la consommation d’énergie sans perdre les avantages de la sécurité de la mémoire », explique-t-il. Il cite en exemple les performances d’une application de l’entreprise de cybersécurité Tenable qui était auparavant écrite en JavaScript, mais qui est maintenant écrite en Rust. L’application Rust surpasse JavaScript en termes de performances CPU, réduisant la latence de moitié, l’utilisation du CPU de 75 % et l’utilisation de la mémoire de 95 %.

Un langage aride et difficile à appréhender

L’application de messagerie populaire Discord est également passée à Rust, après avoir été initialement construite sur Python, Go de Google et Elixir. « Etant donné que Go est un langage “ramasse-miettes” (garbage collector en anglais, ou GC), lorsque des objets sont créés et libérés, le GC doit, de temps à autre, arrêter l’exécution du programme et effectuer un passage de ramassage des miettes », explique-t-on du côté d’AWS. La réécriture de ce service en Rust aurait permis de le rendre 10 fois plus rapide et de réduire considérablement les latences, ce qui se traduit par une diminution du nombre de serveurs et, par conséquent, de l’énergie.

« Rust n’est pas le premier langage efficace. Le C existe depuis longtemps, mais Rust est le premier langage de programmation grand public qui est efficace sans sacrifier la sécurité. 70 % de toutes les vulnérabilités de sécurité de haute gravité écrites avec C et C++ sont dues à la non-sécurité de la mémoire, et Rust vous donne l’efficacité sans avoir l’impression de jouer avec le feu », explique Shane Miller.

Reste que Rust n’est pas sans inconvénient, notamment sa difficulté d’apprentissage. Il faut ainsi trois à six mois d’études à des ingénieurs expérimentés, soutenus par l’accès à des experts en la matière, pour devenir productifs avec Rust, relèvent Shane Miller et Carl Lerche. « Certains ingénieurs ont comparé l’apprentissage de Rust au fait d’apprendre à manger ses légumes, et si beaucoup d’entre eux l’adorent une fois qu’ils sont productifs, beaucoup d’ingénieurs décident de ne pas l’apprendre ou abandonnent l’effort avant de devenir productifs. L’impact potentiel de Rust sur la durabilité et la sécurité ne se concrétisera que si nous transformons le brocoli en brownie. » Tout un programme.

Source : ZDNet.com

Leave a Reply

Your email address will not be published. Required fields are marked *