
Sistemas de Computação em Cloud
Código
11174
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
6.0
Professor responsável
Nuno Manuel Ribeiro Preguiça, Paulo Orlando Reis Afonso Lopes
Horas semanais
4
Língua de ensino
Português
Objectivos
Conhecimentos
- Compreender os fundamentos dos sistemas de computação em Cloud
- Conhecer os centros de dados, as infra-estruturas (armazenamento, rede e computação) e as técnicas de virtualização de recursos
- Compreender os diferentes modelos de serviço Cloud (IaaS, PaaS, SaaS). Exemplos, sua realização e características
- Compreender os modelos de programação usados para desenvolvimento de aplicações que beneficiam de um ambiente de Cloud.
Aptidões e competências
- Saber identificar as classes de aplicações que i) beneficiam dos sistemas de computação de Cloud ii) as que podem (ou devem) ser executadas em infraestruturas on-site e iii) as que beneficiam de uma arquitectura híbrida
- Saber criar soluções que tirem partido das características dos serviços de Cloud e respectivos recursos.
- Saber avaliar soluções desenvolvidas em plataformas Cloud.
Pré-requisitos
O aluno deve ter presente as matérias de Fundamentos de SO, Redes de Computadores e Sistemas Distribuídos.
Conteúdo
1- Introdução e motivação: aplicações tipo e seus requisitos. Características dos sistemas de suporte: componentes e modelos de serviço.
2- Infraestruturas e Centros de Dados. Perspetiva histórica. Infra-estruturas de computação, de rede e de armazenamento.
3- Virtualização de recursos para uma infraestrutura elástica. Tecnologias de virtualização de hardware. Gestão de recursos, orquestração, particionamento e partilha. Containers, uma solução leve para o empacotamento e distribuição de aplicações.
4- Serviços de Cloud nos domínios da computação, do armazenamento e do suporte de aplicações distribuídas. Conceitos e realização. Aspectos de custo, elasticidade, desempenho, disponibilidade, gestão e privacidade.
5- Modelos de programação e exploração das plataformas mais comuns. Casos de estudo: Microsoft Azure, Amazon AWS e Google AppEngine; processamento de grandes volumes de dados usando MapReduce.
Bibliografia
Cloud Computing: Theory and Practice, Dan C. Marinescu, Morgan Kaufman-Elsevier, 2013.
The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, Luiz André Barroso, Jimmy Clidaras, Urs Hölzle, Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers, 2013.
Artigos seleccionados de revistas e/ou conferências.
Método de ensino
O programa é desenvolvido através de sessões teóricas e sessões laboratoriais. Nas primeiras, são apresentados e enquadrados os temas tratados, incentivando-se a perspectiva crítica do aluno, na identificação dos modelos de computação genéricos dos sistemas tratados, nos seus aspectos comuns e diferenciadores e na sua confrontação com o estudo de casos de sistemas existentes concretos. Essas dimensões são aprofundadas através da realização de um conjunto de trabalhos práticos, de natureza laboratorial, nos quais os alunos desenvolvem e avaliam experimentalmente soluções a nível da concepção de aplicações e da gestão dos ambientes computacionais característicos.
A avaliação assenta em testes presenciais individuais e em trabalhos laboratoriais ao longo do semestre, em grupos, havendo um relatório escrito por cada trabalho e sua discussão oral.