Session Dynatrace : La performance et la disponibilité applicative sont des enjeux majeurs à considérer pour assurer un niveau de service satisfaisant à nos utilisateurs. SharePoint a atteint un niveau de maturité technique et fonctionnelle qui rend cette solution incontournable, mais pas infaillible. - Trop souvent, les utilisateurs de SharePoint constatent des dysfonctionnements qui s’avèrent être autant de freins à l’adhésion de la solution. - Que ce soient des lenteurs à l'affichage, des erreurs techniques, des ressources non trouvées ou vos serveurs saturés, il est crucial de s’en préoccuper au plus tôt, avant que la réputation de vos applications ne soit définitivement ternie. Afin de répondre à l’enjeu de la performance applicative, deux questions sont essentielles : Mes utilisateurs rencontrent-ils une insatisfaction ? Quel est l'origine du dysfonctionnement ? L’objectif de cette session est de faire prendre conscience que l’Application Performance Management permet que des solutions à base de SharePoint ne soient plus écartées par les utilisateurs pour de mauvaises raisons, et montrer, à l’heure où l'IT n’a jamais été aussi complexe, qu'il est possible de donner de la visibilité et du confort à ses équipes. Après un état des lieux des sites SharePoint dont les utilisateurs se plaignent, nous aborderons en première partie les concepts clés de l'APM, puis vous assisterez à une démo Live, via une session enregistrée dans un outil d'APM, simulant des visites utilisateurs sur un environnement SharePoint.
Reprenez la main sur vos applications SharePoint en mesurant et en optimisant la performance et la disponibilité de cet environnement
1. 1 @Dynatrace
Sous l’angle de la performance
10,11,12 février
Antoine Ferté : antoine.ferte@dynatrace.com
Rafael Portolano : rafael.portolano@dynatrace.com
Consultants Dynatrace
2. 2 @Dynatrace
Sous l’angle de la performance
Démos live Retex SharePointA.P.M.
Pourquoi ?
Principe de
fonctionnement
Principales causes de
lenteurs observées
Tips pour optimiser les
pages lentes
Mesurer le ressenti de
mes utilisateurs
Isoler les anomalies
10,11,12 février
[8 mn] [20 mn] [12 mn]
3. 3 @Dynatrace
Manque d’accompagnement
Conception, ergonomie inadaptée
Performance, erreurs techniques
3 freins à l’adoption de
Priorité 1 : la satisfaction utilisateurs
4. 4 @Dynatrace
Manque de visibilité
Des environnements techniques
complexes
Des outils fonctionnant en sillot
Des situations de crise fréquentes
Etat des lieux
5. 5 @Dynatrace
Deux questions essentielles
Mes utilisateurs rencontrent t-ils une
insatisfaction ?
Quelle est l’origine du dysfonctionnement ?
6. 6 @Dynatrace
Comment Dynatrace répond à ces 2 questions ?
Développeur
Utilisateur JAVA
Big Data
Autre
Mainframe
Contenu tiers
CDN
RéseauRéseau
Serveur
Dynatrace
8. 8 @Dynatrace
L’impact de l’infrastructure sur les applications
Développeur
Utilisateur JAVA
Big Data
Autre
Mainframe
Contenu tiers
CDN
RéseauRéseau
Serveur
Dynatrace
10. 10 @Dynatrace
Support: Décrivez-moi votre écran
User: [Echap], [F1], [F2], [F3] ...
Support: Non ! Ca c'est votre clavier !
L'écran, c'est la télé ...
User : Vous me prenez pour un C..
ou quoi ?
12. 12 @Dynatrace
Vue sur toutes requêtes web générées par mes utilisateurs.
Présentation des temps de réponses et du poids des ressources.
Analyse de la visite dans la solution Dynatrace
16. 16 @Dynatrace
Séquence d’appel des ressources : plus 1,8 sec consommé
pour charger le fichier « jquery-ui-accordion.js »
17. 17 @Dynatrace
Vérification de l’impact de ce fichier JS sur les temps de réponse
et le trafic : ce fichier est appelé 26 fois (sur toutes les pages
visitées, une optimisation semble nécessaire)
19. 19 @Dynatrace
Navigation sur un site de GED monitoré par Dynatrace (agent applicatif installé)
Navigation puis tentative
d’ouverture d’un fichier
Excel qui aboutit par une
popup d’erreur
20. 20 @Dynatrace
Pour chaque visite : chemin de navigation présenté lisiblement.
Affichage des actions utilisateurs et des temps de réponse.
Analyse de la visite dans Dynatrace :
21. 21 @Dynatrace
- Temps de réponse passés dans chaque tiers
- Etat de santé : Applicatif, Process et des Hosts
Cartographie de ma visite :
Cartographie de bout en bout de ma visite :
26. 26 @Dynatrace
Synthèse
Les problèmes peuvent venir de partout !
Côté client
Des pages complexes, lourdes, des CDN peu performants (cache de contenu)
JavaScripts (séquence et poids) et compatibilité Browsers
Déploiement / configuration
Crawl perpetual, Service de cache, MySite mal dimensionnés, …)
Code custom
28. 28 @Dynatrace
Custom Web Parts - Bad Coding #1
Tous les List Items sont remontés dans la requête la BDD
DO NOT
int nbElements = SPContext.Current.List.Items.Count;
Item Count est chargé depuis la table AllUserData et mis en mémoire
DO
int nbElements = SPContext.Current.List.ItemCount;
29. 29 @Dynatrace
Custom Web Parts - Bad Coding - #2
DO NOT
for (int itemIx=0;itemIx< SPContext.Current.List.Items.Count;itemIx++)
{ SPListItem listItem = SPContext.Current.List.Items[itemIx];
// do something ... }
Chaque itération engendre 2 ExecuteReader ( count & accés aux proprietés )
Au final 202 appels SQL avec plus d‘1 sec
30. 30 @Dynatrace
Custom Web Parts - Bad Coding - #2
DO
SPListItemCollection items = SPContext.Current.List.Items;
foreach (SPListItem listItem in items)
{ // do something ...}
Une seule requête à la base pour remonter la collection
31. 31 @Dynatrace
Composants (Ex. Grid Control) - #3
Chaque Cellule de grille
exécute un select.
493 au total !
Aucune de ces exécutions
n’a été préparée
33. 33 @Dynatrace
1er Appel “DoAsyncCall” trés lent - #4
Web Service appelé par la WebPart
L’HttpWebRequest utilise la class ServicePoint
Le 1er Web Service met 5.8s à retrouver les infos
34. 34 @Dynatrace
Les threads attendent ! - #4
On a 10 appels parallèles en tâche de fond qui attendent
Les autres threads passent leur tps
en “waiting” dans the ServicePoint