Conception d'applications hautes performances - cours 46 900 roubles. du Centre de Formation IBS, formation 25 heures, Date: 11 mars 2024.
Miscellanea / / November 28, 2023
Avant même de concevoir un système logiciel, vous devez comprendre qu'en raison de certaines limitations, il peut toujours devenir un système hautes performances. Lors du développement d’un système hautes performances, il est nécessaire de déterminer quels paramètres définissent le système comme étant hautes performances. Si le système est performant, pour sa mise en œuvre réussie, des mesures spéciales doivent être prises pour garantir ses performances.
Le cours examine les différences entre les systèmes à charge élevée, haute fiabilité et hautes performances.
L'objectif principal du cours est de fournir une compréhension des concepts, principes et approches de base utilisés dans la conception de systèmes hautes performances.
Une phrase courante: « Ça devrait marcher vite! » - ce n'est pas une exigence. Au cours de la formation, les participants apprendront non seulement pourquoi il ne s'agit pas d'une exigence, mais apprendront également comment travailler correctement avec et analyser les exigences de performance. Le cours introduit également les concepts de « scénarios critiques ». Les étudiants consolideront les connaissances acquises sur le travail avec les exigences dans la pratique lors d'un travail pratique.
Le cours examine les principaux exemples de perte de productivité des systèmes logiciels. Après cela, les principaux moyens de lutter contre les performances du système sont présentés. Également dans le cadre du cours, les modèles utilisés dans la conception de systèmes présentant des exigences accrues sont discutés à l'aide d'exemples pratiques d'application. performances, fournit des informations sur les principaux anti-modèles rencontrés lors de la mise en œuvre de systèmes logiciels qui affectent productivité.
Une attention particulière est accordée à la préparation du système pour les tests et à l'analyse des résultats des tests. Décrit la création d'un programme et d'une méthodologie pour tester les systèmes à charge élevée, les modèles de charge systèmes et discute d’une méthodologie qui permet une évaluation quantitative des performances systèmes.
Étant donné que les développeurs de systèmes logiciels doivent souvent résoudre les problèmes liés au développement de systèmes très chargés qui traitent de gros volumes de données avec compte tenu des exigences en matière de temps de réponse et de volumes de données traitées, le cours sera utile non seulement aux architectes, mais également aux chefs de projets d'aménagement, développeurs.
1. Concept d'un système performant (2,5 heures) :
Application haute performance, application haute charge, application haute disponibilité.
Gestion des performances des applications.
Dépendance du prix de correction d'erreur sur le stade de détection et le stade d'introduction.
Caractéristiques de base décrivant les performances du système.
Modèle de charge du système.
2. Analyse des besoins pour les systèmes hautes performances (1,5 heures)
Formation d'exigences non fonctionnelles pour les systèmes hautes performances.
Gérer les contradictions lors de la création d'exigences de performance.
Complétude des exigences.
Atelier (1 heure) :
Analyse des exigences d'incohérence et d'exhaustivité.
2.1.Tactiques architecturales. Tactiques de productivité (1,5 heures)
Caractéristiques de la formation des exigences pour les systèmes de file d'attente (QS).
3. Conception de systèmes performants (2 heures)
Attributs de qualité du système.
Compromis lorsqu’on travaille simultanément sur plusieurs attributs de qualité: l’exemple du CAP et du PACELC.
Atelier: Analyse du principe d'équilibrage des attributs de qualité à l'aide de l'exemple d'Amazon Dynamo DB (1 heure) :
Prise en compte des approches de mise à l'échelle flexible du système à l'aide de l'exemple d'Amazon Dynamo DB tout en gardant le contrôle de la tolérance aux pannes et en maintenant des performances constantes.
3.1. Approches de performance classiques
Les principales causes de perte de performances du système (1 heure).
Méthodes de base pour augmenter les performances du système (1 heure).
Principes de mise à l'échelle horizontale et verticale des systèmes (0,5 h).
Atelier (2 heures) :
Analyse d'un exemple de mise à l'échelle du système.
Conversion d'un système monolithique en Map-Reduce.
Présentation de Map-Reduce.
Conversion de Map-Reduce en architecture Lambda pour réduire les problèmes de la pratique pure de Map-Reduce.
4. Modèles de mise en œuvre de systèmes hautes performances (5 heures)
Les principales classes de modèles utilisés dans la construction de systèmes hautes performances: GRASP, modèles d'architecture, modèles d'intégration d'applications.
Exemples de mise en œuvre pratique de modèles dans les normes modernes.
Exemples de mise en œuvre pratique de modèles dans des cadres de développement de systèmes d'intégration modernes.
5. Codage de systèmes performants (2 heures)
Problèmes fondamentaux liés au codage de systèmes hautes performances.
Méthodes d'optimisation pour les compilateurs et les environnements d'exécution modernes.
6. Test de systèmes hautes performances (2 heures)
Types de tests utilisés pour prouver les performances du système.
Préparation aux tests (élaboration de scénarios et création d'un modèle de charge).
Analyse des résultats des tests.
7. Méthodologie SPE (1 heure)
Introduction à la méthodologie SPE. Histoire, limites d'utilisation.
Méthodologie d'analyse des systèmes utilisant SPE.
Atelier (1 heure) :
Réflexion sur un exemple pratique d'utilisation de la méthodologie SPE pour :
Estimer les limites de performance du système en fonction des caractéristiques actuelles du matériel et des logiciels ;
Évaluer l'impact des décisions architecturales sur les performances du système ;
Estimations des exigences matérielles basées sur les exigences de performances, basées sur la mise à l'échelle des processus système actuels.