Disciplina

Área

Área Científica de Arquitectura e Sistemas Operativos > Sistemas Operativos e Sistemas Distribuídos

Activa nos planos curriculares

MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Gestão de Serviços de It > Engenharia de Sistema de Larga Escala

MEIC-T 2018 > MEIC-T 2018 > 2º Ciclo > Agrupamentos > Gestão de Serviços It > Engenharia de Sistema de Larga Escala

METI 2021 > METI 2021 > 2º Ciclo > Área Principal > Especializações > Especialização em Gestão de Redes e Sistemas > Informática > Engenharia de Sistema de Larga Escala

MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Gestão de Serviços de It > Engenharia de Sistema de Larga Escala

MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Tecnologia dos Sistemas Informáticos > Engenharia de Sistema de Larga Escala

MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Tecnologia dos Sistemas Informáticos > Engenharia de Sistema de Larga Escala

METI 2018 > METI 2018 > 2º Ciclo > Áreas de Especialização > Gestão das Redes, da Informação e dos Serviços > Engenharia de Sistema de Larga Escala

Nível

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

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

3.0 h/semana

1.5 h/semana

147.0 h/semestre

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%)

Pré-requisitos

Componente Laboratorial

Princípios Éticos

Componente de Programação e Computação

Componente de Competências Transversais

Bibliografia

Principal

The Art of Computer Systems Performance Analysis Techniques For Experimental Design Measurements Simulation And Modeling

Raj Jain

Apr 1991

ISBN: 978-0-471-50336-1


Principles of Computer System Design An Introduction

Jerome H. Saltzer, M. Frans Kaashoek

Jun 2009

Morgan Kaufmann_eBook ISBN: 9780080959429; Paperback ISBN: 9780123749574


Guerrilla Capacity Planning - A Tactical Approach to Planning for Highly Scalable Applications and Services

Neil J. Gunther

2007

ISBN 978-3-540-31010-5


Secundária

Adicional papers will be announced through Fénix

NA

NA

NA