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

Développement Web avec .NET Discussion :

Bing.com tourne désormais sur .NET Core 2.1, un choix technique qui lui a permis de gagner en performance


Sujet :

Développement Web avec .NET

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    9 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 9 057
    Points : 209 177
    Points
    209 177
    Par défaut Bing.com tourne désormais sur .NET Core 2.1, un choix technique qui lui a permis de gagner en performance
    Bing.com tourne désormais sur .NET Core 2.1, un choix technique qui lui a permis de gagner en performance,
    mais aussi en agilité

    Mukul Sabharwal, membre de l’équipe d’ingénieurs responsables du développement de Bing.com, a expliqué que la pile frontale de Bing est principalement écrite en code géré en couches dans un modèle MVC. La plupart du code de logique métier est écrit en tant que modèles de données en C # et la logique de vue est écrite en Razor. Cette couche est chargée de transformer les données de résultat de la recherche (codées en Microsoft Bond) en HTML, qui sont ensuite compressées et envoyées au navigateur.

    « En tant que gardiens de cette plateforme frontale chez Bing, nous considérons la productivité des développeurs et l'agilité des fonctionnalités comme des composants clés supplémentaires dans notre définition du succès. Des centaines de développeurs s'appuient sur cette plateforme pour mettre leurs fonctionnalités en production et s'attendent à ce qu'elle fonctionne comme sur des roulettes », a précisé Mukul.

    Depuis ses débuts, Bing.com fonctionne sur .NET Framework, mais il est récemment passé à une exécution sur .NET Core. Les principales raisons de l'adoption de .NET Core par Bing.com sont les performances (notamment des latences de diffusion), la prise en charge de l'installation côte à côte et de l'application locale indépendamment de l'installation à l'échelle de la machine (ou de son absence) et des images ReadyToRun.

    « En prévision de ces améliorations, nous avons tenté de rendre le code portable sur les implémentations .NET, plutôt que de nous fier uniquement aux bibliothèques disponibles sous Windows et uniquement avec .NET Framework. L'équipe a commencé à aller dans cette direction avec .NET Standard 1.x, mais la surface de l'API réduite a entraîné des complications non négligeables pour nos migrations de code. Avec les plus de 20 000 API qui sont revenues avec .NET Standard 2.0, tout a changé et nous avons pu passer rapidement des modifications de code aux tests. Après avoir corrigé quelques bogues, nous étions prêts à déployer .NET Core en production ».

    Images ReadyToRun

    Les applications gérées peuvent souvent présenter des performances de démarrage médiocres, car les méthodes doivent d'abord être compilées en JIT avec le code machine. .NET Framework dispose d’une technologie de précompilation, NGEN. Cependant, NGEN exige que l'étape de précompilation ait lieu sur la machine sur laquelle le code sera exécuté. Pour Bing, cela signifierait exécuter NGEN sur des milliers de machines. Ceci, associé à un cycle de déploiement agressif, entraînerait une réduction significative de la capacité de service au fur et à mesure que l'application est précompilée sur les machines de serveur Web. De plus, l’exécution de NGEN requiert des privilèges d’administrateur, qui sont souvent indisponibles ou fortement contrôlés dans un paramètre de centre de données. Sur .NET Core, l'outil crossgen permet de précompiler le code en une étape de pré-déploiement, comme dans l'atelier de génération, et les images déployées en production sont prêtes à fonctionner !

    Performance

    Mukul assure que .NET Core 2.1 a permis d’améliorer considérablement les performances dans pratiquement tous les domaines de l’exécution et des bibliothèques.

    « Nos données de production correspondent aux améliorations de performances significatives de .NET Core 2.1 (par rapport à .NET Core 2.0 et .NET Framework 4.7.2). Le graphique ci-dessous suit la latence de notre serveur interne au cours des derniers mois. L'axe des Y est la latence (valeurs réelles omises) et la chute précipitée finale (le 2 juin) correspond au déploiement de .NET Core 2.1 ! Cela représente une amélioration de 34%, grâce au travail de la communauté .NET », s’est réjouit Mukul.

    Nom : bingnetcoreimprovement2.png
Affichages : 3188
Taille : 69,9 Ko

    Agilité du Runtime

    Enfin, Mukul a fait valoir que la possibilité d’avoir une version xcopy du moteur d’exécution dans l’application signifie que Microsoft peut adopter des versions plus récentes du moteur d’exécution à un rythme beaucoup plus rapide.

    « En fait, si vous jetez un coup d’œil au graphique ci-dessus, nous avons pris la mise à jour .NET Core 2.1 dans le monde entier lors d’un déploiement d’applications le 2 juin, soit deux jours après sa sortie ! Cela a été possible parce que nous utilisions notre pipeline d'intégration continue (CI) avec la mise à niveau quotidienne des fonctionnalités et des performances des tests de CI .NET Core tout au long de la version ».

    Source : Microsoft

    Voir aussi :

    Vos applications Windows Forms et WPF sont-elles prêtes pour .NET Core 3.0 ? Microsoft veut s'en assurer et sollicite les développeurs
    La préversion de Compilation hiérarchisée est disponible dans .NET Core 2.1, pour tirer le meilleur parti du démarrage et de l'exécution d'une app
    Microsoft annonce la disponibilité de Blazor 0.5.1, son framework web .NET expérimental qui s'exécute au sein du navigateur
    Microsoft annonce la sortie d'une préversion du Framework .Net 4.8, la build 3621 Early Access s'accompagne d'améliorations pour WinForms, WPF et plus
    Microsoft annonce la sortie de .NET Core 2.1, avec de nombreux ajouts et améliorations qui viennent enrichir cet environnement

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2011
    Messages : 66
    Points : 76
    Points
    76
    Par défaut
    Impressionnant !!!

    Dommage que personne ne l'utilise....

  3. #3
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 852
    Points : 19 326
    Points
    19 326
    Par défaut
    Pour être précis Bing c'est 3 % de part de marché mondial sur les moteurs de recherches sur juillet 2018.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 104
    Points : 80
    Points
    80
    Par défaut
    « Nos données de production correspondent aux améliorations de performances significatives de .NET Core 2.1 (par rapport à .NET Core 2.0 et .NET Framework 4.7.2). Le graphique ci-dessous suit la latence de notre serveur interne au cours des derniers mois. L'axe des Y est la latence (valeurs réelles omises) et la chute précipitée finale (le 2 juin) correspond au déploiement de .NET Core 2.1 ! Cela représente une amélioration de 34%, grâce au travail de la communauté .NET »
    ce genre de graphique est impressionnant mais si on "oublie" les valeurs on oublie une part de réalité.
    Un vendeur qui passe de 1 vente à 7 ventes d'un objet peu cher a bien une augmentation de ces ventes de 700% mais si au final il ne gagne que 1€ en plus par vente c'est tout de suite moins impressionnant.

  5. #5
    Membre actif
    Homme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Octobre 2013
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant communication & réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 86
    Points : 206
    Points
    206
    Par défaut
    En tous cas cela s'est vu quotidiennement lors de la migration, les temps de réponse aux recherches étaient désastreux ! Depuis cela un peu mieux.
    N'empêche que c'est aussi lié à sa qualité de connexion, ping, latence ...

Discussions similaires

  1. WebAPI et ses utilisations - Partie 1 : préambule sur .NET Core
    Par Diablogore dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 05/04/2018, 07h40

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