Rencontrez nos experts
English Content

Articles récent

ICT Experts LuxembourgICT & Cloud Booster ses applications métiers avec Rust
Booster ses applications métiers avec Rust

Booster ses applications métiers avec Rust

Figma est une solution SaaS dédiée au design d’interfaces en mode collaboratif. Les projets partagés sont éditables en temps réel, c’est pourquoi les performances serveur sont cruciales pour l’expérience utilisateur. Or, avec la croissance du nombre d’utilisateurs du service, des pics de latence sont rapidement apparus. En cause : le choix d’architecture initial.

Les applicatifs métiers étaient écrits en JavaScript via NodeJs. Un choix qui n’a malheureusement pas permis de garantir la performance dans le temps comme l’explique Evan Wallace, le Chief Technical Officer de Figma sur le blog de l’entreprise. La solution retenue a été de réécrire complètement le cœur du service dans un langage bas niveau, et plus particulièrement -Rust- le langage de l’éditeur de logiciel Mozilla. Le changement a entraîné une amélioration radicale des performances, comme l’indiquent les données ci-dessous fournies par l’entreprise.

Résumé des gains de performance de Figma en passant d’un cœur NodeJs à Rust.

Au-delà de la performance, la réécriture des applicatifs au cœur d’une plateforme peut induire de nombreux autres bénéfices. Voici ceux que l’on peut attribuer au langage Rust :

Sécurité et fiabilité

Introduire un bug qui entraîne un comportement non souhaité est plus complexe sur Rust que dans d’autres langages. Il est naturellement moins sensible au « race condition » qui peut survenir dans des environnements serveurs, entraînant des blocages métiers difficiles à détecter.
Les accès mémoires sont eux aussi sécurisés puisqu’il est impossible d’accéder à une ressource qui n’existe pas ou plus. A contrario, la fameuse erreur « null pointer exception » de Java peut mettre rapidement à mal la fiabilité de vos applications les plus cruciales.

Simplification du déploiement

Les langages compilés comme Rust génèrent des programmes sous la forme d’exécutables qui contiennent déjà toutes les dépendances nécessaires. Ainsi, les installations des serveurs sont simplifiées et la gestion des dépendances aussi.
De plus, toutes les ressources disponibles sont dédiées à votre application et pas à un moteur d’exécution comme dans les langages interprétés (NodeJS, Python) ou qui possèdent une machine virtuelle (Java ou Scala). L’efficience de vos applications s’en trouve améliorée. Un aspect doublement intéressant qui s’inscrit dans le courant du « Green IT ».

Langage de l’innovation

Vous vous demandez peut-être : « Si le code de notre service est basé sur des librairies existantes, pourquoi nos concurrents ne pourraient-ils pas utiliser ces librairies ? Cela ne pourrait-il pas nuire à notre avantage concurrentiel ? »
Si vos applications sont innovantes, il est normal d’avoir des besoins qui ne soient pas résolus par les librairies disponibles. Alors, pourquoi ne pas profiter d’un langage conçu pour cela ?

Etude de cas Clever Cloud, fournisseur français de « Platform as a Service »

La plateforme d’IT automation a choisi de réécrire une brique cruciale de son infrastructure en Rust. Objectif : créer un reverse proxy HTTP dont la configuration peut changer en cours d’exécution, sans redémarrage.

Geoffroy Couprie « security engineer » nous explique :

Clever Cloud fait de l’infrastructure immutable. C’est-à-dire que publier une nouvelle version d’une application n’implique pas de modifier les machines virtuelles existantes. On en crée de nouvelles, puis lorsqu’elles tournent, on supprime les anciennes.
Donc nos règles de routage changent très régulièrement, les nouvelles machines virtuelles ont des IP et ports différents des anciennes. Nous utilisions le reverse proxy HAProxy, logiciel pour lequel un changement de configuration nécessite un redémarrage.
Le langage Rust nous a permis d’écrire rapidement un reverse proxy HTTP entier suffisamment stable pour la production. Ça a facilité l’accueil de nouveaux développeurs car on peut opérer des changements simplement sans introduire de nombreux bugs.

Les étapes du changement sont aussi décrites dans ce billet de blog.

Si votre cœur applicatif repose sur des solutions innovantes, réécrire vos applications en Rust peut être un choix pertinent pour répondre à vos besoins métiers spécifiques.

L’intelligence artificielle, et toutes les possibilités qui en découlent, offrent de nouvelles perspectives aux organisations. Avec l’intégration des objets connectés et la mise en œuvre d’approches multicanales, les entreprises produisent de plus en plus de données. Le défi est désormais d’en extraire toute la valeur.

En tant que data scientist, mon rôle est d’accompagner nos clients dans cette voie, en explorant les nouveaux modèles émergents liés à l’exploitation de la donnée. C’est un monde à défricher, un domaine de compétences pour lequel il n’y a pas encore d’école. C’est donc sur le terrain que j’ai essentiellement acquis de l’expertise, au départ d’une formation d’ingénieur logiciel, en multipliant les missions autour de la valorisation de la donnée.

J’aime contribuer à des projets à la pointe de l’innovation, en partant des découvertes faites dans le monde académique, pour voir quelles sont les applications business qui peuvent en découler. On peut citer l’élaboration de modèles prédictifs qui permettent d’anticiper des événements, de prendre des décisions plus éclairées, de mieux lutter contre la fraude. Ou encore l’intégration de robots capables d’interagir avec le client, lui offrant une expérience améliorée dans sa relation avec l’entreprise.

Le machine learning, ou deep learning, modifie considérablement les relations qu’entretiennent l’homme et la machine, au profit d’organisations plus performantes. L’enjeu actuel est de découvrir et de mettre en œuvre les nouveaux usages et services que ces technologies permettent.

Commentaires:

  • Ourdane Mohamed

    Nous développons actuellement un outil d’analyse des flux de signalisation du réseau coeur Telecom. Nous avons opté pour le langage RUST pour son côté optimisé et sécurisé.

    Répondre 1 août 2018 at 9 h 22 min

Laisser une réponse