Sistemas de Computação em Cloud

Objectivos

Conhecimentos
* Compreender os fundamentos dos sistemas de computação em Cloud
* Compreender os diferentes modelos de serviço Cloud (IaaS, PaaS, SaaS). Exemplos, sua realização e características.
* Conhecer os centros de dados, as infraestruturas e compreender as restrições impostas.
* Conhecer os serviços disponíveis nas plataformas cloud, como funcionam e como podem ser usados.
* Conhecer as técnicas de virtualização de recursos.

Aptidões e competências
* Saber identificar as classes de aplicações que beneficiam dos sistemas de computação de Cloud.
* 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.

Caracterização geral

Código

11174

Créditos

6.0

Professor responsável

Nuno Manuel Ribeiro Preguiça

Horas

Semanais - 4

Totais - 56

Idioma de ensino

Inglês

Pré-requisitos

Conhecimentos de programção e sistemas distribuídos.

Conhecimentos de paralelismo são benéficos.

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

Nas aulas teóricas explicam-se e discutem-se os tópicos do programa da cadeira. A abordagem consiste em apresentar, para cada tópico, a motivação/problema e soluções. Nesta apresentação procura-se discutir também as restrições que levaram a uma dada solução e as possíveis alternativas. Adicionalmente, apresentam-se exemplos de como usar as soluções apresentadas para nod esenvolvimento de aplicações.

As aulas práticas acompanham os projectos da cadeira, fornecendo aos alunos a experiência sobre como é que os conceitos introduzidos na cadeira podem ser aplicados na prática. Desta forma, nas aulas práticas apresentam-se exemplos dos vários tópicos abordados nas teódicas e faz-se a ligação destes com os trabalhos que os alunos realizam ao longo da disciplina.

 

 

Método de avaliação

Dois testes - 25% cada
Nota mínima para aprovação: 8,0

Projeto principal: 40% : grupos de 2 estudantes
Nota mínima para ter frequência: 8,0

Projeto 2: 10%

Conteúdo

1. Introdução
1.1 Desafios e motivação
1.2 Modelos
1.3 Elementos dum sistema cloud
2. Serviços de armazenamento
2.1 Armazenamento de blocos e sistemas de ficheiros 
2.2 Bases de dados Cloud: repositórios chave-valor e bases de dados
3. Serviços de caching
3.1 Cache da aplicação
3.2 Content-distribution networks
4. Serverless computing
4.1 Supporte para micro-serviços
4.2 Function-as-a-Service
5. Processamento de dados
5.1 Serviços de filas de espera
5.2 Serviços de processamento em batch
5.3 Introdução ao processamento em stream
6. IaaS
6.1 Virtualização
6.2 Containers
6.3 Implantação em agregados (Kubernetes)
7. Redes de computadores
7.1 Redes virtuais
8. Segurança
8.1 Serviços de autenticação
8.2 Privacidade e segurança
9. Infraestrutura
9.1 O centro de dados físico
9.2 Arquiteturas avançadas: cloud híbrida
9.3 Computação na edge

Cursos

Cursos onde a unidade curricular é leccionada: