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 |