Disciplina Curricular

Engenharia de Sistemas de Larga Escala ESLE

Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda - MEIC-A 2015

Contextos

Grupo: MEIC-A 2015 > 2º Ciclo > Agrupamentos > Tecnologia dos Sistemas Informáticos

Período:

Peso

7.5 (para cálculo da média)

Objectivos

O desempenho e a escalabilidade são fatores chave no sucesso e adoção de serviços de Internet como a Google, Amazon, Microsoft, Facebook ou Netflix. O objetivo desta UC é dotar os alunos de capacidades e ferramentas para analisar o desempenho e escalabilidade de sistemas de larga escala de um modo geral, com ênfase em sistemas baseados em Computação em Nuvem. Durante a UC os alunos irão aprender a identificar os fatores que limitam a escalabilidade e desempenho de um sistema, através da monitorização e modelação do comportamento do sistema. Serão abordadas técnicas de desenho e conceção de benchmarks e simulações e como interpretar os resultados obtidos através da adequada representação das métricas obtidas. Os conhecimentos e técnicas adquiridas permitirão aos alunos desenhar sistemas escaláveis e de alto desempenho na nuvem, bem como analisar e melhorar sistemas existentes. Estes serão postos em prática através de casos de estudo concreto que explorar técnicas de Machine Learning, heterogeneidade de recursos e outras técnicas para prever comportamento futuro, fazer planeamento de capacidade e desenvolver sistemas auto adaptáveis. No final da UC, os alunos deverão ser capazes de: ● Conceber sistemas tendo em conta o desempenho e a escalabilidade e o desempenho ● Desenhar benchmarks para aferir corretamente o comportamento do sistema sobre várias cargas ● Medir, identificar e resolver limitações de desempenho (bottlenecks) ● Prever comportamento futuro para planeamento de capacidade ● Simular novos sistemas para aferir o seu desempenho antes da implementação e simular sistemas existentes para aferir o impacto de potenciais modificações.

Programa

1 - Introdução (2 aulas) - Introdução, desafios e erros típicos - Visão geral de um sistema baseado em Computação em Nuvem - Desafios de desempenho e escalabilidade em bases de dados NoSQL - Desafios de desempenho e escalabilidade em Network Virtual Functions (NVF) 2- Escalabilidade (2 aulas) - Conceitos fundamentais: escalabilidade, eficiência, elasticidade - Fatores que limitam a escalabilidade: - Contenção: relação e impacto da lei de Amdahl - Coerência: relação e impacto da Lei Universal da Escalabilidade 3 - Desempenho (5 aulas) - Propriedades de sistema: débito, latência, variabilidade, trabalho útil - Concorrência, escalonamento e sobrecarga - Identificação de limitações de desempenho (bottlenecks) - Técnicas para desempenho: loteamento, filas, atrasos, especulação, escalonamento 4 – Simulação (3 aulas) - Simulação discreta de eventos - Estruturas de gestão de eventos - Verificação e validação - Replicações e condições de paragem 5 - Benchmarking e planeamento de capacidade (5 aulas) - Benchmarking, macro e micro benchmarking - Seleção e desenho de cargas de trabalho - Métricas e representação de métricas - Parâmetros de escalabilidade - Fatores e técnicas de avaliação - Planeamento de capacidade 6- Sistemas auto-adaptáveis (4 aulas) - Propriedades - Operação e reconfiguração autonómica - Papel do Machine Learning nos sistemas modernos auto-adaptáveis - Descoberta automatizada de configurações - Políticas de adaptação 7 – Casos de estudo (2 aulas) - Exploração heterogeneidade para melhoria desempenho de bases de dados NoSQL - Previsão de desempenho usando Machine Learning - Planeamento de capacidade e sistemas auto-adaptáveis

Metodologia de avaliação

Exame (50%), Projeto (40%), Apresentação de artigo (10%)

Disciplinas Execução

2018/2019 - 1ºSemestre