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



Topics on Virtualization and Cloud Computing / Tópicos de Virtualização e Computação em Nuvem 2020/2021
PhD 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.

Descrição da Unidade Curricular e Método de Avaliação / Course Description, Evaluation and Grading


Objetivos Gerais e Resultados de Aprendizagem / Course Objectives
O objetivo da unidade curricular consiste em dotar os estudantes de uma perspetiva ampla do estado da arte em arquiteturas de computação na cloud e de dotar os estudantes de competências que lhes permitam identificar problemas em aberto e realizar investigação científica nesta área. No final da unidade curricular o estudante deve ser capaz de caracterizar o estado da arte e conhecer as fronteiras do conhecimento em tópicos de arquiteturas de computação na cloud, deve ser capaz de identificar problemas em aberto nesse domínio e capaz de formular possíveis soluções para esses problemas.
The aim of the course is to provide students with a broad perspective on the state of the art of architectures for cloud computing and to provide students with skills to identify open problems and to conduct research in this area. At the end of the course the student should be able to characterize the state of the art and know the boundaries of knowledge on some topics of architectures for cloud computing, should be able to identify open problems in the field and be able to formulate possible solutions to those problems.

Programa / Syllabus
Perspetiva geral sobre computação na cloud. Virtualização de sistemas. Virtualização de redes. Colocação e migração de máquinas virtuais. Prevenção de desempenho anómalo e tolerância a faltas em computação na cloud. Multi-clouds. Armazenamento de dados em clouds. Cloudificação de aplicações legadas. Bigdata. Aspetos de segurança em computação na cloud.
Overview of cloud computing. System virtualization. Network virtualization. Virtual machine placement and migration. Prevention of anomaly performance. Multi-clouds. Data storage in clouds. Cloudification of legacy applications. Bigdata. Security issues in cloud computing.

Actividades de Ensino-Aprendizagem e Metodologias Pedagógicas / Planned Learning Activities and Teaching Methods
As aulas de contacto desta unidade curricular são baseadas em orientação tutorial. Pretende-se debater temas baseados em artigos científicos, direções de investigação e esclarecer dúvidas concretas apresentadas pelos estudantes após estes terem feito o estudo prévio dos artigos.
Língua da unidade curricular: Português ou Inglês. O suporte tutorial está apenas disponível em inglês.
Lectures of this course are based on tutorials. It is intended to discuss topics based on scientific articles and research directions and clarify specific doubts presented by students after previous study of the papers.
Couse language: Portuguese or English. Tutorial support is only available in English.

Métodos e Critérios de Avaliação / Evaluation and Grading
Análise crítica e discussão de 2 artigos de investigação nas aulas (durante as aulas 4 a 13): 50%.
Realização e discussão de um trabalho orientado para investigação: 50%.
Critical analysis and discussion of 2 research papers in lectures (during lectures 4-13): 50%.
Accomplishment and discussion of a research-oriented work: 50%.

Formulário para a Análise Crítica dos Artigos de Investigação / Review Form for the Critical Analysis of the Research Papers
As revisões dos artigos devem ser enviadas em formato pdf por e-mail ao insctructor através do email mario@di.ubi.pt até um dia antes da aula em que o paper vai ser discutido. A revisão deve incluir os seguintes campos: Nome do aluno, Nome do paper, Breve resumo do artigo, Pontos fortes do paper, Pontos fracos do paper, Análise crítica e comentários, Duas questões de investigação interessantes sobre o papel.
Reviews must be sent in pdf format by email to the insctructor at mario@di.ubi.pt by one day before the lecture where the paper is going to be discussed. The review must include the following fields: Name of the student, Name of the paper, Short summary of the paper, Main streghts of the paper, Main weaknesses of the paper, Critical analysis and comments, Two interesting research questions about the paper.

Trabalho Orientado para Investigação / Research-oriented Work
O trabalho orientado para investigação pode ser um de 3 tipos: i) Projeto laboratorial que explora aspetos de investigação envolvendo instalação, configuração e gestão de um failover cluster baseado em hypervisors nativos (Xen, KVM/Qemu ou Microsoft Hyper V) ou containers (Docker, Swarm) e/ou um sistema cloud (OpenStack). ii) Trabalho de simulação envolvendo a resolução de um problema de investigação usando o CloudSimPlus. É recomendada a leitura deste artigo e desta dissertação. iii) Elaboração de um survey paper ao nível da ACM Computing Reviews, no qual, de forma clara, rigorosa e pedagógica, o estudante descreve o objecto de estudo e eventuais perspectivas de desenvolvimento futuro do tópico em estudo. O título do survey deve centrar-se no tópico, ser curto, claro e eye-catching. Para a elaboração do survey, o estudante deve seguir as instruções para autores e o formato disponíveis em Author Guidelines. Cada estudante pode enviar uma proposta de trabalho orientado para investigação, enquadrado dentro de um destes três tipos de trabalhos, de acordo com os seus interesses de investigação, para o endereço de email: mario@di.ubi.pt, até 31 de outubro. Cada proposta de trabalho orientado para investigação deve conter, numa página A4, o título do trabalho, o nome e o número do estudante, os objetivos e uma breve descrição do trabalho a desenvolver. Aos estudantes que não proponham um trabalho, será atribuído pelo docente um trabalho orientado para investigação na aula do dia 3 de novembro.
O trabalho orientado para investigação é realizado individualmente e pode ser defendido durante as aulas ou em exame. A apresentação e discussão do trabalho inclui a apresentação do trabalho, com duração máxima de 20 minutos, e a discussão do trabalho, com duração máxima de 10 minutos. Cada estudante deve indicar no acetato de rosto da apresentação o título do trabalho, o respetivo nome e número de estudante e deve enviar a respetiva apresentação, com a descrição do trabalho realizado, num ficheiro em formato pdf ou MS power point, usando o template disponível aqui, até 24 horas antes da hora marcada para apresentação e discussão do trabalho, para o email: mario@di.ubi.pt.
The research-oriented work can be one of three types: i) A laboratory project that explores research aspects involving installation, configuration and management of a failover cluster based on native hypervisors (Xen, KVM/Qemu or Microsoft Hyper V) or containers (Docker , Swarm) and/or a cloud system (OpenStack). ii) Simulation work involving solving a research problem using the CloudSimPlus. It is recommended the reading of this article and this dissertation. iii) Elaboration of a survey paper, in which, in a clear, rigorous and pedagogical way, the student describes the object of study and possible perspectives of future development of the topic under study. The title of the survey should focus on the topic, be short, clear and eye-catching. For the preparation of the survey, the student should follow the instructions for authors and the format available at Author Guidelines. Each student may submit a proposal for a research-oriented work within one of these three types of work, according to his/her research interests, to the email address: mario@di.ubi.pt, by October 31. Each proposal for research-oriented work must contain, on an A4 page, the title of the work, the name and number of the student, the objectives and a brief description of the work to be carried out. The instructor will assign research-oriented work proposals, in the lecture of November 3, to students who have not proposed research-oriented works.
The research-oriented work is performed individually and can be defended during lectures or in exam. The presentation and discussion of the work includes the presentation of the work, with a maximum duration of 20 minutes, and discussion of the work, with a maximum duration of 10 minutes. Each student must indicate on the first slide of the presentation the student's name and number and must send the presentation, with the description of the work done, in a file in pdf or MS power point format, using the template available here, by 24 hours before the scheduled time for presentation and discussion of the work, to the email: mario@di.ubi.pt.


Plano das Aulas Teóricas / Schedule

Lecture 1 (September 22, 2021, 11:00-12:00, room 6.04).

Sumário: Apresentação do Professor aos Estudantes. Indicação da localização do gabinete do professor e do horário de atendimento. Objectivos da unidade curricular e competências a adquirir. Conteúdos programáticos. Método de avaliação. Bibliografia de apoio à unidade curricular.

Lecture 2 (September 29, 2021, 11:00-12:00, room 6.04).

Sumário: Perspetiva geral sobre computação na cloud.
Abstract: Overview of cloud computing. Required Reading:
A View of Cloud Computing by Michael Armbrust et al. Communications of the ACM, Vol. 53 No. 4, pages 50-58, 2010.
Above the Clouds: A Berkeley View of Cloud Computing by Michael Armbrust et al., Technical Report No. UCB/EECS-2009-28 , University of California at Berkeley.
Trends and Challenges in Cloud Datacenters by Kashif Bilal et al., IEEE Cloud Computing, May 2014, pages 50-58.
Fog computing: A Cloud to the Ground Support for Smart Things and Machine-to-machine Networks by Ivan Stojmenovic, Proceedings ATNAC 2014, 26-28 November 2014, pages 117-122.
Seamless Integration of Cloud and Fog Networks by Igor Duarte Cardoso et al., 2015 1st IEEE Conference on Network Softwarization (NetSoft), 13-17 April 2015, 9 pages.
Key Ingredients in an IoT Recipe: Fog Computing, Cloud computing, and more Fog Computing by M. Yannuzzi et al., Proceedings CAMAD 2014, 1-3 December 2014, pages 325-329.

Lecture 3 (October 6, 2021, 11:00-12:00, room 6.04).

Sumário: Virtualização ao nível do hardware.
Abstract: Hardware-level virtualization. Required Reading:
Xen and the Art of Virtualization by Paul Barham et al., Proceedings of the nineteenth ACM symposium on Operating systems principles (SOSP '03), pages 164-177, ACM New York, NY, USA, 2003.
Server Consolidation Techniques in Virtualized Data Centers: A Survey by A. Varasteh and M. Goudarzi, IEEE Systems Journal, 2015.
The Xen-Blanket: Virtualize Once, Run Everywhere by Dan Williams et al. in Proceedings of the 7th ACM European Conference on Computer Systems (EuroSys '12), 113-126, 2012 ( Author Version and Poster).

Lecture 4 (October 13, 2021, 11:00-12:00, room 6.04).

Sumário: Containers.
Abstract: Containers. Required Reading:
Containers and Cloud: From LXC to Docker to Kubernetes, David Bernstein in IEEE Cloud Computing, 1(3): 81-84, 2014).
Container Security: Issues, Challenges, and the Road Ahead by Sari Sultan, Imtiaz Ahmad, Tassos Dimitriou in IEEE Access, 7: 52976 - 52996, 2019.
Docker Swarm and Kubernetes in Cloud Computing Environment by Nikhil Marathe, Ankita Gandhi, Jaimeel M Shah, in Proceedings of 2019 3rd International Conference on Trends in Electronics and Informatics (ICOEI), 2019.

Lecture 5 (October 27, 2021, 11:00-12:00, room 6.04).

Sumário: Colocação e migração de máquinas virtuais. Prevenção de desempenho anómalo. Tolerância a faltas em computação na nuvem.
Abstract: Virtual machine placement and migration. Fault tolerance in cloud computing
Approaches for Optimizing Virtual Machine Placement and Migration in Cloud Environments: A Survey by Manoel filho et al. in Journal of Parallel and Distributed Computing, 2017. PREPARE: Predictive Performance Anomaly Prevention for Virtualized Cloud Systems by Yongmin Tan et al. in Proceedings of 2012 IEEE 32nd International Conference on Distributed Computing Systems (ICDCS), 285-294, 2012.
Fault Tolerance Management in Cloud Computing: A System-Level Perspective by Ravi Jhawar et al. in IEEE Systems Journal, Volume: 7 Issue: 2, 288 - 297.

Lecture 6 (November 3, 2021, 11:00-12:00, room 6.04).

Sumário: Computação na Periferia.
Abstract: Edge Computing. Required Reading:
Edge computing: A survey by Wazir Zada Khana, Ejaz Ahmedb, Saqib Hakak, Ibrar Yaqoob, Arif Ahmed in Future Generation Computer Systems, 97: 219-235, 2019.

Lecture 7 (November 10, 2021, 11:00-12:00, room 6.04).

Sumário: Computação Sem Servidor.
Abstract: Serverless Computing. Required Reading:
A Survey on Serverless Computing and Its Implications for JointCloud Computing by Mingyu Wu, Zeyu Mi, Yubin Xia in Proceedings of 2020 IEEE International Conference on Joint Cloud Computing, 94-101.
Serverless Programming (Function as a Service) by Paul Castro, Vatche Ishakian, Vinod Muthusamy, Aleksander Slominski in Proceedings of 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS), 2658-2659.
ChainFaaS: An Open Blockchain-Based Serverless Platform by Sara Ghaemi, Hamzeh Khazaei, Petr Musilek in IEEE Access, 8: 131760 - 131778, 2020.
Function-as-a-Service performance evaluation: A multivocal literature review by Joel Scheuner Philipp Leitner in Journal of Systems and Software, 170: 110708, 2020.

Lecture 8 (November 17, 2021, 11:00-12:00, room 6.04).

Sumário: Cloudificação de aplicações legadas.
Abstract: Cloudification of legacy applications. Required Reading:
A Practical Architecture of Cloudification of Legacy Applications by Dunhui Yu et al. in Proceedings of 2011 IEEE World Congress on Services, 17-24, 2011.
Cloudifying Apps-A Study of Design and Architectural Considerations for Developing Cloudenabled Applications with Case Study by V. Nuthula et al. in Proceedings of 2014 IEEE International Conference on Cloud Computing in Emerging Markets (CCEM), 1-7, 2014.
Cloudifying User-Created Content for Existing Applications in Mobile Devices by S. Ghosh et al. in Proceedings of 2011 IEEE 35th Annual Computer Software and Applications Conference (COMPSAC), 510-515, 2011.
Conceção de Arquiteturas para Cloud Computing : Casos de Demonstração da Utilização do Modelo de Referência do NIST by Manuel Pereira, Dissertação de Mestrado Integrado em Comunicações, Universidade do Minho, 2013.

Lecture 9 (November 24, 2021, 11:00-12:00, room 6.04).

Sumário: Arquitetura de microsserviços.
Abstract: Microservice architectures. Required Reading:
Extraction of Microservices from Monolithic Software Architectures by Genc Mazlami, Jürgen Cito, Philipp Leitner in 2017 IEEE International Conference on Web Services (ICWS).
Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation by Davide Taibi, Valentina Lenarduzzi, Claus Pahl in IEEE Cloud Computing, 4(5): 22-32, September/October 2017.
Migrating Towards Microservice Architectures: An Industrial Survey by Paolo Di Francesco; Patricia Lago; Ivano Malavolta in 2018 IEEE International Conference on Software Architecture (ICSA).
The SPEC-RG Reference Architecture for FaaS: From Microservices and Containers to Serverless Platforms by Erwin van Eyk et al. in IEEE Internet Computing, 23(6): 7-18, Nov.-Dec. 2019.

Lecture 10 (December 15, 2021, 11:00-12:00, room 6.04).

Sumário: Processamento de bigdata streams.
Abstract: Bigdata stream processing. Required Reading:
Big Data: A Survey by Min Chen et al. in Mobile Networks and Applications, 19(2): 171-209, 2014.
A Survey of Distributed Data Stream Processing Frameworks by Tariq Abughofa, Sazia Mahfuz, Dharmitha Ajerla, Farhana Zulkernine, and Shahzad Khan in IEEE Access, 7: 154300 - 154316, 2019.
Challenges and Solutions for Processing Real-Time Big Data Stream: A Systematic Literature Review by Erum Mehmood, Tayyaba Anees in IEEE Access, 8: 119123 - 119143, 2020.

Lecture 11 (January 5, 2022, 11:00-12:00, room 6.04).

Sumário: Aspetos de segurança em computação na cloud.
Abstract: Security issues in cloud computing. Required Reading:
Security Issues in Cloud Environments: A Survey by Diogo Fernandes et al. in International Journal of Information Security (Springer), 13(2): 113-170, 2014.

Lecture 12 (January 12, 2022, 11:00-12:00, room 6.04).

Sumário: Apresentação e discussão dos trabalhos orientados para a investigação.
Abstract: Presentation and discussion of research-oriented works.



“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: 2021/09/21.