Projetando aplicações de alto desempenho - curso 46.900 rublos. do IBS Training Center, treinamento 25 horas, Data: 11 de março de 2024.
Miscelânea / / November 28, 2023
Antes mesmo de projetar qualquer sistema de software, é preciso entender que devido a certas limitações ele sempre pode se tornar um sistema de alto desempenho. Ao desenvolver um sistema de alto desempenho, é necessário determinar quais parâmetros definem o sistema como de alto desempenho. Se o sistema for de alto desempenho, então, para a sua implementação bem sucedida, devem ser tomadas medidas especiais para garantir o desempenho.
O curso examina as diferenças entre sistemas de alta carga, alta confiabilidade e alto desempenho.
O principal objetivo do curso é fornecer uma compreensão dos conceitos básicos, princípios e abordagens utilizadas no projeto de sistemas de alto desempenho.
Uma frase comum: “Deve funcionar rápido!” - isso não é um requerimento. Durante o treinamento, os participantes não apenas aprenderão por que isso não é um requisito, mas também aprenderão como trabalhar e analisar adequadamente os requisitos de desempenho. O curso também introduz os conceitos de “cenários críticos”. Os alunos consolidarão os conhecimentos adquiridos no trabalho com requisitos na prática durante um trabalho prático.
O curso examina os principais exemplos de perda de produtividade de sistemas de software. Depois disso, são apresentadas as principais formas de combater o desempenho do sistema. Ainda no âmbito da unidade curricular, são discutidos padrões utilizados na concepção de sistemas com requisitos acrescidos através de exemplos práticos de aplicação. desempenho, fornece informações sobre os principais antipadrões encontrados na implementação de sistemas de software que afetam produtividade.
É dada especial atenção à preparação do sistema para testes e análise dos resultados dos testes. Descreve a criação de um programa e metodologia para testar sistemas de alta carga, modelos de carga sistemas e discute uma metodologia que permite a avaliação quantitativa do desempenho sistemas.
Como os desenvolvedores de sistemas de software muitas vezes precisam resolver problemas de desenvolvimento de sistemas altamente carregados que processam grandes volumes de dados com dados os requisitos de tempos de resposta e volumes de dados processados, o curso será útil não apenas para arquitetos, mas também para gerentes de projetos de desenvolvimento, desenvolvedores.
1. Conceito de sistema de alto desempenho (2,5 horas):
Aplicativo de alto desempenho, aplicativo de alta carga, aplicativo de alta disponibilidade.
Gerenciamento de desempenho de aplicativos.
Dependência do preço da correção de erros do estágio de detecção e do estágio de introdução.
Características básicas que descrevem o desempenho do sistema.
Modelo de carga do sistema.
2. Análise de requisitos para sistemas de alto desempenho (1,5 horas)
Formação de requisitos não funcionais para sistemas de alto desempenho.
Lidar com contradições ao criar requisitos de desempenho.
Completude dos requisitos.
Oficina (1 hora):
Análise de requisitos quanto a inconsistência e completude.
2.1.Táticas arquitetónicas. Táticas de Produtividade (1,5 horas)
Características da formação de requisitos para sistemas de filas (QS).
3. Projeto de sistemas de alto desempenho (2 horas)
Atributos de qualidade do sistema.
Compensações ao trabalhar simultaneamente em vários atributos de qualidade: o exemplo do CAP e do PACELC.
Workshop: Análise do princípio de balanceamento de atributos de qualidade utilizando o exemplo do Amazon Dynamo DB (1 hora):
Consideração de abordagens para escalabilidade flexível do sistema usando o exemplo do Amazon Dynamo DB, mantendo o controle sobre a tolerância a falhas e mantendo o desempenho constante.
3.1. Abordagens clássicas de desempenho
As principais causas da perda de desempenho do sistema (1 hora).
Métodos básicos para aumentar o desempenho do sistema (1 hora).
Princípios de escalonamento horizontal e vertical de sistemas (0,5 h).
Oficina (2 horas):
Análise de um exemplo de escalonamento de sistema.
Convertendo um sistema monolítico para Map-Reduce.
Visão geral do Map-Reduce.
Convertendo Map-Reduce em arquitetura Lambda para reduzir os problemas da prática pura de Map-Reduce.
4. Padrões para implementação de sistemas de alto desempenho (5 horas)
As principais classes de padrões utilizados na construção de sistemas de alto desempenho: GRASP, padrões de arquitetura, padrões de integração de aplicativos.
Exemplos de implementação prática de templates em padrões modernos.
Exemplos de implementação prática de modelos em estruturas modernas de desenvolvimento de sistemas de integração.
5. Codificação de sistemas de alto desempenho (2 horas)
Questões básicas na codificação de sistemas de alto desempenho.
Métodos de otimização para compiladores modernos e ambientes de execução.
6. Testando sistemas de alto desempenho (2 horas)
Tipos de testes usados para comprovar o desempenho do sistema.
Preparação para testes (elaboração de cenários e criação de modelo de carga).
Análise dos resultados dos testes.
7. Metodologia SPE (1 hora)
Introdução à metodologia SPE. História, limites de uso.
Metodologia de análise de sistemas utilizando SPE.
Oficina (1 hora):
Consideração de um exemplo prático de utilização da metodologia SPE para:
Estimar os limites de desempenho do sistema com base nas características atuais de hardware e software;
Avaliar o impacto das decisões arquitetônicas no desempenho do sistema;
Estimativas de requisitos de hardware com base nos requisitos de desempenho, com base no dimensionamento dos processos atuais do sistema.