Diseño de aplicaciones de alto rendimiento - curso 46.900 rublos. del IBS Training Center, capacitación 25 horas, Fecha: 11 de marzo de 2024.
Miscelánea / / November 28, 2023
Incluso antes de diseñar cualquier sistema de software, es necesario comprender que, debido a ciertas limitaciones, siempre puede convertirse en un sistema de alto rendimiento. Al desarrollar un sistema de alto rendimiento, es necesario determinar qué parámetros definen al sistema como de alto rendimiento. Si el sistema es de alto rendimiento, para su implementación exitosa se deben tomar medidas especiales para garantizar el rendimiento.
El curso examina las diferencias entre sistemas de alta carga, alta confiabilidad y alto rendimiento.
El objetivo principal del curso es proporcionar una comprensión de los conceptos, principios y enfoques básicos utilizados en el diseño de sistemas de alto rendimiento.
Una frase común: "¡Debería funcionar rápido!" - Esto no es un requisito. Durante la capacitación, los participantes no solo aprenderán por qué esto no es un requisito, sino que también aprenderán cómo trabajar y analizar adecuadamente los requisitos de desempeño. El curso también introduce los conceptos de "escenarios críticos". Los estudiantes consolidarán los conocimientos adquiridos sobre el trabajo con requisitos en la práctica durante una tarea práctica.
El curso examina los principales ejemplos de pérdida de productividad de los sistemas de software. Después de esto, se dan las principales formas de combatir el rendimiento del sistema. También en el marco del curso se discuten patrones utilizados en el diseño de sistemas con mayores requisitos mediante ejemplos prácticos de aplicación. rendimiento, proporciona información sobre los principales antipatrones encontrados al implementar sistemas de software que afectan productividad.
Se presta especial atención a la preparación del sistema para realizar pruebas y analizar los resultados de las pruebas. Describe la creación de un programa y metodología para probar sistemas de alta carga, modelos de carga. sistemas y analiza una metodología que permite la evaluación cuantitativa del desempeño sistemas.
Dado que los desarrolladores de sistemas de software a menudo tienen que resolver los problemas de desarrollar sistemas altamente cargados que procesan grandes volúmenes de datos con Dados los requisitos de tiempos de respuesta y volúmenes de datos procesados, el curso será útil no sólo para los arquitectos, sino también para los directores de proyectos de desarrollo, desarrolladores.
1. Concepto de sistema de alto rendimiento (2,5 horas):
Aplicación de alto rendimiento, aplicación de alta carga, aplicación de alta disponibilidad.
Gestión del rendimiento de las aplicaciones.
Dependencia del precio de la corrección de errores de la etapa de detección y de la etapa de introducción.
Características básicas que describen el rendimiento del sistema.
Modelo de carga del sistema.
2. Análisis de requisitos para sistemas de alto rendimiento (1,5 horas)
Formación de requisitos no funcionales para sistemas de alto rendimiento.
Tratar las contradicciones al crear requisitos de desempeño.
Integridad de requisitos.
Taller (1 hora):
Análisis de requisitos para detectar inconsistencia e integridad.
2.1.Tácticas arquitectónicas. Tácticas de productividad (1,5 horas)
Características de la formación de requisitos para sistemas de colas (QS).
3. Diseño de sistemas de alto rendimiento (2 horas)
Atributos de calidad del sistema.
Compensaciones cuando se trabaja simultáneamente en varios atributos de calidad: el ejemplo de CAP y PACELC.
Taller: Análisis del principio de equilibrio de atributos de calidad usando el ejemplo de Amazon Dynamo DB (1 hora):
Consideración de enfoques para el escalado flexible del sistema utilizando el ejemplo de Amazon Dynamo DB mientras se mantiene el control sobre la tolerancia a fallas y se mantiene un rendimiento constante.
3.1. Enfoques clásicos de rendimiento
Las principales causas de la pérdida de rendimiento del sistema (1 hora).
Métodos básicos para aumentar el rendimiento del sistema (1 hora).
Principios de escalamiento horizontal y vertical de sistemas (0,5 h).
Taller (2 horas):
Análisis de un ejemplo de escalado de sistema.
Conversión de un sistema monolítico a Map-Reduce.
Descripción general de Map-Reduce.
Convierta Map-Reduce a la arquitectura Lambda para reducir los problemas de la práctica pura de Map-Reduce.
4. Patrones de implementación de sistemas de alto rendimiento (5 horas)
Las principales clases de patrones utilizados en la construcción de sistemas de alto rendimiento: GRASP, patrones de arquitectura, patrones de integración de aplicaciones.
Ejemplos de implementación práctica de plantillas en estándares modernos.
Ejemplos de implementación práctica de plantillas en marcos de desarrollo de sistemas de integración modernos.
5. Codificación de sistemas de alto rendimiento (2 horas)
Cuestiones básicas en la codificación de sistemas de alto rendimiento.
Métodos de optimización para compiladores y entornos de ejecución modernos.
6. Prueba de sistemas de alto rendimiento (2 horas)
Tipos de pruebas utilizadas para probar el rendimiento del sistema.
Preparación para pruebas (elaboración de escenarios y creación de un modelo de carga).
Análisis de los resultados de las pruebas.
7. Metodología SPE (1 hora)
Introducción a la metodología SPE. Historia, límites de uso.
Metodología de análisis de sistemas mediante SPE.
Taller (1 hora):
Consideración de un ejemplo práctico de utilización de la metodología SPE para:
Estimar los límites del rendimiento del sistema en función de las características actuales del hardware y software;
Evaluar el impacto de las decisiones arquitectónicas en el rendimiento del sistema;
Estimaciones de requisitos de hardware basadas en requisitos de rendimiento, basadas en el escalado de los procesos del sistema actual.