Mário M. Freire
         Full Professor (Professor Catedrático)

           Department of Computer Science, University of Beira Interior
           Rua Marquês de Ávila e Bolama, 6201-001 Covilhã, Portugal

           E-mail addresses: mfreire(at)computer.org  or  mfreire(at)acm.org  or  mario(at)di.ubi.pt



Tecnologias Cloud e Data Center / Cloud Technologies and Datacenter 2019/2020
Mestrado em Engenharia Informática / MS in Computer Science and Engineering

"Be. If you can not be a pine on the top of a hill, be a bush in the valley but be the best bush to the stream bank. Be a branch if you can not be a tree. If you can not be a branch, be a little grass and give joy to some way. If you can not be a highway, Be just a path, if you can not be the sun, be a star. It is not by size that you will have success or failure ... But be the best in whatever you are."

Pablo Neruda (1904-1973), Chilean poet-diplomat and politician.

Objectivos de Aprendizagem, Conteúdos programáticos, Avaliação e Bibliografia / Learning outcomes, Syllabus, Evaluation and Grading and Bibliography


Objectivos de Aprendizagem / Learning outcomes
O objetivo da unidade curricular consiste em dotar os estudantes de uma perspetiva ampla e integradora das tecnologias de virtualização e de centros de dados. No final da unidade curricular o estudante deve ser capaz de sistematizar uma abordagem às diversas tecnologias de virtualização e de centros de dados, que ofereça às aplicações e serviços elevada disponibilidade, maior flexibilidade, melhor utilização de recursos, maior escalabilidade e adaptabilidade e redução de custos. O estudante deve ser capaz de avaliar escolhas, soluções e compromissos envolvidos no desenvolvimento, instalação, utilização e gestão de infraestruturas virtualizadas e de centros de dados.
The aim of the course is to provide students with a broad and integrative perspective of virtualization and datacenter technologies. At the end of the course, students should be able to systematize an approach to the various virtualization and datacenter technologies that provide applications and services with high availability, greater flexibility, better resource utilization, greater scalability and adaptability, and reduced costs. Students should be able to assess the choices, solutions and commitments involved in the development, deployment, use and management of virtualized infrastructures and datacenters.

Conteúdos programáticos / Syllabus
Perspetiva geral sobre a adoção de tecnologias de virtualização e de computação em nuvem. Conceitos e níveis de implementação de virtualização. Estruturas, ferramentas e mecanismos de virtualização ao nível de hardware. Virtualização de recursos. Virtualização ao nível do sistema operativo. Virtualização de clusters e gestão de recursos. Virtualização para automação de centros de dados. Projeto de centros de dados. Projeto arquitetónico de nuvens. Redes em ambientes em nuvem. Gestão de recursos entre nuvens. Aspetos de segurança e gestão da confiança em nuvens.
General overview of the adoption of virtualization and cloud computing technologies. Concepts and implementation levels of virtualization. Hardware-level virtualization structures, tools, and mechanisms. Resource virtualization. Virtualization at the operating system level. Virtualization of clusters and resource management. Virtualization for datacenter automation. Design of datacenters. Architectural design of clouds. Networks in cloud environments. Inter-cloud resource management. Cloud security and trust management.

Métodos e Critérios de Avaliação / Evaluation and Grading
Teste de avaliação de conhecimentos/Exame: 40%.
Trabalho teórico-prático: 20%.
Projeto laboratorial ou de campo: 40% (Relatório: 20%, Discussão: 20%).

Teste de avaliação de conhecimentos/Exame: Teste com consulta com duração de 1 hora; Teste constituído por 20 perguntas com 4 opções das quais apenas uma está correta; Respostas erradas não descontam sobre a pontuação dessas questões.
Trabalho teorico-prático: Trabalho realizado em grupo, sendo cada grupo constituído por 2 estudantes; Deve ser elaborado um relatório sobre um tema para exploração teórica e experimental; O relatório será avaliado com base na qualidade, abrangência, profundidade e valor de síntese no contexto do tema.
Projeto laboratorial ou de campo: Trabalho laboratorial realizado em grupo durante as aulas práticas, sendo cada grupo constituído (no máximo) por 2 estudantes. O relatório deste trabalho é apresentado e discutido na aula prática, sendo a nota de cada estudante atribuída individualmente.

Written test/Exam: 40%.
Theoretical-practical work: 20%.
Field or laboratory projects: 40%.

Written test/Exam: Test with open book with duration of 1 hour; The test comprises 20 questions with four options of which only one is correct; Wrong answers do not discount on the score of a given question.
Theorectical work: Work to be carried out in a group, each group consisting of 2 students; A report on a theme for therectical ans experimental exploration should be drawn up; The report will be evaluated based on the quality, breadth, depth and value of synthesis in the context of the theme.
Field or laboratory project: Work to be carried out in group during practical lectures, each group consisting of 2 students. The report of this work is presented and discussed in a practical lecture, being each student grade assigned individually.

Trabalho teórico-prático/Theorectical-practical work
Enunciado do Projeto Teórico Prático – Instalação, configuração e Análise de Desempenho do Docker
Cada grupo deve elaborar um relatório, no qual, de forma clara, rigorosa e pedagógica, descreve o objecto de estudo e eventuais perspectivas de desenvolvimento futuro do tema escolhido. O relatório deve ser escrito usando o template do IEEE disponível na parte do projeto laboratorial e deve ter, no máximo, 8 páginas. O relatório deve ser enviado por email, para o endereço mario@di.ubi.pt e com subject TCDC 2019/2020 – Trabalho Teórico-Prático, até às 23:59 do último dia indicado para envio do trabalho.

Projetos Laboratoriais/Lab Projects
Enunciado do Projeto Laboratorial – Análise de desempenho de um hypervisor nativo ou de um host-based hypervisor
Este trabalho é objeto de relatório, cujo template e estrutura são descritos a seguir. O relatório deve ser enviado por email para mario@di.ubi.pt até 17 de junho de 2020 e deve ser apresentado e discutido numa das aulas práticas seguintes. A apresentação em formato powerpoint deve ser enviada até 24 horas antes da respetiva discussão. O tempo máximo para a apresentação é de 15 minutos e o tempo máximo para discussão é de 10 minutos. Para a realização deste trabalho, é aconselhada a leitura da dissertação "Comparação do Desempenho de Infraestruturas Virtualizadas de Elevada Disponibilidade Usando Hypervisors Nativos ou Containers: Microsoft Hyper-V Versus Docker", UBI, 2018.

Template e Estrutura do Relatório do Projeto
Template de Artigos de Conferência do IEEE
Estrutura do Relatório do Projeto em 8 Páginas:
Título (<8 palavras): deve centrar-se no tópico, ser curto, claro e eye-catching; Autores e filiações (em 1-2 linhas após o título).
Abstract (<50 ~ 100 palavras): deve explicitar os objetivos da investigação, resumir os resultados da investigação e destacar as contribuições inovadoras.
Introdução (incluindo o título, abstract) (1 página): deve motivar os leitores para ler o resto do artigo e prepará-los com o background necessário.
Arquitetura, algoritmos, métodos, protocolos, resultados analíticos e exemplo ilustrado, etc. (2 páginas).
Configuração experimental (3 páginas): arquitetura do sistema implementado, detalhes de instalação e configuração, benchmarks e conjunto de dados utilizado.
Resultados experimentais 1 páginas): em figuras ou tabelas e respetivas interpretações e análise de desempenho.
Conclusões e Referências (1 página): Conclusões e lista de artigos relevantes referenciados no texto.

Bibliografia de Apoio à Unidade Curricular / Bibliography
Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Kai Hwang, Jack Dongarra, Geoffrey C. Fox (Authors), Morgan Kaufmann, 1st edition, 2011, ISBN-13: 978-0123858801, 672 pages.
Guide to Reliable Distributed Systems: Building High-Assurance Applications and Cloud-Hosted Services, Kenneth P. Birman (Author), Springer, 2012, ISBN-13: 978-1447124153, 730 pages.
Cloud Computing: A Hands-On Approach, Arshdeep Bahga, Vijay Madisetti (Authors), Vijay Madisetti, 2014, ISBN-13: 978-0996025508, 456 pages.


Plano das Aulas Teóricas / Schedule

Aula 1 (fevereiro 19, 2020, 11:00-13:00, sala 6.20).

Sumário: Apresentação do professor aos estudantes. Indicação do horário de atendimento e da localização do gabinete do professor. Objectivos de Aprendizagem. Conteúdos programáticos. Método de avaliação. Bibliografia de apoio à unidade curricular.

Aula 2 (fevereiro 26, 2020, 11:00-13:00, sala 6.20).

Sumário: Perspetiva geral sobre a adoção de tecnologias de virtualização e de computação em nuvem.

Aula 3 (março 4, 2020, 11:00-13:00, sala 6.20).

Sumário: Conceitos e níveis de implementação de virtualização.
Conceito de virtualização, máquinas virtuais (VM) e middleware de virtualização. Níveis de implementação de virtualização e respetivo mérito relativo. Máquinas virtuais versus containers.

Aula 4 (março 11, 2020, 11:00-13:00, sala 6.20).

Sumário: Suporte de virtualização ao nível do sistema operativo.
Motivação, funcionamento, vantagens e desvantagens, virtualização em plataformas Linux ou Windows. Linux containers, Docker, Docker em modo Swarm, Kubernetes, Kubernetes/Containers-as-a-Service.

Aula 5 (março 18, 2020, 11:00-13:00, sala 6.20).

Sumário: Estruturas, ferramentas e mecanismos de virtualização ao nível de hardware.
Requisitos de projeto de Hypervisors e comparação de Hypervisors: VMware Workstation, VMware ESX, Xen e QEMU/KVM. Tipos de hypervisors (hypervisors nativos ou bare-metal versus hosted hypervisors), arquiteturas de hypervisors (arquiteturas micro-kernel versus arquiteturas monolíticas, a arquitetura Xen), hosted hypervisors, hypervisors nativos com virtualização total e tradução binária, hypervisors nativos com paravirtualização e suporte de compilação.

Aula 6 (março 25, 2020, 11:00-13:00, sala 6.20).

Sumário: Virtualização de recursos.
Virtualização assistida por hardware, virtualização de CPU, virtualização de memória, virtualização de entradas/saídas, virtualização de processadores multicore.

Aula 7 (abril 1, 2020, 11:00-13:00, sala 6.20).

Sumário: Virtualização de clusters e gestão de recursos.
Clusters físicos versus clusters virtuais, etapas para migração em serviço de máquinas virtuais e impacto no desempenho, migração de memória, ficheiros e recursos de rede, instalação dinâmica de clusters virtuais.

Aula 8 (abril 15, 2020, 11:00-13:00, sala 6.20).

Sumário: Virtualização para automação de centros de dados. Consolidação de servidores em centros de dados, gestão de armazenamento virtual, gestão de infraestrutura virtual e sistemas operativos para centros de dados virtualizados.

Aula 9 (abril 22, 2020, 11:00-13:00, sala 6.20).

Sumário: Projeto de centros de dados
Projeto de datacenters à escala de warehouses; redes intradatacenter, datacenters modulares em contentores, aspetos de gestão de datacenters.

Aula 10 (abril 29, 2020, 11:00-13:00, sala 6.20).

Sumário: Projeto arquitetónico de nuvens.
Projeto genérico da arquitetura de uma cloud, desenvolvimento arquitetónico de uma nuvem em camadas, suporte de virtualização e disaster recovery, desafios do projeto arquitetónico.

Aula 11 (maio 6, 2020, 11:00-13:00, sala 6.20).

Sumário: Redes em ambientes cloud.
Arquitetura de rede de um datacenter, software defined networks, virtualização de equipamento de rede, network functions virtualization, mobile cloud networking, fog computing and networking, networking-as-a-service.

Aula 12 (maio 13, 2020, 11:00-13:00, sala 6.20).

Sumário: Realização e correção da frequência.

Aula 13 (maio 20, 2020, 11:00-13:00, sala 6.20).

Sumário: Gestão de recursos entre nuvens.
Serviços de computação em nuvem estendidos, fornecimento de recursos e instalação de plataformas, criação e gestão de máquinas virtuais, partilha de recursos em nuvem.

Aula 14 (maio 27, 2020, 11:00-13:00, sala 6.20).

Sumário: Aspetos de segurança e gestão da confiança em núvens.
Estratégias de defesa da segurança em nuvens, deteção distribuída de intrusos/anomalias, técnicas de proteção de dados e de software, isolamento e sandboxing, problemas de segurança específicos a tecnologias de virtualização, gestão da confiança em centros de dados virtualizados, proteção guiada por reputação de centros de dados.

Aula 15 (junho 3, 2020, 11:00-13:00, sala 6.20).

Sumário: Visita ao datacenter da Altice.



“One of the problems of being a pioneer is you always make mistakes and I never, never want to be a pioneer. It’s always best to come second when you can look at the mistakes the pioneers made”.

Seymour Cray (1925-1996), Public Lecture at Lawrence Livermore Laboratories on the introduction of the CRAY-1, 1976.
Last update: 2020/02/18.