
avec une r�duction de 85 % du nombre de lignes de code
Apple a annonc� avoir migr� avec son service de surveillance des mots de passe de Java � Swift. L'�quipe responsable a ajout� que cette migration a permis une augmentation de d�bit de 40 % et une r�duction de 50 % de l'utilisation de la capacit� de Kubernetes. La r��criture a permis de r�soudre les probl�mes de latence du ramasse-miettes de Java et de consommation �lev�e de la m�moire, Swift offrant des temps de r�ponse inf�rieurs � la milliseconde et des capacit�s de d�marrage � froid plus rapides. Elle aurait �galement permis de r�duire de 85 % le nombre de lignes de code tout en g�rant des milliards de requ�tes quotidiennes pour la d�tection des br�ches.
Le service de surveillance des mots de passe d'Apple est int�gr� dans l'�cosyst�me plus large de l'application � Mot de passe �. Il v�rifie en toute s�curit� si les informations d'identification sauvegard�es d'un utilisateur sont apparues dans des violations de donn�es connues, sans r�v�ler des informations priv�es � Apple. Il traite des milliards de demandes par jour, en effectuant des comparaisons cryptographiques � l'aide de protocoles pr�servant la vie priv�e.
Les probl�mes techniques li�s � l'ancienne version du service
Initialement �crit en Java, le service pr�sentait des limites de performance et de gestion de la m�moire. Selon l'�quipe d'Apple, en d�pit des optimisations avanc�es de la machine virtuelle Java (JVM), l'outil ne r�pondait pas de mani�re optimale aux exigences croissantes de mise � l'�chelle et de rapidit�. Selon l'�quipe d'Apple, la collecte de d�chets provoquait des temps de pause impr�visibles en cas de charge, ce qui d�gradait la coh�rence de la latence.
Les frais g�n�raux de d�marrage (initialisation de la JVM, chargement des classes et compilation juste � temps (JIT)) ralentissaient la capacit� du syst�me � �voluer en temps r�el. En outre, l'empreinte m�moire du service, qui atteint souvent des dizaines de gigaoctets par instance, r�duit l'efficacit� de l'infrastructure et augmente les co�ts d'exploitation. Selon l'�quipe d'Apple, la r��criture du service avait pour but de parvenir aux r�sultats suivants :
- optimiser les performances et l'�volutivit� du service ;
- r�duire le d�lai de d�marrage des instances ;
- contourner les limites pos�es par la gestion de la m�moire en Java (notamment le ramasse-miettes) ;
- profiter de la syntaxe expressive et de la s�curit� offerte par le langage Swift.
� Pendant des ann�es, nous avons utilis� Java pour alimenter des services critiques � grande �chelle en raison de sa stabilit� et de ses performances �prouv�es. Mais l'approche de gestion de la m�moire de Java ne correspond plus � nos exigences croissantes et � nos objectifs d'efficacit� �, a �crit l'�quipe.
Les raisons qui ont motiv� le choix de Swift pour la r��criture
D�velopp� � l'origine comme un langage c�t� client pour les plateformes Apple, Swift s'est depuis �tendu � des cas d'utilisation c�t� serveur. L'�quipe d'ing�nieurs d'Apple a choisi Swift non seulement pour son alignement sur l'�cosyst�me, mais aussi pour sa capacit� � offrir des performances constantes dans les environnements � forte intensit� de calcul. La r��criture s'est �galement appuy�e sur Vapor, un framework Web Swift tr�s r�pandu.
D'autres paquets personnalis�s ont �t� mis en �uvre pour g�rer les op�rations sur la courbe elliptique, l'audit cryptographique et les intergiciels sp�cifiques au domaine de la surveillance des mots de passe. � Au lieu de simplement augmenter les ressources mat�rielles, nous recherchions un langage plus efficace pour soutenir notre croissance tout en r�duisant la charge des serveurs �, a expliqu� l'�quipe d'Apple dans un r�cent billet de blogue.

Gains techniques et op�rationnels obtenus apr�s la r��criture
Selon l'�quipe, la migration vers Swift s�est r�v�l�e tr�s b�n�fique. Les instances Swift consommaient des centaines de m�gaoctets, contre des dizaines de gigaoctets avec Java. Les temps de d�marrage se sont �galement am�lior�s. Sans surcharge d'initialisation de la JVM ni �chauffement JIT, les services Swift peuvent d�marrer � froid plus rapidement, ce qui r�pond aux exigences d'Apple en mati�re de mise � l��chelle automatique globale.
Concr�tement, le d�bit du service a augment� de 40 %, la consommation m�moire a diminu� de pr�s de moiti�, et la capacit� de traitement par instance a �t� nettement am�lior�e. En parall�le, le code source est devenu beaucoup plus concis, avec environ 85 % de lignes de code en moins compar� � l'impl�mentation Java, ce qui facilite la maintenance et la lecture. Ce qui fait �cho aux critiques de longue date selon lesquelles Java est un langage verbeux.
Cette migration marque un tournant. Swift d�montre qu'il est capable de soutenir des services cloud � tr�s grande �chelle, bien au-del� de son usage traditionnel c�t� client. Cela illustre aussi la volont� d'Apple de rationaliser ses technologies internes autour de langages plus modernes et mieux adapt�s � ses besoins sp�cifiques. Selon l'�quipe, la s�curit� est un autre domaine dans lequel Swift adopte une approche distinctive par rapport � Java.
� Lorsque vous r��crivez un produit dans une nouvelle pile, vous le cr�ez pratiquement � partir de z�ro. Vous faites les choses correctement et vous n'apportez pas tout le patchwork et la dette technique. C'est ce qui a provoqu� cette acc�l�ration. Ce n'est pas le changement de langue �, a �crit un critique.
Conclusion
La migration d'Apple refl�te une tendance plus large : le passage � des langages orient�s vers la performance pour des services fonctionnant � une tr�s grande �chelle. Meta utilise Rust depuis longtemps, depuis des syst�mes de gestion de code source ultraperformants jusqu'aux langages de programmation pour la blockchain. Netflix a introduit Rend, un proxy haute performance �crit en Go, pour prendre le relais d'un client bas� sur Java interagissant avec Memcached.
AWS s'appuie de plus en plus sur Rust dans les services o� les performances d�terministes et la faible utilisation des ressources am�liorent l'efficacit� de l'infrastructure. Bien que cela ne signifie pas que Java et les langages similaires sont en d�clin, il est de plus en plus �vident qu'� l'extr�mit� sup�rieure des exigences de performance, les entreprises et les ing�nieurs logiciels constatent que les runtimes � usage g�n�ral ne suffisent plus d�sormais.
L'ann�e derni�re, le navigateur Ladybird a annonc� qu'il commencera � utiliser le langage Swift au lieu de C++. Selon le d�veloppeur Andreas Kling, Swift offre une s�curit� contre la course � la m�moire et aux donn�es, et est un langage moderne avec une ergonomie solide. Il poss�de une meilleure interop�rabilit� avec le C++ pour une adoption progressive. L'�quipe a d�clar� qu'elle adoptera Swift apr�s la sortie de Swift 6 de sa phase b�ta.
Source : billet de blogue de l'�quipe d'Apple
Et vous ?



Voir aussi



Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.