La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

© OCTO – Technology 2005 Evaluez les performances de vos applications Eric Groise Messaoud Oubechou

Présentations similaires


Présentation au sujet: "© OCTO – Technology 2005 Evaluez les performances de vos applications Eric Groise Messaoud Oubechou"— Transcription de la présentation:

1 © OCTO – Technology Evaluez les performances de vos applications Eric Groise Messaoud Oubechou

2 © OCTO TechnologyBrief Microsoft Performance Applicative LArchitecture au cœur du Système dInformation Centrées autour de larchitecture, nos prestations vous permettent : De piloter plus facilement votre SI De concevoir vos projets de manière plus structurée, tant sur le plan fonctionnel que technique Dindustrialiser la mise en œuvre des projets, des phases de développement aux phases de production Pour en savoir plus : LArchitecture : un puissant outil de communication entre les différents acteurs que sont les directions, les métiers et linformatique

3 © OCTO TechnologyBrief Microsoft Performance Applicative Connaissances requises pour la session Connaissance du.NET Framework Développement en.NET

4 © OCTO TechnologyBrief Microsoft Performance Applicative Agenda Introduction Objectifs et démarche Phases darchitecture et de conception Phase de développement Phase de mesures et tests

5 © OCTO TechnologyBrief Microsoft Performance Applicative Agenda Introduction Objectifs et démarche Phases darchitecture et de conception Phase de développement Phase de mesures et tests

6 © OCTO TechnologyBrief Microsoft Performance Applicative Introduction 2005 : Les mises en production.NET ! La phase dindustrialisation est en cours Usines de développement.NET Lexploitation des applications Deux classiques des études: 1. La sécurité applicative 2. La performance applicative

7 © OCTO TechnologyBrief Microsoft Performance Applicative Le scope de cette session De quoi parlerons-nous ? La démarche projet La performance au niveau applicatif En plateforme.NET WebForms ET WinForms Avec tous les langages de la plateforme De quoi ne parlerons-nous pas ? De la performance des développements Des aspects purement système Des aspects purement réseau

8 © OCTO TechnologyBrief Microsoft Performance Applicative Quest ce la performance ? Ne pas confondre performance avec … … la haute disponibilité… … la « scalabilité ». De même, les performances ne se limitent pas aux temps de réponse, ni au « tuning » technique « Une application performante est une application qui réalise ce quon lui demande dans les contraintes imparties »

9 © OCTO TechnologyBrief Microsoft Performance Applicative Les bonnes questions Quels sont mes objectifs de performance ? Où / quels sont les impacts sur mon projet ? …sur mon architecture ? …sur mon développement ? …sur mes tests ? Quel outillage adopter ? A quel moment ? Par qui ? Comment mesurer, suivre, voir anticiper les performances de mon application ?

10 © OCTO TechnologyBrief Microsoft Performance Applicative Cela dit, on ne vérifie pas… … la cohérence globale de lapplication et notamment Que les normes de développement ont bien été respectées Que lapplication est maintenable … la disponibilité globale de lapplication Une application peut supporter une forte charge sans pour autant être hautement disponible … que le comportement fonctionnel de lapplication est celui attendu Cest le domaine des tests fonctionnels Il peut y avoir un intérêt à exécuter des tests fonctionnels en parallèle de tests de charge Afin de vérifier que le comportement fonctionnel ne change pas en fonction de la sollicitation

11 © OCTO TechnologyBrief Microsoft Performance Applicative Agenda Introduction Objectifs et démarche Phases darchitecture et de conception Phase de développement Phase de mesures et tests

12 © OCTO TechnologyBrief Microsoft Performance Applicative Objectifs de lévaluation des performances Identifier des problèmes de performance flagrants Connaître les limites de lapplication Valider le fonctionnement de lapplication aux limites Permettre dapprécier la capacité dévolution de lapplication

13 © OCTO TechnologyBrief Microsoft Performance Applicative Définition … en somme, il sagit de valider que lapplication respecte le SLA spécifié. Lingénierie de la performance applicative comprend : Une démarche itérative à partir dun modèle de performance partant du SLA (temps de réponse, bande passante, ressources). Elle impacte notamment sur les phases projet architecture / conception, développement, mesure et test Mais pas que… Des outils Positionnés dans les phases du projet

14 © OCTO TechnologyBrief Microsoft Performance Applicative Les étapes de la démarche 1/2 Définition du modèle de performance Bénéficier dune vision claire sur les besoins, contraintes et objectifs Se donner les moyens de challenger la conception vis-à-vis de ces objectifs En phase dArchitecture et en phase de Conception, cela revient à à concevoir une application tiendra les promesses Avoir une vue claire sur la chaîne de communication Pousser des patterns orientés performance Faire en sorte que la conception pourra a minima tenir ses promesses Positionner une revue darchitecture En phase de Développement, cela revient à développer suivant larchitecture et la conception définies, puis à optimiser Sinscrire dans le modèle darchitecture défini Faire selon les patterns définis par larchitecte Analyser et optimiser par couches A éviter : lanti-pattern de la micro-optimisation trop tôt !

15 © OCTO TechnologyBrief Microsoft Performance Applicative Les étapes de la démarche 2/2 En phase de Test, cela revient à sassurer que la conception teint effectivement ses promesses Identifier les métriques appropriées Procéder à des tests de charge Acquérir et analyser les métriques En cas déchec, ré-itérer en revoyant le modèle… etc. etc. En phase dAdministration et dexploitation, Laventure commence (presque) ! Suivre lévolution des métriques Idéallement : être proactif, pas réactif

16 © OCTO TechnologyBrief Microsoft Performance Applicative Les objectifs du modèle Aligner les objectifs de performance sur le contrat de service attendu et sur le budget. Pourquoi se concentrer sur larchitecture et la conception ? Par expérience : 1.Les causes aux problèmes de performance sont le plus souvent introduites très tôt dans le projet (phase darchitecture – conception) 2.De plus, ces problèmes ne sont hélas pas résolvables par du simple tuning ou en optimisant juste un bout du programme 3.Plus on corrige tardivement dans le projet, et plus ça coûtera cher.

17 © OCTO TechnologyBrief Microsoft Performance Applicative Caractère itératif de la démarche Etablir le « modèle de performance » Notez que laspect fonctionnel nest pas neutre Itérer sur larchitecture et la conception, la mise en œuvre et la validation

18 © OCTO TechnologyBrief Microsoft Performance Applicative Les questions que lon se pose… en vrac… Quelles sont mes contraintes en temps de réponse : seuil max ? moyenne ? Quel chemin du programme est critique pour les performances ? Où laccès aux ressources est-il critique sur les performances ? Quelle est la bande passante à ma disposition? Combien de RAM & swap sont à ma disposition ? Quelles sont les caractéristiques du DD (temps daccès, vitesse…) et du CPU ? … Quelle couche accède aux ressources et serait susceptible daboutir à une contention ? Quel est le code le plus fréquemment appelé ? Où sont les appels synchrones et asynchrones ? Quel code accède aux ressources ? Est-ce en local ou en distant ? Quest-ce qui pourrait surcharger la CPU (algo de tri, serialization XML, volumétrie de donnée…) ? Les I/O disques ? Les I/O reseau (Web Service verbeux ? WS gourmand en données) ? … Quest-ce qui pourrait amener à un problème de latence (initialisation de ressources : pool de cnxions, …) ? Où sont gérées les transactions ? Quel est le niveau disolation ? Linteropérabilité est-elle requise ? Mest-il possible de cacher des données ? Serait-il possible de pré-calculer ou de pré-agréger des données ? Quels impacts sur mes performances sont liés à la sécurité ? Mon client est-il susceptible de « ramer » ? Serait-ce mon serveur ? Et la latence dans tout cela ? etc. etc.

19 © OCTO TechnologyBrief Microsoft Performance Applicative Structure du modèle Cas dutilisation pertinents Mais sur quels critères de choix ? Le tryptique : fonctionnel, technique, à lusage. Les objectifs de performance (BN) : temps de réponse, charge (volumétrie, nb users total / concurents, …), … Les contraintes (BB) Régime de croisière et pic dactivité Les configurations matérielles Les cas dutilisation des tests, leur répartitions et leurs objectifs -> « Lapplication devra supporter 500 utilisateurs connectés dont 50 réalisant un acte dachat. Cet acte dure en moyenne 7 minutes. » -> Homepage recherche Add to basket Vue du panier + Check out ! identification paiement Merci ! réception de mail de confirmation Larchitecture générale

20 © OCTO TechnologyBrief Microsoft Performance Applicative Qui fait quoi ? Consultants fonctionnels Aident à létablissement de scéanrii de test le + proche possible des conditions de production : scénarii, jeu de données, nb users, … Architectes logiciels Conçoivent une architecture en ligne avec le SLA attendu Vérifient que larchitecture « tiendra ses promesses » Développeurs Conçoivent des briques logicielles en ligne avec le SLA attendu Vérifient que la conception « tient ses promesses » Testeurs Déroulent les scénarii de test Challengent les résultats par rapport aux objectifs Administrateurs Posent les métriques Vérifient ladéquation du modèle à la réalité Alertent en cas de divergence Chef de projet Orchestre les interventions Priorise les actions Conclusion : le problème est transverse. Les performances ne concernent pas « que » le développeur… !

21 © OCTO TechnologyBrief Microsoft Performance Applicative Bénéfices du modèle de performance La performance est une fonction native de la conception Ses réponses en terme darchitecture et de conception sont connues et maîtrisées Les surprises en production sont évitées par une démarche proactive Les scénarii de test sont formalisés Ils nous indiquent où axer les efforts techniques Ils nous indiquent quoi tester unitairement Ils nous indiquent où instrumenter Ils nous indiquent si on est ou pas dans les clous Instancier un gabarit documentaire du modèle… et le faire vivre.

22 © OCTO TechnologyBrief Microsoft Performance Applicative Agenda Introduction Objectifs et démarche Phases darchitecture et de conception Phase de développement Phase de mesures et tests

23 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture Architecture Fonctionnelle Les acteurs fonctionnels Architecture Applicative Les « briques » applicatives Architecture Technique Les technologies en détail Architecture Physique Les machines et le réseau

24 © OCTO TechnologyBrief Microsoft Performance Applicative Quand faire de larchitecture ? Vous ne pouvez pas commencer les développements sans un minimum darchitecture Architecture Fonctionnelle Modèles Fonctionnels Architecture Applicative Cartographie Applicative Architecture Technique Socle Technique Architecture Physique Cible Larchitecture Technique et Physique saffinent durant lavancement du projet

25 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture et les performances « Elle définit votre marge de manoeuvre en terme de performances » Ne pas sombrer dans le « jusquau bout-isme » Sassurer que les objectifs demeurent atteignables Prévoir des « plans B »

26 © OCTO TechnologyBrief Microsoft Performance Applicative Brique applicativeIHM Traitements Données

27 © OCTO TechnologyBrief Microsoft Performance Applicative Cartographie Applicative

28 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture applicative Caractériser les briques Patterns, anti-patterns Identifier les relations Criticité dune brique Dépendances Identifier les flux Contraintes réseau

29 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture Technique Navigation, Vues, Multilangue Commandes Services sans contextes, DataSet & DTO Appels de proc-stock Client Riche + AutoUpdate Procédures-stockées

30 © OCTO TechnologyBrief Microsoft Performance Applicative Architecture applicativeIHM Services Métiers Services de données

31 © OCTO TechnologyBrief Microsoft Performance Applicative Les limites du modèle Les problèmes de performances : IHM Trop dappels de services Binder des objets Services métiers Trop dobjets tuent lobjet Trop dappels de services de données Services de données Le MPD

32 © OCTO TechnologyBrief Microsoft Performance Applicative Les limites du modèle IHM Services métiers Tout service IHM sappuie-t-il sur un service métier ? Il ny a vraiment aucun « traitement » dans lIHM ? Bind de DataSet ou dobjets.NET ? Les constats Tous les « services » ne font pas des traitements Exemple : Table Objet métier DataSet Plus on colle aux scénarios IHM, plus on est économe Exemple : TreeView interactive Le SGBD est bien plus performant que le code.NET managé pour lagrégation et la recherche.

33 © OCTO TechnologyBrief Microsoft Performance Applicative Services IHMIHM Services Métiers Services de données ServicesIHM

34 © OCTO TechnologyBrief Microsoft Performance Applicative Les limites du modèle Services Métiers Services de données Rôle de la procédure stockée ? Mapping Objet – Relationnel ? Les constats Le SGBD est souvent plus performant que du code.NET managé Faire un service ne garantit pas quil soit réutilisable ni pérenne Le mapping objet-relationnel coûte cher

35 © OCTO TechnologyBrief Microsoft Performance Applicative Architecture applicativeIHM Services Métiers Services de données ServicesIHM

36 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture technique « Avoir le maximum de cartes possible dans son jeu » Connaître « tout ».NET Remoting, Services Components, Messaging… Connaître les produits Microsoft SQLServer, Biztalk, MSMQ… Connaître les offres externes Editeurs Open Source

37 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture technique De premier niveau Atteindre les objectifs de performance, mais pas plus ! Prototypes Test de charge Cas du régime de croisière De deuxième niveau Définir des architectures de secours Plan B Scénario « surdimensionné » Cas du pic dactivité De troisième niveau Plannifier les évolutions dans le temps Anticiper leurs impacts

38 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture technique -Notification temps réel Clients simultanés -Pointes critiques à 100 tps Prototype Remoting Single Call TCP OK pour 100 tps sur WorkStation Test de 200 clients Assurances : Pooling des Channels Load Balancing

39 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture technique WinForm,Grid Open Souce Log4Net, Remoting Remoting Single Call TCP, Service NT, Log4Net Olymars EXE C# AutoUpdate (WebService & ZIP) SQL Server + Pooling Grid DevExpert + DLL C++ s

40 © OCTO TechnologyBrief Microsoft Performance Applicative Larchitecture physique Contraintes matérielles RAM CPU Disque Dur Contraintes réseau Bande passante Usage CPU (SSL, VPN) Topologies physiques Distribué Cluster, Load balancing

41 © OCTO TechnologyBrief Microsoft Performance Applicative Conception Un bon MCD/MPD vaut de lOR Le « tout objet » tue les performances

42 © OCTO TechnologyBrief Microsoft Performance Applicative Agenda Introduction Objectifs et démarche Phases darchitecture et de conception Phase de développement Phase de mesures et tests

43 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Surveiller où en en est pendant les développements Faites régulièrement des tests de performance unitaires dintégration (chaînes) Mais priorité … … aux fonctionnalités … à la maintenabilité … en phase de développement on optimise après avoir codé.

44 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Le processus doptimisation des performances du développeur :

45 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Les outils : Les assistants Le bench Le profiling

46 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Les assistants : Des outils qui font de véritables revues de code FxCop Total.Net Analyser, DevAdvantage (plugin VS), DevPartner… Des métriques Outils de refactoring VIL

47 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Demo Les assistants

48 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Les benchs : Outils classiques de bench Microsoft Application Center Test / Web Application Stress Tool Open STA … Benchs continus NUnit / MBUnit NUnitForms

49 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Demo Les benchs

50 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Le profiling : suivre lexécution du code Temps déxécution Qui est lent ? Parcours Qui est le plus critique ? Ressources Qui est le plus gourmand ?

51 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Demo Profiling

52 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Quelques classiques.NET : Debug / Release Utilisez les possibilités du debug/release pour limiter les impacts en terme de performance Garbage Collector Il ne vous rend pas toujours service ! Boxing / Unboxing Sympa, mais coûte cher Le ViewState Idem Le Cache Classes String et StringBuilder Si on instancie beaucoup de String, passez en StringBuilder Cest le cas pour lopérateur « + » entre strings

53 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de développement Demo Quelques classiques

54 © OCTO TechnologyBrief Microsoft Performance Applicative Agenda Introduction Objectifs et enjeux Phases darchitecture et de conception Phase de développement Phase de mesures et tests

55 © OCTO TechnologyBrief Microsoft Performance Applicative Mesures et tests Objectif Valider que les objectifs du modèle de performance sont atteints Activités 1. Mesurer 2. Tester 3. Optimiser Le processus est itératif

56 © OCTO TechnologyBrief Microsoft Performance Applicative Mesurer Objectif Déterminer les métriques techniques à retenir Identifier les points de contention Outils dacquisition Les compteurs de performance Et linstrumentation applicative

57 © OCTO TechnologyBrief Microsoft Performance Applicative Mesurer > compteurs de performance 4 « niveaux » de compteurs Réseau Système Plateforme.NET Applicatif Les (nombreux) compteurs de performance Les compteurs génériques Processor, memory, disk I/O, network I/O Les compteurs spécifiques.NET Framework : memory, exceptions, contentions, threading, … ASP.NET (response time, errors, cache, sessions, TX…) WS, remoting, interop, ADO (TX, cache, pool, index,...), … Les compteurs personnalisés

58 © OCTO TechnologyBrief Microsoft Performance Applicative Mesurer > instrumentation applicative Windows Management Instrumentation (WMI) Natif à windows. Large support par les constructeur Ecrire dans un sink WMI est peu performant. Use case : remonter derreurs critiques (matérielles, …) Enterprise Instrumentation Framework (EIF) Natif à.NET. Nombreuses destinations (SQL, event log, fichier, …). Encapsule WMI, event log et ETW. Scope large : trace, log, audit… configurable (« on/off », et niveaux) : pérenne ? Use case : instrumentation, entre autres... Nouveauté (01/2005) : les « Enterprise Libraries », Application Block 2 ième génération Attention aux critères : performance, intrusivité et configurabilité.

59 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de mesure Demo Instrumentation applicative

60 © OCTO TechnologyBrief Microsoft Performance Applicative Tester Types de tests « Load test » « Stress test » Exemple : le test de charge La démarche Lactivité clé : déterminer la charge à injecter : nb user simultanés, nb de pages vues, la latence utilisateur, répartition des users dans les scénarii…

61 © OCTO TechnologyBrief Microsoft Performance Applicative Tester la charge > analyser Résultats théoriques 3 axes clés à challenger au regard du nb de users simultanés Analyse Parfois, la réalité nest pas la théorie à 100 % Hélas, pas de recette « miracle » : cest du « cas par cas »

62 © OCTO TechnologyBrief Microsoft Performance Applicative Test de charge > optimiser La question : quel est le premier goulot détranglement et « rectifier le tir » (web, appli web, sgbd) ? Bests practises Utiliser une charge constante Appliquer un seul changement à la fois Prioriser les problèmes à résoudre Techniques doptimisation Les classiques : CPU, I/O disque, I/O réseau, SQL Server (idx, vues, sp, agrégats, triggers, …) Tips doptimisation en.NET : ASP.NET, ADO.NET, WS, ES, Remoting Vérifier loptimisation Re-tester, encore et toujours…

63 © OCTO TechnologyBrief Microsoft Performance Applicative Phase de test Demo Test de charge

64 © OCTO TechnologyBrief Microsoft Performance Applicative Best practices Si vous ne deviez retenir que 5 idées Dabord, pensez-y le plus tôt possible SVP : soyez « proactif ». Ensuite, établisser un modèle simple en partant du besoin et des contraintes. Finalement, évaluez la palette de possibilités mais avec pragmatisme (architecture, conception, développement). Noubliez pas quun bon outillage est un élément clé du succès. Finalement et surtout : testez, re-testez, re-re-testez… et [re\-]*testez !

65 © OCTO TechnologyBrief Microsoft Performance Applicative Au fait ! Comment foirer une appli ?

66 © OCTO TechnologyBrief Microsoft Performance Applicative Questions ?

67 © OCTO TechnologyBrief Microsoft Performance Applicative Ressources Un excellent PAG : msdn.microsoft.com/library/default.asp?url=/library/en- us/dnpag/html/scalenet.asp : 1 mine dor & 1 bon guide msdn.microsoft.com/library/default.asp?url=/library/en- us/dnpag/html/scalenet.asp CLR Profiler 2.0, EnterpriseServicesPerf code sample et « Performance Considerations for Run-Time Technologies in the.NET Framework » sur msdn.microsoft.com/downloads/ NPerf sur CodeProject.com FXCop, Allocation Profiler sur GotDotNet.com MS WAST et EIF en libre download sur microsoft.com


Télécharger ppt "© OCTO – Technology 2005 Evaluez les performances de vos applications Eric Groise Messaoud Oubechou"

Présentations similaires


Annonces Google