Rapport d'audit de performance

Plan type d'un rapport d'audit de performance et d'architecture.

  1. Introduction
    1. Contexte de la mission
    2. Objectifs de la mission
    3. Organisation de la mission
      -
  2. Synthèse des résultats
    1. Performance
      1. Performances initiales
      2. Objectifs de performance
      3. Performances finales
    2. Audit
      1. Principales forces et faiblesses
      2. 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.
      -
  3. Déroulement de l'audit de performance
    1. Architecture de l'application
      Description de l'architecture de l'applciation et de la plateforme de production.
      -
    2. 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.
      -
    3. 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.
      -
    4. Intrumentation des tests
      Outils de mesure de la performance: Load Runner, J2EE Dignostic, OptimizeIt....
      -
    5. 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.
      -
  4. Optimisation de la performance
    1. 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).
      -
    2. Optimisation de l'infrastructure
      Mesure de performance et optimisation des éléments de linfrastructure: réseau, éléments de sécurité (Firewall), Serveurs.
      -
    3. Optimisation du serveur Web
      Mesure de performance et optimisation du paramétrage du serveur Web: Module MPM, configuration process, threads...
      -
    4. 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.

      -
    5. Optimisation de l'application
      1. 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).
        -
      2. Services métier
        Optimisation du code, tests de performance unitaires pour les fonctions critiques.
        -
      3. Accès aux données
        Optimisation de l'accès aux données, cache de données.
        -
    6. Verrouillage
      Recherche des synchronisations.
      -
    7. Systèmes intégrés: SAP, Tuxedo...
      Mesure de performance et optimisations des systèmes intégrés. Instrumentation du code (logs de performance).
      -
    8. Optimisation de la base de données
      Mesure de performance, statistiques Oracle, Optimisation du schéma de la base
      -
  5. 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.
    1. Architecture de déploiement
      Définition de l'interfaces de composants, middleware. Lien Serveur Web - Serveur d'application.
      -
    2. Architecture logique
      Rechercher les dépendances cycliques.
      Vérification des dépendances entre packages.

      -
    3. Architecture fonctionnelle
      Audit du découpage fonctionnel de l'application.
      -
    4. 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é.
      -
    5. Modélisation objet
      Evaluation de la qualité de la modélisation objet.
      -
    6. Gestion de la sécurité
      Recherche des points de vulnérabilité.
      -
    7. Gestion des transactions
      Recherche des risques de perte de cohérence transactionnelle.
      -
    8. Disponibilité
      Recherche des points de faiblesses pouvant affecter le niveau de disponibilité requis.
      -
    9. Traitement des erreurs et exceptions
      Vérification du traitement des exceptions.
      -
    10. Client Web
      1. Pages JSP
        Vérifier le respect de l'architecture MVC2.
        Traitement des erreurs, internationalisation.
        -
      2. Gestion des sessions HTTP
        Vérifier les données stockées sur la session.
        -
    11. Serveur métier
      1. Modèle des données
        Vérifier l'unicité classe - donnée stockée.
        -
    12. Intégration
      Gestion des connexions
      Propagation du contexte de sécurité
      Propagation du contexte transactionnel

      -
  6. Chantiers d'amélioration
    Cadrage des différents chantiers à réaliser pour améliorer l'architecture.

(c) Business Technology Consulting 2005-2007