DESCRIPTIONLa performance est rarement une priorité lors de la conception ou du
choix d’un logiciel. Son optimisation est reléguée après la livraison.
Pourtant, la performance et la disponibilité des systèmes informatiques
sont largement déterminées par leur architecture initiale.
Ce séminaire dresse l’état de l’art en la matière, en abordant la
question épineuse de la performance sous plusieurs angles :
méthodologie, conception, choix techniques, optimisation, bonnes
pratiques, contractualisation et dialogue avec les fournisseurs. OBJECTIF
Identifier les enjeux de la disponibilité et de la performance de votre SI Bien définir son contrat de service Choisir les bonnes pratiques en matière de performance, de stabilité et de montée en charge Identifier les problèmes classiques et anticiper les incidents
METHODE
Nos consultants illustrent chaque concept par des retours terrain et des démonstrations d’outils. PUBLIC
Responsable études
Architecte
Développeur
| Les enjeux de la performance des SI
- Une nécessité :
- La performance ne se décrète pas
- Combien coûte une heure d’indisponibilité ?
- Les notions clés de la performance :
- Disponibilité
- Robustesse
- Temps de réponse (latence et débit)
- Montée en charge
- Contractualiser la performance :
- Le contrat de service
- Sur quoi pouvez-vous vous engager ?
- Sur quoi engager vos prestataires ?
Inscrire la performance dans vos pratiques
- Le projet de développement :
- Capturer les exigences de disponibilité, de performance et de montée en charge
- Le rôle des prototypes
- Les tests de performance comme étape de la réception d’un progiciel, d’un développement interne ou d’une infrastructure
- La recette technique
- La mise en production
- L’architecture comme réponse clé :
- Les antipatterns pour détecter les défauts classiques
- Les design patterns pour outiller sa conception d’architectures performantes, stables et résilientes
- Faire des compromis : performance ou évolutivité ?
- L’audit de performance :
- Gérer la crise
- Méthodologie
- Comment choisir les scénarios de test ?
- Automatiser les mesures
- Challenger les éditeurs à l’aide d’un tiers de confiance
- L’amélioration continue :
- La démarche d’optimisation
- La culture de la mesure
- L’apport du référentiel ITIL
- La culture de la performance : faire évoluer les mentalités :
- L’utilisation libérale des ressources
- La maîtrise de la configuration technique
- Le respect des processus
- Rapprocher les études et l’exploitation : le mouvement DevOps
Augmenter la performance
- Mesurer votre performance :
- Les outils de profiling
- Identifier les coupables
- Impact de la virtualisation sur la performance
- Les bonnes pratiques :
- Traiter par lot
- Supprimer les couplages temporels
- Les caches et leur difficulté de gestion
- Qu’est-ce qu’un algorithme performant ?
- Optimiser sa base de données (index, NoSQL)
- Optimiser les échanges réseau (choix du protocole, compression de données, mise en cache, limiter les échanges...)
- L’impact de l’infrastructure technique (processeurs, réseau)
Maitriser la montée en charge
- Connaître ses limites :
- Mettre en place des tests de montée en charge
- Les outils d’injection de charge
- Poser des limites
- Anticiper la demande pour survivre à son succès
- Les bonnes pratiques :
- Le rôle des clusters et des répartiteurs de charge
- Les fermes de serveurs et la virtualisation
- Dimensionner ses pools de ressources
- Concevoir des services sans état : stocker les données de session côté client
Assurer la continuité de service
- Quel niveau de disponibilité pouvez-vous atteindre ?
- Calculez votre taux de disponibilité dans un monde connecté
- Monitoring et supervision :
- Connaître les solutions et les protocoles de monitoring pour mesurer l’état de santé de votre système
- SNMP, JMX, WMI, APM
- Que mesurer et comment ?
- Mettre en place des alertes et un reporting
- Comprendre les raisons de l’indisponibilité :
- Les processus, les hommes, et enfin le logiciel
- Les single points of failure
- Les réactions en chaîne
- Les bonnes pratiques :
- Les guides de procédure
- L’automatisation
- La redondance des briques physiques et logicielles
- Concevoir autour des échecs (design for failure)
- Prévoir des comportements dégradés
- Mettre en place des coupe-circuits
- Échouer rapidement (fail fast)
- Identifier et supprimer les couplages structurels
- Produire des messages d’erreur contextualisés pour faciliter l’analyse
- Maîtriser les dépendances logicielles :
- Faire évoluer les services sans devoir migrer les clients
- Les contrats pilotés par les clients (consumer-driven contracts)
- Permettre les changements de logiciel à chaud
Conclusion
- Synthèse des points abordés avec identification des pratiques et des technologies à intégrer à moyen ou long terme.
| |
|