|
Rapport d'audit de performance
|  |
Plan type d'un rapport d'audit de performance et d'architecture.
- Introduction
- Contexte de la mission
- Objectifs de la mission
- Organisation de la mission
-
- Synthèse des résultats
- Performance
- Performances initiales
- Objectifs de performance
- Performances finales
- Audit
- Principales forces et faiblesses
- Mise en place des recommandation
-
3 Optimisations
Les optimisations non intrusives sont réalisées dans le cadre de la mission. Les optimisations intrusives nécessitant un effort de codage important sont réalisés après la mission, ou spécifiées pour l'équipe de développement.
-
- Déroulement de l'audit de performance
- Architecture de l'application
Description de l'architecture de l'applciation et de la plateforme de production.
-
- Plateforme de test
Description de la plateforme
de test. La mise en place d'une plateforme de test peut être réalisé dans le cadre d'un service complémentaire.
-
- Plan de validation des performances
Description du plan de validation des performances: tests de charge, tests d'endurance, tests techniques unitaires, tests aux limites. Organisation des scénario de test, jeux de données.
-
- Intrumentation des tests
Outils de mesure de la performance: Load Runner, J2EE Dignostic, OptimizeIt....
-
- Objectifs de performance
Définition des objectifs de performance à atteindre. Définition du tableau de bord contenant les indicateurs de performance permettant de suivre l'évolution des travaux d'optimisation.
-
- Optimisation de la performance
- Etalonnage de l'environnement de test
L'étalonnage est essentiel. Il permet de corréler les valeurs en nombre d'utilisateurs sur les hits / par seconde en ajustant les délais d'attente de l'utilisateur lors d'une saisie.
L'environnement de test doit être correctement dimensionné pour permettre de supporter les flux des tests de charge (injecteurs).
-
- Optimisation de l'infrastructure
Mesure de performance et optimisation des éléments de linfrastructure: réseau, éléments de sécurité (Firewall), Serveurs.
-
- Optimisation du serveur Web
Mesure de performance et optimisation du paramétrage du serveur Web: Module MPM, configuration process, threads...
-
- Optimisaiton du serveur d'application J2EE
Mesure de performance et optimisation du paramétrage du sevreur J2EE: dimensionnement des pools, paramètres de monitoring...
Paramétrage et optimisation de la JVM, du garbage collector, des options d'optimisation.
-
- Optimisation de l'application
- Client Web
Optimisation de la taille du code HTML généré, réduction du nombre de hits, optimisations du code. Partitionnement données statiques (images, HTML, CSS...) et dynamiques (JSP).
-
- Services métier
Optimisation du code, tests de performance unitaires pour les fonctions critiques.
-
- Accès aux données
Optimisation de l'accès aux données, cache de données.
-
- Verrouillage
Recherche des synchronisations.
-
- Systèmes intégrés: SAP, Tuxedo...
Mesure de performance et optimisations des systèmes intégrés. Instrumentation du code (logs de performance).
-
- Optimisation de la base de données
Mesure de performance, statistiques Oracle, Optimisation du schéma de la base
-
- Audit d'architecture
Ce chapitre contient un ensemble de critères. Chaque critère est évalué. En cas de problème critique, un chantier d'amélioration est défini afin de permettre aux équipes de développement de le corriger.
- Architecture de déploiement
Définition de l'interfaces de composants, middleware. Lien Serveur Web - Serveur d'application.
-
- Architecture logique
Rechercher les dépendances cycliques.
Vérification des dépendances entre packages.
-
- Architecture fonctionnelle
Audit du découpage fonctionnel de l'application.
-
- Framework
Identification des principaux design patterns utilisés.
Evaluation des classes de base, du framework, des choix de développements transversaux.
Evaluation du niveau de complexité des développements.
Evaluation du niveau de généricité.
-
- Modélisation objet
Evaluation de la qualité de la modélisation objet.
-
- Gestion de la sécurité
Recherche des points de vulnérabilité.
-
- Gestion des transactions
Recherche des risques de perte de cohérence transactionnelle.
-
- Disponibilité
Recherche des points de faiblesses pouvant affecter le niveau de disponibilité requis.
-
- Traitement des erreurs et exceptions
Vérification du traitement des exceptions.
-
- Client Web
- Pages JSP
Vérifier le respect de l'architecture MVC2.
Traitement des erreurs, internationalisation.
-
- Gestion des sessions HTTP
Vérifier les données stockées sur la session.
-
- Serveur métier
- Modèle des données
Vérifier l'unicité classe - donnée stockée.
-
- Intégration
Gestion des connexions
Propagation du contexte de sécurité
Propagation du contexte transactionnel
-
- Chantiers d'amélioration
Cadrage des différents chantiers à réaliser pour améliorer l'architecture.
|