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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft a reconstruit Teams de A à Z et promet des performances deux fois plus élevées
La nouvelle application Teams est deux fois plus rapide et utilise 50 % de ressources en moins

Le , par Bruno

31PARTAGES

4  0 
Microsoft a annoncé la sortie de la nouvelle version de Microsoft Teams dans un post publié le 27 mars. Elle arrive avec d'importantes améliorations des performances et des changements d'interface utilisateur. Microsoft Teams a été totalement remanié pour fonctionner plus rapidement et avoir une interface plus simplifiée. Microsoft Teams a été entièrement repensé, et un nouvel aperçu est disponible pour permettre aux entreprises d’essayer la grande refonte qui a été élaborée pendant des années. « Le nouveau Teams est plus rapide, plus simple et plus flexible que jamais », déclare Sumi Singh, CVP de l'ingénierie pour Microsoft Teams, dans une interview. « Nous avons fait d'énormes progrès en matière de performances et de convivialité. La nouvelle application Teams est deux fois plus rapide et utilise 50 % de ressources en moins.

Microsoft Teams est une application de communication collaborative propriétaire en mode SaaS officiellement lancée par Microsoft en novembre 2016. L'installation de la nouvelle application Microsoft Teams devrait être trois fois plus rapide et le lancement ou la participation à des réunions deux fois plus rapide. Microsoft indique que la nouvelle application Microsoft Teams devrait également consommer 50 % de mémoire en moins et 70 % d'espace disque en moins. Il s'agit là d'améliorations significatives des performances, en particulier si l’utilisateur constate des ralentissements dans l'application Teams actuelle.

Microsoft Teams : Avantages de la nouvelle architecture

Microsoft Teams a réalisé un investissement important dans la réarchitecture de son client de bureau, en mettant l'accent sur la simplification de l'expérience utilisateur. Ce billet donne un aperçu des objectifs et des avantages attendus de la modularisation et de la stratification qui ont été mises en œuvre. La version grand public de Microsoft Teams a déjà commencé à utiliser cette nouvelle architecture, et la version preview de la mise à jour pour les clients commerciaux sera d'abord disponible pour Windows, avec une prise en charge pour le web, Mac, EDU (éducation), et VDI (infrastructure de bureau virtuel) qui suivra plus tard dans l'année.


Le client classique de Microsoft Teams utilisait des logiciels open-source tels qu'Electron comme hôte, AngularJS comme cadre de développement web, et une variété de contrôles personnalisés construits à l'aide de HTML et CSS. Lorsque le développement de Teams a commencé en 2015, ces choix ont permis la livraison rapide de clients multiplateformes pour le web et les ordinateurs de bureau. Cependant, au fur et à mesure que les capacités et l'innovation de Teams se sont développées de manière significative au fil du temps, elles ont mis à rude épreuve les ressources des appareils.

Consciente de cette situation, l'équipe a commencé à analyser les technologies disponibles, à effectuer des analyses comparatives, à construire des prototypes et à définir la nouvelle architecture, connue en interne sous le nom d'« étoile polaire ». Parmi les décisions clés prises, citons la participation et la normalisation de la collection de contrôles UX Fluent UI, le passage d'Angular à React pour la construction des interfaces utilisateur, le déplacement du traitement des données du fil principal vers un travailleur de couche de données client et, enfin, le passage d'Electron à l'utilisation de WebView2 en tant qu'hôte.


Afin d'assurer une transition en douceur pour nos clients et de continuer à fournir une nouvelle valeur pendant le développement de la nouvelle architecture, l'approche stratégique suivante a été mise en œuvre. Nous avons d'abord intégré certains des composants construits à l'aide de React/Fluent dans le client Teams classique.

Bien que cela ait amélioré les performances des composants, cela a entraîné une lenteur générale et une utilisation accrue des ressources, car nous faisions fonctionner deux frameworks dans le client Teams classique. Le client grand public a ensuite été construit sur la base de la nouvelle architecture, parce qu'il nécessitait moins de fonctionnalités que le client commercial et ne disposait pas d'un client Teams classique à partir duquel basculer.

Cela a réduit les risques en nous permettant de valider les mesures de performance et de fiabilité de la nouvelle architecture dans le client grand public et, en parallèle, de continuer à ajouter des fonctionnalités très demandées dans le client Teams classique. La phase suivante a consisté à étendre la base de code du client grand public afin d'ajouter la prise en charge des fonctionnalités commerciales pour soutenir cette nouvelle version de Teams tout en validant les résultats de l'amélioration des performances.

Chaque couche comporte des avantages et des bénéfices pour une nouvelle expérience Teams :

Fluent UI

La collection de contrôles d'expérience utilisateur (UX) Fluent UI nous a permis de standardiser les composants communs et d'obtenir des résultats cohérents sur toutes les plateformes. L'utilisation de ces styles et contrôles réactifs et multiplateformes a permis d'améliorer la réactivité par rapport à la plupart de nos contrôles personnalisés et d'assurer une expérience cohérente et cohésive sur tous les appareils. Nous sommes en train de migrer vers Fluent v9, qui offre des avantages notables en termes de performances avec CSS-in-JavaScript.

React

La décision de passer d'AngularJS à React a été principalement basée sur les caractéristiques de performance et les résultats d'analyse comparative spécifiques à nos cas d'utilisation. Ce changement et les choix avec la réécriture ont abouti à une base de code plus petite et plus modulaire, un meilleur support pour les composants partageables et une réactivité accrue. Nous avons observé que React était mieux adapté à nos scénarios et que ce changement a été bénéfique pour les performances globales de l'application.

Couche de données du client

L'une des principales caractéristiques de JavaScript est sa nature monothématique. Pour surmonter cette limitation, nous avons mis en œuvre une solution en déplaçant la gestion des données vers un travailleur séparé, connu sous le nom de couche de données du client. Cela a permis de récupérer des données, de les stocker, d'effectuer des opérations de conformité des données, de transmettre des notifications push et d'exécuter des fonctionnalités hors ligne dans des threads parallèles, sans ajouter de contention au thread principal de l'interface utilisateur.

La couche de données du client est accessible via une couche GraphQL à partir du fil d'exécution principal, et la communication interprocessus (IPC) sert de connexion entre ces couches. En déchargeant le traitement des données du fil principal, nous avons observé une amélioration de la réactivité de l'expérience utilisateur. En outre, la séparation des tâches a permis d'obtenir un code plus propre et plus optimisé.

WebView2

Les principaux avantages observés lors de la transition d'Electron à WebView2 sont une utilisation réduite de la mémoire et une empreinte disque réduite, les ressources étant partagées avec Edge. En outre, nous avons été en mesure de tirer un meilleur parti des capacités natives fournies par WebView2 et d'assurer la prise en charge de versions plus récentes de Chromium (dernières mises à jour de performance et de sécurité).

WebView2 est disponible en tant que SDK pour la création d'applications hybrides multiplateformes, ce qui permet une utilisation plus efficace des ressources et une meilleure intégration avec la plateforme sous-jacente, avec pour résultat une application plus performante et plus fiable. Cette transition a été une étape positive pour offrir une meilleure expérience à l'utilisateur.

Au-delà de la mise à niveau de la technologie de base, Microsoft a également investi massivement dans la performance, la stabilité, la facilité d'utilisation et une plus grande flexibilité. Voici quelques exemples de ces investissements.


Pipeline de rendu vidéo amélioré

Les habitudes et les attentes des gens en matière de réunions en ligne ont considérablement changé pendant la pandémie. La demande d'utilisation accrue de la vidéo dans les réunions et l'intensité de cette utilisation ont explosé.

Alors que l'équipe de Teams s'efforcait d'augmenter rapidement son infrastructure dorsale de diffusion audio/vidéo, elle a également reconstruit l'architecture de rendu vidéo côté client dans Teams pour l'adapter à la complexité et à l'intensité de l'utilisation de la vidéo. Microsoft a développé de A à Z un plan de réunion plus efficace pour une meilleure gestion de la vidéo, une liste virtualisée pour une navigation plus fluide, et nous sommes passés à un compositeur et à un moteur de rendu natifs pour le traitement des médias.

La nouvelle architecture vidéo est beaucoup plus efficace dans le traitement vidéo, ce qui se traduit par une consommation d'énergie réduite de 50 % et permet à l'application Teams de prendre en charge des fonctions vidéo plus complexes et plus avancées (par exemple, une grille vidéo 7x7, des vues dynamiques) sur un plus large éventail de matériel.

Ces améliorations ont été introduites dans Teams classique, mais elles sont également prises en charge dans Teams nouveau et d'autres améliorations sont à venir.

Adopter l'Open Source

Microsoft se dit toujours déterminé à utiliser du code source ouvert dans son processus de développement. Par exemple, elle a mis en œuvre l'utilisation de lage, ce qui a permis d'accélérer les temps de construction. En outre, Playwright s'est avéré être un framework fiable pour les tests et l'automatisation. « Cela nous a rendu plus agiles, et nous avons constaté que souvent ces paquets open source offrent le meilleur de la race et apportent les meilleures caractéristiques de performance », a déclaré Sumi Singh de Microsoft Teams.

Dans la nouvelle application Teams, Microsoft a également ajouté un clavier plus efficace pour Activity, Chat et Teams, une aide contextuelle pour les raccourcis clavier, le support de Windows 11 High Contrast, et une performance améliorée pour les utilisateurs de lecteurs d'écran. Tirant parti de l’intégration native avec Windows 11, la nouvelle version de Teams exploite les notifications de toasts du système d'exploitation qui respectent les paramètres de Windows 11 tels que « Ne pas déranger » et le centre de notification.

Nouvelle architecture du bureau Teams

Le diagramme ci-joint présente une vue d'ensemble des principaux éléments qui composent l'architecture du client de bureau. L'hôte natif tire parti de Edge WebView2, GraphQL est utilisé pour abstraire la couche de données du client, la communication inter-processus (IPC) fait office d'agent de connexion, et ReactJS, TypeScript et Fluent UI sont les technologies normalisées utilisées pour l'expérience utilisateur. Les applications construites sur la plateforme Teams n'ont plus besoin d'un wrapper WebView. Les applications sont désormais hébergées dans une iFrame hors processus à l'aide du processus Edge Renderer.


Réunions à grande échelle

Les réunions Teams sont largement utilisées pour les communications à grande échelle au niveau de l'organisation ou de l'entreprise, au-delà de la collaboration point à point en petits groupes. Nous avons apporté des améliorations ciblées en termes de performances et d'échelle dans nos expériences de réunions à grande échelle dans Teams, où il y a généralement des milliers ou plus de participants simultanés avec une forte utilisation de la vidéo et des chats.

Les optimisations ont porté sur la mise en lot et la réduction des événements IPC, la réduction du nombre de rendus de l'interface utilisateur et l'élimination des expériences bruyantes. Grâce à ce travail d'optimisation, nous pouvons désormais offrir une latence de connexion aux réunions plus rapide et cohérente, ainsi qu'une réactivité de l'application, quelle que soit la taille de la réunion.

Multi-comptes / Multi-tenants

Microsoft a entrepris une révision complète de notre support pour les organisations multi-locataires et multi-comptes. Cela inclut des améliorations significatives des processus d'authentification, de synchronisation et de notification. Les données de stockage des utilisateurs, y compris les applications créées sur les plateformes Teams, sont isolées à travers les locataires et les comptes.

Par conséquent, les utilisateurs peuvent désormais s'attendre à une expérience de collaboration fluide et améliorée entre les locataires et les comptes, avec des notifications de chat, d'appel et de début de réunion provenant de tous les locataires ou comptes connectés, simultanément, quel que soit le locataire ou le compte dans lequel ils sont actuellement actifs. Le passage d'un locataire à l'autre se fera également de manière transparente et beaucoup plus rapidement qu'auparavant.

Rationalisation de l'installation des applications (MSIX)

Afin d'améliorer la distribution de notre client sur les appareils Windows, nous avons mis en place un support pour MSIX. Il en résulte une nette amélioration de la fiabilité des installations et des mises à jour d'applications, ainsi qu'une diminution de l'utilisation de la bande passante du réseau et de l'espace disque. L'installation dans le dossier Program Data permet une installation unique pour tous les utilisateurs d'un appareil. En outre, les administrateurs locataires peuvent s'appuyer sur Microsoft Intune pour gérer les déploiements de Teams et alléger le fardeau de l'installation pour les utilisateurs.

Renforcer la sécurité

Nous avons pris des mesures pour renforcer la protection de notre système en adoptant des types de confiance et en mettant en œuvre une politique de sécurité du contenu plus stricte. Ces efforts ont permis de renforcer notre protection contre les attaques de type cross-site scripting (XSS). Un autre avantage clé de l'installation MSIX de Teams est qu'elle installe l'application dans le dossier de données du programme plutôt que dans le dossier du profil de l'utilisateur qui n'est pas accessible en écriture par l'utilisateur, ce qui ajoute une meilleure protection contre les attaques qui tentent de modifier l'installation.

Obtenez ce dont vous avez besoin (données partielles)

Pour relever le défi de la gestion de quantités importantes de données et de threads au sein de Teams, qui peut avoir un impact négatif sur les performances, nous sommes passés à un modèle de données partielles. Cette approche consiste à n'extraire que les données nécessaires au rendu d'un écran, plutôt que d'extraire toutes les données par défaut. Cela a également permis d'améliorer considérablement l'utilisation de la mémoire et du disque du produit.

Passage du polling aux notifications push

Nous sommes passés d'un système de sondage pour la mise à jour des politiques, des événements du calendrier et des canaux épinglés à un modèle de push. Cette approche améliore l'expérience de l'utilisateur et réduit la charge de travail du client.

Optimiser la mémoire

Certaines stratégies utilisées pour améliorer les performances ont parfois un coût en termes de mémoire (par exemple, la mise en cache des données dans la mémoire, la récupération anticipée des données ou le préchargement du code). Bien que certaines de ces techniques aient un coût en termes de m...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de archqt
Membre émérite https://www.developpez.com
Le 28/03/2023 à 15:58
Pourquoi ne pas le faire en C++ avec un framework multi-plateforme ? Sauf erreur il y a un rapport 2 de vitesse entre javascript et le C++. Il me semble que Skype, racheté pas Microsoft, était fait soit en Pascal (Delphi) soit en C++ en fonction de l'OS.
0  0 
Avatar de chasis.fan
Nouveau membre du Club https://www.developpez.com
Le 02/11/2023 à 15:40
Voila pour les constations ancien vs nouveau teams en terme de ressources mémoire et occupation disque
0  0