DEV Community

Cover image for Le monde passionnant de Rust + les processeurs ARM

Le monde passionnant de Rust + les processeurs ARM

AWS a annoncé qu'elle proposera des instances Graviton 3 ARM encore plus rapides et plus performantes, ce qui signifie qu'il est temps pour les entreprises de commencer à planifier leur stratégie de migration. L'exécution de vos applications sur des systèmes ARM améliore l'efficacité en offrant de meilleures performances à un prix inférieur. Nous avons poussé plus loin l'optimisation de l'efficacité de nos systèmes en migrant nos applications vers Rust. Rust est un langage de programmation de plus en plus populaire en raison de son efficacité et de sa sécurité. D'un point de vue commercial, cela se traduit par des coûts d'exploitation et de maintenance réduits.

La capture d'écran montre l'utilisation du processeur pour une application Rust migrant de X86-64 à ARM64. Vous pouvez voir sur le graphique le moment où les conteneurs ont commencé à signaler l'utilisation du CPU sur les nouveaux processeurs ARM. Il s'agit d'un changement notable. La charge de travail est une application Web API Rust à haute fréquence qui dessert des millions d'utilisateurs.

Graph showing CPU usage by container decreasing over time

Qu'est-ce qu'un processeur ARM ?

Nous pensons généralement à des processeurs tels que ceux d'AMD ou d'Intel. Un processeur ARM est un processeur à usage général utilisé dans de nombreux appareils différents, tels que les smartphones, les tablettes, les Raspberry Pi, les microcontrôleurs, les cartes de développement et même certains ordinateurs portables. Les processeurs ARM sont connus pour leur efficacité énergétique et leur faible consommation d'énergie, ce qui en fait une option intéressante pour les entreprises qui construisent des systèmes embarqués et qui souhaitent réduire leurs coûts énergétiques. AWS propose un taux horaire plus bas en tant qu'offre de suivi des coûts pour vous inciter à utiliser ces nouveaux processeurs efficaces, contribuant à l'IoT et à l'écosystème de haute performance.

Chart showing ARM CPU usage at 0.00223 compared with X86-64 at 0.00706

En comparant l'efficacité de l'ARM64 à celle de l'X86-64, vous pouvez constater une différence notable. Si cela ne suffit pas, nous pouvons aller encore plus loin. En ajoutant des optimiseurs de CPU cibles, nous pouvons intégrer des instructions supplémentaires dans le binaire afin de tirer parti des instructions des CPU de l'architecture ARM la plus récente, améliorant ainsi la chaîne d'outils et la compatibilité. Nous garderons cela pour un article ultérieur. En attendant, les résultats que nous montrons ici sont représentatifs des cibles ARM64 générales.

Parlons maintenant de Rust.

Rust est un langage de programmation open source avec une communauté GitHub vivante et engagée pour garder Rust efficace et sûr. Cela signifie que le code Rust s'exécute rapidement et ne présente pas autant de bogues ou de failles de sécurité que d'autres langages. Les programmeurs apprécient particulièrement Rust car il est bien adapté à la programmation de systèmes, ce qui signifie qu'il est parfait pour construire des choses telles que des systèmes d'exploitation, des pilotes de périphériques et d'autres logiciels de bas niveau. Grâce à son vérificateur de stabilité et de sécurité de la mémoire, Rust est également intéressant pour le développement d'applications à grande échelle. Le coût de possession est réduit grâce à la diminution des bogues, même si l'on peut dire que Rust est assez difficile à déboguer. Microsoft a analysé les types de bogues les plus courants. Selon eux, plus de 70 % des bogues sont directement liés à des défaillances dans la gestion de la mémoire. Rust offre des mécanismes de sécurité de la mémoire qui détectent ces bogues au moment de la compilation.

Pourquoi Rust est-il un bon choix pour migrer vers les processeurs ARM ? Rust peut être compilé pour fonctionner sur presque toutes les plateformes cibles, y compris ARM. Les systèmes basés sur ARM sont différents des systèmes traditionnels basés sur x86, ce qui signifie qu'un logiciel qui fonctionne bien sur un système x86 peut ne pas fonctionner aussi bien sur un système ARM. L'efficacité de Rust et sa capacité à fonctionner sur des processeurs ARM en font un excellent choix pour les entreprises qui cherchent à migrer leurs charges de travail vers des systèmes basés sur ARM. Nous avons assisté à de nombreuses migrations réussies vers Rust. En exécutant l'application Rust sur ARM, nous constatons une amélioration de 40 % des performances du processeur.

CI/CD et double architecture

Pour garantir un processus de migration en douceur, il est important de suivre les meilleures pratiques de déploiement. Nous avons décidé d'inclure un pipeline à double architecture dans notre système CI/CD. Cela nous permet de spécifier à la fois Linux AMD64 et Linux ARM64 dans les plateformes Docker. C'est une bonne chose puisque notre couche d'orchestration est Kubernetes.

Code showing value = arm in a kubernetes cluster

Nous utilisons la configuration YAML pour les sélecteurs de nœuds afin de spécifier les nœuds ARM pour le déploiement et d'inclure les tolérances YAML dans le manifeste de déploiement. Ce n'est pas automatique. Notre équipe SRE a développé avec succès un pipeline CI/CD à double architecture qui fournit des images X86-64 et ARM64 en tandem. En outre, nous pouvons cibler des groupes de nœuds lors du déploiement de nos applications à l'aide d'une annotation YAML que l'équipe a mise en œuvre. L'équipe SRE a fait en sorte que le déploiement vers les groupes de nœuds ARM soit transparent pour nos équipes de développement de produits. Cela nous permettra de migrer nos charges de travail vers les groupes de nœuds ARM grâce à des configurations simples. Nous sommes impatients d'en profiter, marquant une avancée significative en matière de temps d'exécution et d'automatisation dans nos processus de développement.

Rust + ARM est la paire de technologies la plus performante de l'industrie

Rust a été développé à l'origine par Mozilla pour améliorer la navigation sur le web. Les processeurs ARM sont plus communément utilisés dans les écosystèmes d'appareils grand public, y compris les smartwatches et même certaines voitures, ce qui les rend populaires auprès des équipes qui font du développement embarqué. Nous pouvons combiner et exploiter plusieurs technologies pour obtenir des avantages notables. Il est étonnant de constater à quel point la technologie progresse et modifie le monde qui nous entoure.

Aujourd'hui, pour une efficacité et une fiabilité maximales lors du déploiement d'applications à grande échelle, la combinaison Rust + ARM est imbattable dans de nombreux cas d'utilisation en temps réel. La migration vers les processeurs ARM permet de réaliser des économies significatives et d'améliorer les performances. En s'appuyant sur Rust et en suivant les meilleures pratiques de déploiement, les entreprises peuvent assurer une transition en douceur vers cette nouvelle technologie. Alors, êtes-vous prêt à franchir le pas et à commencer à explorer le monde passionnant de Rust et des processeurs ARM ?

Comment PubNub peut-il vous aider ?

Cet article a été publié à l'origine sur PubNub.com

Notre plateforme aide les développeurs à construire, livrer et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub

Découvrez le Live Tour pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer

Créez un compte PubNub pour un accès immédiat et gratuit aux clés PubNub.

Commencer

La documentation PubNub vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre SDK.

Top comments (0)