Java ou Swift ? Apple migre un service web lié à la sécurité
mer, 04/06/2025 - 17:16
Apple propose un service dédié à la vérification des mots de passe : Password Monitoring. Ce service était historiquement écrit en Java. Plusieurs milliards de requêtes de vérifications sont réalisés chaque jour. Les équipes ont totalement réécrit ce service en Swift. Résultat : des performances en hausse, une meilleure montée en charge et une disponibilité constante.
"L'application Mots de passe, lancée à l'automne 2024, aide les utilisateurs à gérer leurs mots de passe, clés d'accès et codes de vérification. Elle permet de stocker, de saisir automatiquement et de générer des mots de passe forts, partageables sur tous leurs appareils, ainsi qu'avec des contacts de confiance. L'application inclut également une fonctionnalité de sécurité, la Surveillance des mots de passe, qui avertit les utilisateurs si l'un de leurs mots de passe enregistrés est victime d'une fuite de données. Cette fonctionnalité s'appuie sur un composant serveur fonctionnant sur une infrastructure Linux, gérée par Apple." explique le post officiel. Régulièrement le service vérifie l'intégration du mot de passe et qu'il ne soit pas compromis.
Le choix de réécrire en Swift a été dicté par les performances et la montée en charge. La gestion mémoire montrait des limites en Java. Les développeurs ont d'abord cherché à optimiser le code Java et se sont concentrés sur la JVM et le ramesse-miette. L'utilisation de G1 a permis d'améliorer certains points techniques mais la montée en charge ne répondait pas à toutes les attentes. Un des problèmes techniques était de provisionner et déprovisionner rapidement les instances suite aux surcharges de la JVM. Le service étant mondial, la charge varie énormement selon les heures et les pays. Le temps de démarrage du service et sa disponibilité sont essentiels.
Finalement, Swift s'est imposé. Pour pouvoir réaliser le projet, Apple a utilisé le framework web Vapor qui s'occupe notamment du routage. La sécurité est un autre aspect important que Swift apporte ainsi que le support asynchrone natif au langage.
Résultat : Swift permet de réduire de 50 % la charge serveur, de 90 % l'usage de la mémoire et des performances en nette hausse.
"Notre implémentation Swift s'est déroulée sans problème et efficacement en production, ce qui justifie pleinement les efforts investis dans cette migration. Outre des performances supérieures à celles de notre précédente application Java, Swift a offert une meilleure cohérence des performances, des fonctionnalités de sécurité renforcées et une fiabilité robuste, tout en consommant moins de ressources grâce à une utilisation optimisée de la mémoire et du processeur. Grâce à la réduction du nombre de lignes de code standard et à la flexibilité des modèles de conception utilisés, nous prévoyons une maintenance simplifiée de notre application. Swift s'est avéré un choix judicieux pour créer des applications rapides, résilientes et maintenables dans notre environnement exigeant." conclut Ricky Mondello.
Source: https://www.swift.org/blog/swift-at-apple-migrating-the-password-monitoring-service-from-java/