Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Aplicações e Serviços de Computação em Nuvem

14600 [ME78ME7800006538]

Mestrado em Engenharia Informática [MEINF]

S1

João Tiago Medeiros Paulo

Objetivos

O objetivo da UC de Aplicações e Serviços de Computação em Nuvem é providenciar aos alunos, numa primeira fase, os conceitos fundamentais sobre a organização e características atuais de infraestruturas e serviços de computação em nuvem, com o objetivo de compreender a organização interna e gestão de infraestruturas e serviços de Computação em Nuvem. Quando se fala de computação em nuvem estão quase sempre implícitas garantias de alta escalabilidade e disponibilidade, pelo que nesta componente da UC tem como objetivo compreender conceitos de escalabilidade e disponibilidade de aplicações e serviços distribuídos. Dois conceitos fundamentais para garantir as propriedades anteriores, e que estão presentes nestes serviços desde o seu início, são a virtualização e gestão de dados das aplicações. Desta forma o conteúdo programático contempla o ensino de conceitos fundamentais em cada um destes tópicos, o que permitirá aos alunos: Adquirirem conhecimentos sobre virtualização e sobre a gestão de dados/armazenamento distribuído e de grande escala. Ainda, a instalação de aplicações escaláveis, e portanto necessariamente distribuídas, rapidamente deixa de ser praticável se feita de forma manual. Desta forma a unidade curricular irá abordar o tópico de aprovisionamento e instalação de aplicações serviços de computação em Nuvem, o qual irá fornecer aos estudantes competências extremamente relevantes e necessárias atualmente na configuração, instalação e manutenção da operacionalidade de aplicações num ambiente distribuído. Por fim, a unidade curricular irá abordar os tópicos de monitorização e avaliação experimental das aplicações e infraestruturas de computação em nuvem, fornecendo competências em ambos os tópicos. O objetivo desta UC é fornecer aos alunos a conhecimentos que vão desde os conceitos fundamentais de computação em nuvem até a uma componente mais prática de instalação, monitorização e avaliação destes serviços e aplicações a utilizarem os mesmos.

Programa

1. Visão geral de serviços de computação em Nuvem e das várias abstrações (IaaS, PaaS e SaaS)
2. Escalabilidade e elasticidade de aplicações e serviços para computação em Nuvem
3. Virtualização para computação em Nuvem (máquinas virtuais e containers)
4. Gestão de dados/armazenamento para computação em Nuvem (sistemas de ficheiros, object stores)
5. Aprovisionamento, instalação e gestão de aplicações distribuídas (Infrastructure-as-a-code)
6. Monitorização de infraestruturas e serviços de computação em Nuvem
7. Avaliação experimental de aplicações e serviços distribuídos

Bibliografia

Fox, Armando, et al. "Above the clouds: A Berkeley view of cloud computing." Dept. Electrical Eng. and Comput. Sciences, University of California, Berkeley, Rep. UCB/EECS 28.13 (2009): 2009.

Raj Jain, The Art of Computer Systems Performance Analysis, Wiley, 1991.

Kief Morris, Infrastructure as Code - Managing Servers in the Cloud, O'Reilly, 2016.

Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Mackin. UNIX and Linux System Administration Handbook (5th Edition), Addison-Wesley Professional, 2017.

Jennifer Petoff, Niall Richard Murphy, Chris Jones, Betsy Beyer, “Site Reliability Engineering: How Google Runs Production Systems”, 1st Edition, O’Reilly, 2016.

Resultados da aprendizagem

- Compreender a organização interna e gestão de infraestruturas e serviços de Computação em Nuvem
- Compreender conceitos de escalabilidade de aplicações e serviços distribuídos
- Adquirir conhecimentos sobre virtualização, por exemplo, máquinas virtuais e containers
- Adquirir conhecimentos sobre gestão/armazenamento de dados distribuído e de grande escala, por exemplo, sistemas de ficheiros, sistemas orientados a objetos
- Planear e executar a configuração e instalação de aplicações num ambiente distribuído
- Planear e implementar a monitorização e avaliação de aplicações distribuídas na nuvem
- Avaliar o desempenho de aplicações distribuídas na nuvem

Método de avaliação

A avaliação terá uma componente teórica com um peso entre 40 e 60% e uma componente prática com trabalho em grupo com um peso entre 40 e 60%.

Funcionamento

Turno: T 1; Docente: João Tiago Medeiros Paulo; Dep.: DI; Horas: 15.
Turno: PL 1; Docente: João Tiago Medeiros Paulo; Dep.: DI; Horas: 30.
Turno: PL 2; Docente: João Tiago Medeiros Paulo; Dep.: DI; Horas: 30.
Turno: PL 3; Docente: Francisco António Ferraz Martins Almeida Maia; Dep.: DI; Horas: 30.
Turno: PL 4; Docente: Francisco António Ferraz Martins Almeida Maia; Dep.: DI; Horas: 30.
Turno: PL 5; Docente: Tânia Conceição Araújo Esteves; Dep.: DI; Horas: 30.
Turno: PL 6; Docente: Tânia Conceição Araújo Esteves; Dep.: DI; Horas: 30.
Turno: PL 7; Docente: Cláudia Vanessa Martins Brito; Dep.: DI; Horas: 30.
Turno: PL 8; Docente: Cláudia Vanessa Martins Brito; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]