IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Swift Discussion :

Apple migre son service de surveillance des mots de passe de Java vers Swift pour optimiser les performances


Sujet :

Swift

  1. #1
    Chroniqueur Actualit�s

    Homme Profil pro
    R�dacteur technique
    Inscrit en
    Juin 2023
    Messages
    1 570
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : B�nin

    Informations professionnelles :
    Activit� : R�dacteur technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2023
    Messages : 1 570
    Par d�faut Apple migre son service de surveillance des mots de passe de Java vers Swift pour optimiser les performances
    Apple migre son service de surveillance des mots de passe de Java vers Swift et obtient une augmentation de 40 % des performances
    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.

    Nom : resource utilization.png
Affichages : 51471
Taille : 21,2 Ko

    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.

    Nom : password monitoring service.png
Affichages : 10589
Taille : 48,8 Ko

    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.

    Citation Envoy� par L'�quipe d'Apple

    Avant de chercher un langage de remplacement, nous avons cherch� des moyens d'ajuster la JVM pour obtenir les performances requises. Le ramasse-miettes G1 de Java a att�nu� certaines limites des ramasse-miettes pr�c�dents en introduisant des fonctionnalit�s telles que des temps de pause pr�visibles, une collecte bas�e sur les r�gions et un traitement simultan�.

    Cependant, m�me avec ces avanc�es, la gestion du ramasse-miettes � grande �chelle reste un d�fi en raison de probl�mes tels que les pauses GC prolong�es sous des charges �lev�es, l'augmentation de la charge de travail li�e aux performances et la complexit� du r�glage fin pour des charges de travail diverses.
    La gestion d�terministe de la m�moire de Swift, bas�e sur le comptage des r�f�rences plut�t que sur la collecte des d�chets, a �limin� les pics de latence caus�s par les pauses de la collecte des d�chets. Cette coh�rence s'est av�r�e essentielle pour un syst�me � faible latence � l'�chelle. Apr�s la r��criture, Apple a signal� des temps de latence inf�rieurs � la milliseconde dans le 99,9e percentile et une baisse spectaculaire de l'utilisation de la m�moire.

    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 ?

    Quel est votre avis sur le sujet ?
    Que pensez-vous des gains de performances obtenus apr�s la migration du service de Java vers Swift ?
    L'industrie adopte de plus en plus des langages orient�s vers la performance et la s�curit� de la m�moire comme Rust et Swift. Qu'en pensez-vous ?

    Voir aussi

    Oracle annonce la disponibilit� de Java 24, apportant des am�liorations en mati�re de performance, de stabilit� et de s�curit� � la plateforme pour permettre aux entreprises d'acc�l�rer leur croissance

    Le navigateur Ladybird commencera � utiliser le langage Swift au lieu de C++ cet automne, car Swift offre une s�curit� de la m�moire et est �galement un langage moderne avec une ergonomie solide

    Au-del� de Docker : Apple d�voile discr�tement "Container", un framework Swift open source pour faciliter l'ex�cution de containers Linux sur macOS et am�liorer la performance et la s�curit�

  2. #2
    R�dacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    2 111
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 2 111
    Par d�faut
    Le code java fait par apple devait �tre particuli�rement horrible pour avoir un tel ecart de performance.

    A mais oui, swift c'est le nouveau language d'apple, quel coincidance.

    Ca manque cruellement d'objectivit�, qu'est ce que ca vient faire ici ?

  3. #3
    Membre �prouv�
    Avatar de calvaire
    Homme Profil pro
    .
    Inscrit en
    Octobre 2019
    Messages
    2 146
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : Singapour

    Informations professionnelles :
    Activit� : .
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2019
    Messages : 2 146
    Par d�faut
    Citation Envoy� par eclesia Voir le message
    Le code java fait par apple devait �tre particuli�rement horrible pour avoir un tel ecart de performance.

    A mais oui, swift c'est le nouveau language d'apple, quel coincidance.

    Ca manque cruellement d'objectivit�, qu'est ce que ca vient faire ici ?
    je pense pas qu'apple ment sur le gain mais qu'ils comparent du vieux java avec du swift moderne.
    java a fait de gros progr�s niveau perf assez r�cemment, il y'a quelques ann�es c'�tait inutilisable en microservice mais aujourd'hui je le re-utilise avec la derni�re version et Spring AOT + GraalVM Native.

    c'est comme migrer de php5 a du nodejs ou java avec +40% de perf, c'est assez facile quand on sait que php7 a consid�rablement am�liorer les perfs.

    Faire du code performant en java n�cessite une bonne maitrise, c'est pas un langage "plug and play", je n'ai jamais cod� en swift mais c'est peut etre plus performant de base sans utiliser de lib externe.

  4. #4
    Membre actif Avatar de ValCapri
    Homme Profil pro
    En formation chez Technifutur pour me sp�cialis� dans le dev mobile
    Inscrit en
    Mars 2010
    Messages
    55
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activit� : En formation chez Technifutur pour me sp�cialis� dans le dev mobile

    Informations forums :
    Inscription : Mars 2010
    Messages : 55
    Par d�faut
    Citation Envoy� par calvaire Voir le message
    je pense pas qu'apple ment sur le gain mais qu'ils comparent du vieux java avec du swift moderne.
    java a fait de gros progr�s niveau perf assez r�cemment, il y'a quelques ann�es c'�tait inutilisable en microservice mais aujourd'hui je le re-utilise avec la derni�re version et Spring AOT + GraalVM Native.

    c'est comme migrer de php5 a du nodejs ou java avec +40% de perf, c'est assez facile quand on sait que php7 a consid�rablement am�liorer les perfs.

    Faire du code performant en java n�cessite une bonne maitrise, c'est pas un langage "plug and play", je n'ai jamais cod� en swift mais c'est peut etre plus performant de base sans utiliser de lib externe.
    Pour avoir coder dans plusieurs langages dont Java, Swift, Kotlin et Python.

    Java s'est en effet beaucoup am�lior� en termes de performances et de gestion de la m�moire notamment avec le ZGC et l'AOT. Je n'ai pas utilis� GraalVM Native car toutes les biblioth�ques que l'on utilisaient n'�tait pas compatible mais clairement on a remarqu� du mieux en passant successivement de Java 8 � Java 11, puis Java 17 et enfin Java 21. Kotlin est aussi tr�s performant notamment avec ces coroutine mais il faut faire attention dans certaines circonstances.

    Swift est pour moi le langage le plus rapide dans cette liste mais il faut faire attention aux fuites m�moire et � bien l'utiliser (les structs vs class). Et tout ce qui est ORL n'est pas au niveau de Java notamment. Et la serialization/deserialization qu'ils vont mieux parfois �crire � la main.

    Et ne parlons pas de Python, qui est tr�s lent mais si heureusement,il progresse de plus en plus. Et FastAPI et autres outils de machines learning aident beaucoup le langage.

    Mais bon, Java et Kotlin disposent de beaucoup plus d'outils et d'un �cosyst�me plus large que Swift.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 14/07/2019, 12h04
  2. R�ponses: 11
    Dernier message: 17/05/2018, 12h48
  3. R�ponses: 0
    Dernier message: 03/06/2017, 15h55
  4. enregistrer et masquer des mots de passe
    Par champion dans le forum PostgreSQL
    R�ponses: 2
    Dernier message: 30/08/2004, 20h10
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    R�ponses: 6
    Dernier message: 17/09/2002, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo